All Versions
131
Latest Version
Avg Release Cycle
17 days
Latest Release
-

Changelog History
Page 1

  • v3.3.7 Changes

    πŸ›©οΈ Features

    • Promise-based typings for TypeScript definitions in #3465 by @nlespiaucq. If you use TypeScript or use linters check how it may be useful to you.
    • 🌐 Translation improved to use custom vocabulary.
    • [Playwright] Added methods in #3398 by @mirao
      • restartBrowser - to restart a browser (with different config)
      • _createContextPage - to create a new browser context with a page from a helper
    • βž• Added Cucumber custom types for BDD in #3435 by @Likstern
    • βœ… Propose using JSONResponse helper when initializing project for API testing. #3455 by @PeterNgTr
    • 🌐 When translation enabled, generate tests using localized aliases. By @davertmik
    • [Appium] Added checkIfAppIsInstalled in #3507 by @PeterNgTr

    πŸ›  πŸ› Bugfixes

    • πŸ›  Fixed #3462 TypeError: Cannot read properties of undefined (reading 'setStatus') by @dwentland24 in #3438
    • πŸ›  Fixed creating steps file for TypeScript setup #3459 by @PeterNgTr
    • πŸ›  Fixed issue of after all event in run-rerun command after complete execution #3464 by @jain-neeeraj
    • πŸ‘€ [Playwright][WebDriver][Appium] Do not change waitForTimeout value on validation. See #3478 by @pmajewski24. Fixes #2589
    • πŸ‘€ [Playwright][WebDriver][Protractor][Puppeteer][TestCafe] Fixes Element "{null: undefined}" was not found and element ([object Object]) still not present messages when using object locators. See #3501 and #3502 by @pmajewski24
    • πŸ›  [Playwright] Improved file names when downloading file in #3449 by @PeterNgTr. Fixes #3412 and #3409
    • βž• Add default value to profile env variable. See #3443 by @dwentland24. Resolves #3339
    • [Playwright] Using system-native path separator when saving artifacts in #3460 by @PeterNgTr
    • [Playwright] Saving videos and traces from multiple sessions in #3505 by @davertmik
    • πŸ›  [Playwright] Fixed amOnPage to navigate to about:blank by @zaxoavoki in #3470 Fixes #2311
    • Various typing improvements by @AWolf81 @PeterNgTr @mirao

    πŸ“š πŸ“– Documentation

    • ⚑️ Updated Quickstart with detailed explanation of questions in init
    • βž• Added Translation guide
    • ⚑️ Updated TypeScript guide for promise-based typings
    • Reordered guides list on a website
  • v3.3.6 Changes

    • βœ… run-rerun command was re-introduced by @dwentland24 in #3436. Use it to perform run multiple times and detect flaky tests
    • πŸ‘€ Enabled retryFailedStep by default in @codeceptjs/configure v 0.10. See https://github.com/codeceptjs/configure/pull/26
    • πŸ›  [Playwright] Fixed properties types "waitForNavigation" and "firefox" by @mirao in #3401
    • [REST] Changed "endpoint" to optional by @mirao in #3404
    • [REST] Use secret for form encoded string by @PeterNgTr:
    const secretData = secret('name=john&password=123456');
    const response = await I.sendPostRequest('/user', secretData);
    
    • πŸ›  [Playwright]Fixed docs related to fixed properties types "waitForNavigation" and "firefox" by @mirao in #3407
    • πŸ›  [Playwright]Fixed parameters of startActivity() by @mirao in #3408
    • 🚚 Move semver to prod dependencies by @timja in #3413
    • πŸ’» check if browser is W3C instead of Android by @mikk150 in #3414
    • πŸ’» Pass service configs with options and caps as array for browsers… by @07souravkunda in #3418
    • πŸ›  fix for type of "webdriver.port" by @ngraf in #3421
    • πŸ›  fix for type of "webdriver.smartWait" by @pmajewski24 in #3426
    • πŸ›  fix(datatable): mask secret text by @PeterNgTr in #3432
    • πŸ›  fix(playwright) - video name and missing type by @PeterNgTr in #3430
    • πŸ›  fix for expected type of "bootstrap", "teardown", "bootstrapAll" and "teardownAll" by @ngraf in #3424
    • πŸ‘Œ Improve generate pageobject gpo command to work with TypeScript by @PeterNgTr in #3411
    • πŸ›  Fixed dry-run to always return 0 code and exit
    • βž• Added minimal version notice for NodeJS >= 12
    • πŸ›  fix(utils): remove . of test title to avoid confusion by @PeterNgTr in #3431
  • v3.3.5 Changes

    πŸ›©οΈ Features

    • Added TypeScript option for installation via codeceptjs init to initialize new projects in TS (by @PeterNgTr and @davertmik)
    • Include node-ts automatically when using TypeScript setup
    • βž• Added TS types for CodeceptJS config. Update codecept.conf.js to get intellisense when writing config file:
    // inside codecept.conf.js
    /** @type {CodeceptJS.MainConfig} */
    exports.config = {
      //...
    }
    
    • βž• Added TS types for helpers config:
      • Playwright
      • Puppeteer
      • WebDriver
      • REST

    πŸ›  πŸ› Bugfixes

    • πŸ›  [Puppeteer] Fixed support for Puppeteer > 14.4 by @PeterNgTr
    • πŸ‘€ Don't report files as existing when non-directory is in path by @jonathanperret. See #3374
    • πŸ›  Fixed TS type for secret function by @PeterNgTr
    • πŸ›  Fixed wrong order for async MetaSteps by @dwentland24. See #3393
    • πŸ›  Fixed same param substitution in BDD step. See #3385 by @snehabhandge

    πŸ“š πŸ“– Documentation

  • v3.3.4 Changes

    • βž• Added support for masking fields in objects via secret function:
    I.sendPostRequest('/auth', secret({ name: 'jon', password: '123456' }, 'password'));
    
    • βž• Added a guide about using of secret function
    • πŸ‘€ [Appium] Use touchClick when interacting with elements in iOS. See #3317 by @mikk150
    • πŸ‘€ [Playwright] Added cdpConnection option to connect over CDP. See #3309 by @Hmihaly
    • πŸ”Œ [customLocator plugin] Allowed to specify multiple attributes for custom locator. Thanks to @aruiz-caritsqa
    plugins: {
     customLocator: {
       enabled: true,
       prefix: '$',
       attribute: ['data-qa', 'data-test'],
     }
    }
    
    • πŸ‘• [retryTo plugin] Fixed #3147 using pollInterval option. See #3351 by @cyonkee
    • πŸ’» [Playwright] Fixed grabbing of browser console messages and window resize in new tab. Thanks to @mirao
    • πŸ–¨ [REST] Added prettyPrintJson option to print JSON in nice way by @PeterNgTr
    • ⚑️ [JSONResponse] Updated response validation to iterate over array items if response is array. Thanks to @PeterNgTr
    // response.data == [
    //   { user: { name: 'jon', email: '[email protected]' } },
    //   { user: { name: 'matt', email: '[email protected]' } },
    //]
    
    I.seeResponseContainsKeys(['user']);
    I.seeResponseContainsJson({ user: { email: '[email protected]' } });
    I.seeResponseContainsJson({ user: { email: '[email protected]' } });
    I.dontSeeResponseContainsJson({ user: 2 });
    
  • v3.3.3 Changes

    • πŸ›  Fixed DataCloneError: () => could not be cloned when running data tests in run-workers
    • πŸ‡ΊπŸ‡¦ Added #StandWithUkraine notice to CLI
  • v3.3.2 Changes

    • πŸ‘€ [REST] Fixed override of headers/token in haveRequestHeaders() and amBearerAuthenticated(). See #3304 by @mirao
    • βͺ Reverted typings change introduced in #3245. More details on this
  • v3.3.1 Changes

    πŸ›©οΈ Features:

    • βž• Add option to avoid duplicate gherkin step definitions (#3257) - @raywiis
    • βž• Added step.* for run-workers #3272. Thanks to @abhimanyupandian
    • πŸ›  Fixed loading tests for codecept run using glob patterns. By @jayudey-wf
    npx codeceptjs run test-dir/*"
    
    • [Playwright] Possible breaking change. By default timeout is changed to 5000ms. The value set in 3.3.0 was too low. Please set timeout explicitly to not depend on release values.
    • [Playwright] Added for color scheme option by @PeterNgTr
     helpers: {
      Playwright : {
        url: "http://localhost",
        colorScheme: "dark",
      }
     }
    

    πŸ›  πŸ› Bugfixes:

    • πŸ›  [Playwright] Fixed Cannot read property 'video' of undefined
    • πŸ›  Fixed haveRequestHeaders() and amBearerAuthenticated() of REST helper (#3260) - @mirao
    • πŸ›  Fixed: allure attachment fails if screenshot failed #3298 by @ruudvanderweijde
    • πŸ›  Fixed #3105 using autoLogin() plugin with TypeScript. Fix #3290 by @PeterNgTr
    • [Playwright] Added extra params for click and dragAndDrop to type definitions by @mirao

    πŸ“š πŸ“– Documentation

    • Improving the typings in many places
    • Improving the return type of helpers for TS users (#3245) - @nlespiaucq
  • v3.3.0 Changes

    πŸ›©οΈ Features:

    • βœ… API Testing introduced
      • Introduced JSONResponse helper which connects to REST, GraphQL or Playwright helper
      • [REST] Added amBearerAuthenticated method
      • [REST] Added haveRequestHeaders method
      • Added dependency on joi and chai
    • 0️⃣ [Playwright] Added timeout option to set timeout for all Playwright actions. If an action fails, Playwright keeps retrying it for a time set by timeout.
    • [Playwright] Possible breaking change. By default timeout is set to 1000ms. Previous default was set by Playwright internally to 30s. This was causing contradiction to CodeceptJS retries, so triggered up to 3 retries for 30s of time. This timeout option was lowered so retryFailedStep plugin would not cause long delays.
    • ⚑️ [Playwright] Updated restart config option to include 3 restart strategies:
      • 'context' or false - restarts browser context but keeps running browser. Recommended by Playwright team to keep tests isolated.
      • 'browser' or true - closes browser and opens it again between tests.
      • 'session' or 'keep' - keeps browser context and session, but cleans up cookies and localStorage between tests. The fastest option when running tests in windowed mode. Works with keepCookies and keepBrowserState options. This behavior was default prior CodeceptJS 3.1
    • ⚑️ [Playwright] Extended methods to provide more options from engine. These methods were updated so additional options can be be passed as the last argument:
    // use Playwright click options as 3rd argument
    I.click('canvas', '.model', { position: { x: 20, y: 40 } })
    // check option also has options
    I.checkOption('Agree', '.signup', { position: { x: 5, y: 5 } })
    
    • πŸ”Œ eachElement plugin introduced. It allows you to iterate over elements and perform some action on them using direct engines API
    await eachElement('click all links in .list', '.list a', (el) => {
      await el.click();
    })
    
    • πŸ‘€ [Playwright] Added support to playwright-core package if playwright is not installed. See #3190, fixes #2663.
    • [Playwright] Added makeApiRequest action to perform API requests. Requires Playwright >= 1.18
    • βž• Added support to codecept.config.js for name consistency across other JS tools. See motivation at #3195 by @JiLiZART
    • πŸ‘€ [ApiDataFactory] Added options arg to have method. See #3197 by @JJlokidoki
    • πŸ‘Œ Improved pt-br translations to include keywords: 'Funcionalidade', 'CenΓ‘rio', 'Antes', 'Depois', 'AntesDaSuite', 'DepoisDaSuite'. See #3206 by @danilolutz
    • πŸ‘€ [allure plugin] Introduced addStep method to add comments and attachments. See #3104 by @EgorBodnar

    πŸ›  πŸ› Bugfixes:

    • πŸ›  Fixed #3212: using Regex flags for Cucumber steps. See #3214 by @anils92

    πŸ“š πŸ“– Documentation

    • βž• Added Testomat.io reporter
    • βž• Added api testing guides
    • βž• Added internal api guides
    • πŸ“š [Appium] Fixed documentation for performSwipe
    • ⚑️ [Playwright] update docs for usePlaywrightTo method by @dbudzins
  • v3.2.3 Changes

    • πŸ“š Documentation improvements by @maojunxyz
    • Guard mocha cli reporter from registering step logger multiple times #3180 by @nikocanvacom
    • πŸ›  [Playwright] Fixed "tracing.stop: tracing.stop: ENAMETOOLONG: name too long" by @hatufacci
    • πŸ›  Fixed #2889: return always the same error contract from simplifyTest. See #3168 by @andremoah
  • v3.2.2 Changes

    • βͺ [Playwright] Reverted removal of retry on context errors. Fixes #3130
    • ⏱ Timeout improvements by @nikocanvacom:
      • Added priorites to timeouts
      • Added overrideStepLimits to stepTimeout plugin to override steps timeouts set by limitTime.
      • Fixed step timeout not working due to override by NaN by test timeout #3126
    • πŸ‘€ [Appium] Fixed logging error when manualStart is true. See #3140 by @nikocanvacom