Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

codeceptjs

Package Overview
Dependencies
Maintainers
4
Versions
235
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

codeceptjs - npm Package Versions

1
23

3.5.15

Diff

Changelog

Source

3.5.15

❤️ Thanks all to those who contributed to make this release! ❤️

🛩️ Features

  • feat: improve code coverage plugin (#4252) - by @KobeNguyenT We revamp the coverage plugin to make it easier to use

Once all the tests are completed, codecept will create and store coverage in output/coverage folder, as shown below.

Open index.html in your browser to view the full interactive coverage report.

🐛 Bug Fixes

  • fix: bump puppeteer to v22.x (#4249) - by @KobeNguyenT
  • fix: improve dry-run command (#4225) - by @KobeNguyenT

dry-run command now supports test level grep.

Tests from /Users/t/Desktop/projects/codeceptjs-rest-demo:@jaja

GET tests -- /Users/t/Desktop/projects/codeceptjs-rest-demo/src/GET_test.ts -- 4 tests
  ☐ Verify getting a single user @jaja
  ☐ Verify getting list of users @jaja
PUT tests -- /Users/t/Desktop/projects/codeceptjs-rest-demo/src/PUT_test.ts -- 4 tests
  ☐ Verify creating new user @Jaja


  Total: 2 suites | 3 tests  

--- DRY MODE: No tests were executed ---
➜  codeceptjs-rest-demo git:(master) ✗ npx codeceptjs dry-run             
Tests from /Users/t/Desktop/projects/codeceptjs-rest-demo:

DELETE tests -- /Users/t/Desktop/projects/codeceptjs-rest-demo/src/DELETE_test.ts -- 4 tests
  ☐ Verify deleting a user
GET tests -- /Users/t/Desktop/projects/codeceptjs-rest-demo/src/GET_test.ts -- 4 tests
  ☐ Verify a successful call
  ☐ Verify a not found call
  ☐ Verify getting a single user @jaja
  ☐ Verify getting list of users @jaja
POST tests -- /Users/tDesktop/projects/codeceptjs-rest-demo/src/POST_test.ts -- 4 tests
  ☐ Verify creating new user
  ☐ Verify uploading a file
PUT tests -- /Users/tDesktop/projects/codeceptjs-rest-demo/src/PUT_test.ts -- 4 tests
  ☐ Verify creating new user @Jaja


  Total: 4 suites | 8 tests  

--- DRY MODE: No tests were executed ---
  • Several internal fixes and improvements for github workflows
thanh.nguyen
published 3.5.14 •

Changelog

Source

3.5.14

❤️ Thanks all to those who contributed to make this release! ❤️

🐛 Bug Fixes

  • Hotfix Fixed missing joi package - by @KobeNguyenT
thanh.nguyen
published 3.5.13 •

Changelog

Source

3.5.13

❤️ Thanks all to those who contributed to make this release! ❤️

🛩️ Features

  • feat: mock server helper (#4155) - by @KobeNguyenT Screenshot 2024-01-25 at 13 47 59
  • feat(webdriver): network traffics manipulation (#4166) - by @KobeNguyenT [Webdriver] Added commands to check network traffics - supported only with devtoolsProtocol
    • startRecordingTraffic
    • grabRecordedNetworkTraffics
    • flushNetworkTraffics
    • stopRecordingTraffic
    • seeTraffic
    • dontSeeTraffic

Examples:

// recording traffics and verify the traffic
  I.startRecordingTraffic();
  I.amOnPage('https://codecept.io/');
  I.seeTraffic({ name: 'traffics', url: 'https://codecept.io/img/companies/BC_LogoScreen_C.jpg' });
// check the traffic with advanced params
  I.amOnPage('https://openai.com/blog/chatgpt');
  I.startRecordingTraffic();
  I.seeTraffic({
    name: 'sentry event',
    url: 'https://images.openai.com/blob/cf717bdb-0c8c-428a-b82b-3c3add87a600',
    parameters: {
      width: '1919',
      height: '1138',
    },
  });
  • feat(webapi): add waitForCookie (#4169) - by @KobeNguyenT Waits for the specified cookie in the cookies.
I.waitForCookie("token");

🐛 Bug Fixes

  • fix(appium): update performSwipe with w3c protocol v2 (#4181) - by @MykaLev
  • fix(webapi): selectOption method (#4157) - by @dyaroman
  • fix: waitForText doesnt throw error when text doesnt exist (#4195) - by @KobeNguyenT
  • fix: use this.options instead of this.config (#4186) - by @KobeNguyenT
  • fix: config path without selenium (#4184) - by @KobeNguyenT
  • fix: bring to front condition in _setPage (#4173) - by @KobeNguyenT
  • fix: complicated locator (#4170) - by @KobeNguyenT Adding of ':nth-child' into the array

const limitation = [':nth-of-type', ':first-of-type', ':last-of-type', ':nth-last-child', ':nth-last-of-type', ':checked', ':disabled', ':enabled', ':required', ':lang']; fixes the issue. Then an old conversion way over css-to-xpath is used.

📖 Documentation

  • fix(docs): missing docs for codecept UI (#4175) - by @KobeNguyenT
  • fix(docs): Appium documentation sidebar menu links (#4188) - by @mirao

🛩️ Several bugfixes and improvements for Codecept-UI

  • Several internal improvements
  • fix: title is not showing when visiting a test
  • fix: handle erros nicely
thanh.nguyen
published 3.5.13-beta.3 •

thanh.nguyen
published 3.5.13-beta.2 •

thanh.nguyen
published 3.5.13-beta.1 •

thanh.nguyen
published 3.5.12 •

Changelog

Source

3.5.12

❤️ Thanks all to those who contributed to make this release! ❤️

🛩️ Features

  • feat: upgrade wdio (#4123) - by @KobeNguyenT

    🛩️ With the release of WebdriverIO version v8.14.0, and onwards, all driver management hassles are now a thing of the past 🙌. Read more here. One of the significant advantages of this update is that you can now get rid of any driver services you previously had to manage, such as wdio-chromedriver-service, wdio-geckodriver-service, wdio-edgedriver-service, wdio-safaridriver-service, and even @wdio/selenium-standalone-service.

For those who require custom driver options, fear not; WebDriver Helper allows you to pass in driver options through custom WebDriver configuration. If you have a custom grid, use a cloud service, or prefer to run your own driver, there's no need to worry since WebDriver Helper will only start a driver when there are no other connection information settings like hostname or port specified.

Example:

{
   helpers: {
     WebDriver : {
       smartWait: 5000,
       browser: "chrome",
       restart: false,
       windowSize: "maximize",
       timeouts: {
         "script": 60000,
         "page load": 10000
       }
     }
   }
}

Testing Chrome locally is now more convenient than ever. You can define a browser channel, and WebDriver Helper will take care of downloading the specified browser version for you. For example:

{
   helpers: {
     WebDriver : {
       smartWait: 5000,
       browser: "chrome",
       browserVersion: '116.0.5793.0', // or 'stable', 'beta', 'dev' or 'canary'
       restart: false,
       windowSize: "maximize",
       timeouts: {
         "script": 60000,
         "page load": 10000
       }
     }
   }
}
  • feat: wdio with devtools protocol (#4105) - by @KobeNguyenT

Running with devtools protocol

{
   helpers: {
     WebDriver : {
       url: "http://localhost",
       browser: "chrome",
       devtoolsProtocol: true,
       desiredCapabilities: {
         chromeOptions: {
           args: [ "--headless", "--disable-gpu", "--no-sandbox" ]
         }
       }
     }
   }
}
  • feat: add a locator builder method withTextEquals() (#4100) - by @mirao

Find an element with exact text

locate('button').withTextEquals('Add');
  • feat: waitForNumberOfTabs (#4124) - by @KobeNguyenT

Waits for number of tabs.

I.waitForNumberOfTabs(2);
  • feat: I.say would be added to Test.steps array (#4145) - by @KobeNguyenT

Currently I.say is not added into the Test.steps array. This PR aims to add this to steps array so that we could use it to print steps in ReportPortal for instance.

Screenshot 2024-01-19 at 15 41 34

🐛 Bug Fixes

  • fix: reduce the package size to 2MB (#4138) - by @KobeNguyenT
  • fix(webapi): see attributes on elements (#4147) - by @KobeNguyenT
  • fix: some assertion methods (#4144) - by @KobeNguyenT

Improve the error message for seeElement, dontSeeElement, seeElementInDOM, dontSeeElementInDOM

The current error message doesn't really help when debugging issue also causes some problem described in #4140

Actual

      expected visible elements '[ELEMENT]' to be empty
      + expected - actual

      -[
      -  "ELEMENT"
      -]
      +[]

Updated

     Error: Element "h1" is still visible
      at seeElementError (lib/helper/errors/ElementAssertion.js:9:9)
      at Playwright.dontSeeElement (lib/helper/Playwright.js:1472:7)
  • fix: css to xpath backward compatibility (#4141) - by @KobeNguyenT
  • css-to-xpath: old lib, which works perfectly unless you have hyphen in locator. (https://github.com/codeceptjs/CodeceptJS/issues/3563)
  • csstoxpath: new lib, to solve the issue locator with hyphen but also have some limitations
  • fix: grabRecordedNetworkTraffics throws error when being called twice (#4143) - by @KobeNguyenT
  • fix: missing steps of test when running with workers (#4127) - by @KobeNguyenT
Scenario('Verify getting list of users', async () => {
let res = await I.getUserPerPage(2);
res.data = []; // this line causes the issue
await I.expectEqual(res.data.data[0].id, 7);
});

at this time, res.data.data[0].id would throw undefined error and somehow the test is missing all its steps.

  • fix: process.env.profile when --profile isn't set in run-multiple mode (#4131) - by @mirao

process.env.profile is the string "undefined" instead of type undefined when no --profile is specified in the mode "run-multiple"

  • fix: session doesn't respect the context options (#4111) - by @KobeNguyenT
Helpers: Playwright
Plugins: screenshotOnFail, tryTo, retryFailedStep, retryTo, eachElement

Repro --
[1]  Starting recording promises
Timeouts:
› [Session] Starting singleton browser session
Reproduce issue
I am on page "https://example.com"
› [Browser:Error] Failed to load resource: the server responded with a status of 404 ()
› [New Context] {}
user1: I am on page "https://example.com"
user1: I execute script () => {
return { width: window.screen.width, height: window.screen.height };
}
sessionScreen is {"width":375,"height":667}
✔ OK in 1890ms


OK  | 1 passed   // 4s
  • fix(plugin): retryTo issue (#4117) - by @KobeNguyenT Screenshot 2024-01-08 at 17 36 54

  • fix(types): CustomLocator typing broken for custom strict locators (#4120) - by @KobeNguyenT

  • fix: wrong output for skipped tests - by @KobeNguyenT

  • fix: no retry failed step after tryto block (#4103) - by @KobeNguyenT

  • fix: deprecate some JSON Wire Protocol commands (#4104) - by @KobeNguyenT

deprecate some JSON Wire Protocol commands: grabGeoLocation, setGeoLocation

  • fix: cannot locate complicated locator (#4101) - by @KobeNguyenT

Locator issue due to the lib changes

The locator locate(".ps-menu-button").withText("Authoring").inside(".ps-submenu-root:nth-child(3)") is translated to
3.5.8: //*[contains(concat(' ', normalize-space(./@class), ' '), ' ps-menu-button ')][contains(., 'Authoring')][ancestor::*[(contains(concat(' ', normalize-space(./@class), ' '), ' ps-submenu-root ') and count(preceding-sibling::*) = 2)]] and works well
3.5.11: //*[contains(@class, "ps-menu-button")][contains(., 'Authoring')][ancestor::*[3][contains(@class, "ps-submenu-root")]] and doesn't work (no clickable element found). Even if you test it in browser inspector, it doesn't work.
thanh.nguyen
published 3.5.12-beta.9 •

thanh.nguyen
published 3.5.12-beta.8 •

thanh.nguyen
published 3.5.12-beta.7 •

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc