Skip to content

Feat/esm #5045

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 262 commits into
base: 4.x
Choose a base branch
from
Open

Feat/esm #5045

wants to merge 262 commits into from

Conversation

DavertMik
Copy link
Contributor

Refactored to be fully ESM

Should be the base for 4.x branch

DavertMik and others added 30 commits January 5, 2025 14:11
* refactored mocha, implemented hooks

* refactored mocha classes, added class hooks

* fixed tests

* fixed formatting

* updated tests

* workers fix

* fixed def

* fixed type definitions

* refactored mocha classes

* fixed bdd tests

* added hook config

* fixed lint

* refactored tests

---------

Co-authored-by: DavertMik <[email protected]>
* Bump webdriverio to v9

* Adjust config

* Adjust config

* Remove options

* Update chrome driver

* Fix deprecations

* Fix deprecations

* Fix markup

* Added condition

* Fix more tests

* Fix iFrame stuff

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* try to fix some wdio tests

* Try to fix popup test

* Try to fix window size #resizeWindow

* Another fix

* Fix popup tests

* Enable should be authenticated

* Trigger Build

---------

Co-authored-by: kobenguyent <[email protected]>
Co-authored-by: kobenguyent <[email protected]>
* fixed regression in waitfortext

* fixed wait test for wait for text

* fixed retries for PW waitForText test

---------

Co-authored-by: DavertMik <[email protected]>
* update to async/await style

* update to async/await style
…4724)

* Bump eslint to 9.1.15 and removed dep to eslint-config-airbnb-base

* eslint ^9.17.0

* Re-added no-return-await
#4713)

* fixed pause finishing, added suggest for empty run, included fuse.js for better search

* fixed test

* updated plugins docs

* improved unit tests setup

* fixed interface test for CI mode

* fixed on ci

* added env variable config

---------

Co-authored-by: DavertMik <[email protected]>
* improve the docker compose networks

* improve the docker compose networks

* improve the docker compose networks
* 3.7.0-beta.1

* added check command

* added file

* added debug for container, fixed check command

* added support for custom config -c, added checks to workflows

* fixed check command

* added await for check

---------

Co-authored-by: DavertMik <[email protected]>
* feat: soft assertion

* update as hopeThat module in effects

* fix: docs
* 3.7.0-beta.1

* added notes for test object, use notes for heal reports

* added notes & metadata for tests, improved output

* fixed styles in failing tests

---------

Co-authored-by: DavertMik <[email protected]>
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.7.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](microsoft/TypeScript@v5.7.2...v5.7.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@codeceptjs/detox-helper](https://github.com/codeceptjs/detox-helper) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/codeceptjs/detox-helper/releases)
- [Commits](codeceptjs/detox-helper@v1.1.4...v1.1.5)

---
updated-dependencies:
- dependency-name: "@codeceptjs/detox-helper"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Copy link

Testomat.io Report 🟢 UNIT-TESTS PASSED
Tests ✔️ 341 tests run
Summary 🟢 340 passed; 🟡 1 skipped
Duration 🕐 6 seconds
Job 🗂️ Run Unit tests / unit-tests
Operating System 🖥️ Linux X64

🐢 Slowest Tests

  • Workers: should run worker with multiple config (1.586 seconds)
  • subtitles: should capture separate steps for separate tests (0.602 seconds)
  • Workers: should run simple worker (0.517 seconds)
  • Workers: should run worker with custom config (0.501 seconds)
  • Workers: should create worker by function (0.495 seconds)

Copy link

Testomat.io Report 🟢 UNIT-TESTS PASSED
Tests ✔️ 341 tests run
Summary 🟢 340 passed; 🟡 1 skipped
Duration 🕐 6 seconds
Job 🗂️ Run Unit tests / unit-tests
Operating System 🖥️ Linux X64

🐢 Slowest Tests

  • Workers: should run worker with multiple config (1.635 seconds)
  • subtitles: should capture separate steps for separate tests (0.603 seconds)
  • Workers: should run simple worker (0.548 seconds)
  • Workers: should run worker with custom config (0.525 seconds)
  • Workers: should create worker by function (0.519 seconds)

Copy link

Testomat.io Report 🔴 RUNNER-TESTS FAILED
Tests ✔️ 194 tests run
Summary 🔴 102 failed; 🟢 91 passed; 🟡 1 skipped
Duration 🕐 7 minutes, 14 seconds
Job 🗂️ Run Unit tests / runner-tests
Operating System 🖥️ Linux X64

🟥 Failures (20)

🔴 BDD Gherkin: should obfuscate secret substeps in debug mode

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   74 |
   75 |  it('should obfuscate secret substeps in debug mode', done => {
   76 |    exec(config_run_config('codecept.bdd.js') + ' --debug --grep "Secrets"', (err, stdout, stderr) => {
   77 |      stdout.should.include('Given I login') // feature
   78 |      stdout.should.not.include('password')
 > 79 |      assert(!err)
   80 |      done()
   81 |    })
   82 |  })
   83 |
   84 |  it('should run feature with examples files', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:79:7)

🔴 BDD Gherkin: should run feature with long strings

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   151 |  it('should run feature with long strings', done => {
   152 |    exec(config_run_config('codecept.bdd.js') + ' --steps --grep "Checkout string"', (err, stdout, stderr) => {
   153 |      stdout.should.include('Given I have product described as')
   154 |      stdout.should.include('The goal of the product description is to provide the customer with enough information to compel them to want to buy the product immediately.')
   155 |      stdout.should.include('Then my order amount is $582')
 > 156 |      assert(!err)
   157 |      done()
   158 |    })
   159 |  })
   160 |
   161 |  it('should run feature by file name', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:156:7)

🔴 BDD Gherkin: should run feature by tag name

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   189 |      stdout.should.include('I have product with $600 price in my cart')
   190 |      stdout.should.not.include('Checkout string')
   191 |      stdout.should.not.include('describe product')
   192 |      stdout.should.not.include('Checkout table')
   193 |      stdout.should.not.include('Checkout examples process')
 > 194 |      assert(!err)
   195 |      done()
   196 |    })
   197 |  })
   198 |
   199 |  it('should run scenario by tag name', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:194:7)

🔴 BDD Gherkin: should run scenario by tag name

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   201 |      stdout.should.include('I have product with $600 price in my cart')
   202 |      stdout.should.not.include('Checkout string')
   203 |      stdout.should.not.include('describe product')
   204 |      stdout.should.not.include('Checkout table')
   205 |      stdout.should.not.include('Checkout examples process')
 > 206 |      assert(!err)
   207 |      done()
   208 |    })
   209 |  })
   210 |
   211 |  it('should run scenario outline by tag', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:206:7)

🔴 BDD Gherkin: should show all available steps

expected 'Gherkin Step Definitions:\n\n /I hav' to include 'step_definitions/my_steps.js:3:1'

################[ Failure ]################
AssertionError (strictEqual): expected 'Gherkin Step Definitions:\n\n  /I hav…' to include 'step_definitions/my_steps.js:3:1'
   252 |
   253 |  it('should show all available steps', done => {
   254 |    exec(`${runner} gherkin:steps --config ${codecept_dir}/codecept.bdd.js`, (err, stdout, stderr) => {
   255 |      stdout.should.include('Gherkin')
   256 |      stdout.should.include('/I have product with \\$(\\d+) price/')
 > 257 |      stdout.should.include('step_definitions/my_steps.js:3:1')
   258 |      stdout.should.include('step_definitions/my_steps.js:3:1')
   259 |      stdout.should.include('I should see that total number of products is {int}')
   260 |      stdout.should.include('I should see overall price is "{float}" $')
   261 |      assert(!err)
   262 |      done()

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:257:21)

🔴 BDD Gherkin: should generate snippets for missing steps

expected '\nThe requested module '@cucumber/me' to include 'Given('I open a browser on a site','

################[ Failure ]################
AssertionError (strictEqual): expected '\nThe requested module \'@cucumber/me…' to include 'Given(\'I open a browser on a site\',…'
   263 |    })
   264 |  })
   265 |
   266 |  it('should generate snippets for missing steps', done => {
   267 |    exec(`${runner} gherkin:snippets --dry-run --config ${codecept_dir}/codecept.dummy.bdd.js`, (err, stdout, stderr) => {
 > 268 |      stdout.should.include(`Given('I open a browser on a site', () => {
   269 |  // From "support/dummy.feature" {"line":4,"column":5}
   270 |  throw new Error('Not implemented yet');
   271 |});
   272 |
   273 |When('I click login button at {float}', () => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:268:21)

🔴 BDD Gherkin: should not generate duplicated steps

Cannot read properties of null (reading 'length')

################[ Failure ]################
TypeError: Cannot read properties of null (reading 'length')
   334 |    })
   335 |  })
   336 |
   337 |  it('should not generate duplicated steps', done => {
   338 |    exec(`${runner} gherkin:snippets --dry-run --config ${codecept_dir}/codecept.duplicate.bdd.js`, (err, stdout, stderr) => {
 > 339 |      assert.equal(stdout.match(/I open a browser on a site/g).length, 1)
   340 |      assert(!err)
   341 |      done()
   342 |    })
   343 |  })
   344 |

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:339:63)

🔴 BDD Gherkin: should run feature files in DE

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   361 |        stdout.should.include('Ich have discount for price 20, 10')
   362 |        stdout.should.include('On Wenn: ich zur kasse gehe')
   363 |        stdout.should.include('Ich checkout')
   364 |        stdout.should.include('On Dann: sollte ich den gesamtpreis von "10.0" $ sehen')
   365 |        stdout.should.include('Ich see sum 10')
 > 366 |        assert(!err)
   367 |        done()
   368 |      })
   369 |    })
   370 |
   371 |    it('should run feature files in NL', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:366:9)

🔴 BDD Gherkin: should run feature files in NL

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   381 |        stdout.should.include('Ik have discount for price 20, 10')
   382 |        stdout.should.include('On Wanneer: ik naar de kassa ga')
   383 |        stdout.should.include('Ik checkout')
   384 |        stdout.should.include('On Dan: zou ik de totaalprijs van "10.0" $ moeten zien')
   385 |        stdout.should.include('Ik see sum 10')
 > 386 |        assert(!err)
   387 |        done()
   388 |      })
   389 |    })
   390 |  })
   391 |})

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/bdd_test.js:386:9)

🔴 CodeceptJS Bootstrap and Teardown: should fail with code 1 when test failed and async bootstrap/teardown function with args

Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/CodeceptJS/CodeceptJS/test/runner/bootstrap_test.js)

################[ Failure ]################
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/CodeceptJS/CodeceptJS/test/runner/bootstrap_test.js)

🔴 CodeceptJS Bootstrap and Teardown: should fail with code 1 when test failed and async bootstrap/teardown function without args

Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/CodeceptJS/CodeceptJS/test/runner/bootstrap_test.js)

################[ Failure ]################
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/CodeceptJS/CodeceptJS/test/runner/bootstrap_test.js)

🔴 CodeceptJS Runner: should be executed with glob

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   37 |  it('should be executed with glob', done => {
   38 |    process.chdir(codecept_dir)
   39 |    exec(codecept_run_config('codecept.glob.js'), (err, stdout) => {
   40 |      stdout.should.include('Filesystem') // feature
   41 |      stdout.should.include('glob current dir') // test name
 > 42 |      assert(!err)
   43 |      done()
   44 |    })
   45 |  })
   46 |
   47 |  it('should be executed with config path', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:42:7)

🔴 CodeceptJS Runner: should show failures and exit with 1 on fail

expected 'CodeceptJS v3.7.3 #StandWithUkraine\n' to include 'FAILURES'

################[ Failure ]################
AssertionError (strictEqual): expected 'CodeceptJS v3.7.3 #StandWithUkraine\n…' to include 'FAILURES'
   56 |
   57 |  it('should show failures and exit with 1 on fail', done => {
   58 |    exec(codecept_run_config('codecept.failed.js'), (err, stdout) => {
   59 |      stdout.should.include('Not-A-Filesystem')
   60 |      stdout.should.include('file is not in dir')
 > 61 |      stdout.should.include('FAILURES')
   62 |      err.code.should.eql(1)
   63 |      done()
   64 |    })
   65 |
   66 |    it('should except a directory glob pattern', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:61:21)

🔴 CodeceptJS Runner: should run hooks from suites

expected [ 'Helper: I'm initialized', (22) ] to be a superset of [ 'Helper: I'm initialized', (16) ]

################[ Failure ]################
AssertionError (deepStrictEqual): expected [ 'Helper: I\'m initialized', …(22) ] to be a superset of [ 'Helper: I\'m initialized', …(16) ]


+ expected - actual
+ [
+   "Helper: I'm initialized"
+   "Helper: I'm simple BeforeSuite hook"
+   "Test: I'm simple BeforeSuite hook"
+   "Test: I'm generator BeforeSuite hook"
+   "Test: I'm async/await BeforeSuite hook"
+   "Helper: I'm simple Before hook"
+   "Test: I'm simple Before hook"
+   "Test: I'm generator Before hook"
+   "Test: I'm async/await Before hook"
+   "Test: I'm generator After hook"
+   "Test: I'm simple After hook"
+   "Test: I'm async/await After hook"
+   "Helper: I'm simple After hook"
+   "Test: I'm generator AfterSuite hook"
+   "Test: I'm simple AfterSuite hook"
+   "Test: I'm async/await AfterSuite hook"
+   "Helper: I'm simple AfterSuite hook"
+ ]
- [
-   "Helper: I'm initialized"
-   "CodeceptJS v3.7.3 #StandWithUkraine"
-   "Using test root \"/home/runner/work/CodeceptJS/CodeceptJS/test/data/sandbox\""
-   "Test hooks --"
-   "Test: I'm simple BeforeSuite hook"
-   "Test: I'm generator BeforeSuite hook"
-   "Test: I'm async/await BeforeSuite hook"
-   "Helper: I'm simple Before hook"
-   "Test: I'm simple Before hook"
-   "Test: I'm generator Before hook"
-   "Test: I'm async/await Before hook"
-   "Scenario: It's first test"
-   "✔ Simple test 1 in 0ms"
-   "Event:test.passed (helper)"
-   "Test: I'm async/await After hook"
-   "Test: I'm generator After hook"
-   "Test: I'm simple After hook"
-   "Helper: I'm simple After hook"
-   "Test: I'm async/await AfterSuite hook"
-   "Test: I'm generator AfterSuite hook"
-   "Test: I'm simple AfterSuite hook"
-   "Helper: I'm simple AfterSuite hook"
-   "OK  | 1 passed   // 23ms"
- ]

   193 |
   194 |      const uniqueLines = lines.filter((v, i, a) => a.indexOf(v) === i)
   195 |
   196 |      expect(uniqueLines.length).to.eql(lines.length, `No duplicates in output +${lines} \n\n -${uniqueLines}`)
   197 |
 > 198 |      expect(lines).to.include.members([
   199 |        "Helper: I'm initialized",
   200 |        "Helper: I'm simple BeforeSuite hook",
   201 |        "Test: I'm simple BeforeSuite hook",
   202 |        "Test: I'm generator BeforeSuite hook",
   203 |        "Test: I'm async/await BeforeSuite hook",

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:198:32)

🔴 CodeceptJS Runner: should run hooks from suites (in different order)

expected [ 'Helper: I'm initialized', (14) ] to be a superset of [ (8) ]

################[ Failure ]################
AssertionError (deepStrictEqual): expected [ 'Helper: I\'m initialized', …(14) ] to be a superset of [ …(8) ]


+ expected - actual
+ [
+   "Helper: I'm simple BeforeSuite hook"
+   "Test: I'm async/await BeforeSuite hook"
+   "Helper: I'm simple Before hook"
+   "Test: I'm async/await Before hook"
+   "Test: I'm async/await After hook"
+   "Helper: I'm simple After hook"
+   "Test: I'm async/await AfterSuite hook"
+   "Helper: I'm simple AfterSuite hook"
+ ]
- [
-   "Helper: I'm initialized"
-   "CodeceptJS v3.7.3 #StandWithUkraine"
-   "Using test root \"/home/runner/work/CodeceptJS/CodeceptJS/test/data/sandbox\""
-   "Test hooks --"
-   "Test: I'm async/await BeforeSuite hook"
-   "Helper: I'm simple Before hook"
-   "Test: I'm async/await Before hook"
-   "Scenario: It's first test"
-   "✔ Simple test 1 in 1ms"
-   "Event:test.passed (helper)"
-   "Test: I'm async/await After hook"
-   "Helper: I'm simple After hook"
-   "Test: I'm async/await AfterSuite hook"
-   "Helper: I'm simple AfterSuite hook"
-   "OK  | 1 passed   // 16ms"
- ]

   223 |
   224 |  it('should run hooks from suites (in different order)', done => {
   225 |    exec(codecept_run_config('codecept.testhooks.different.order.json'), (err, stdout) => {
   226 |      const lines = stdout.match(/\S.+/g)
   227 |
 > 228 |      expect(lines).to.include.members([
   229 |        "Helper: I'm simple BeforeSuite hook",
   230 |        "Test: I'm async/await BeforeSuite hook",
   231 |        "Helper: I'm simple Before hook",
   232 |        "Test: I'm async/await Before hook",
   233 |        "Test: I'm async/await After hook",

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:228:32)

🔴 CodeceptJS Runner: should run dynamic config with profile

expected 'CodeceptJS v3.7.3 #StandWithUkraine\n' to include 'FAILURES'

################[ Failure ]################
AssertionError (strictEqual): expected 'CodeceptJS v3.7.3 #StandWithUkraine\n…' to include 'FAILURES'
   259 |    })
   260 |  })
   261 |
   262 |  it('should run dynamic config with profile', done => {
   263 |    exec(`${codecept_run_config('config.js')} --profile failed`, (err, stdout) => {
 > 264 |      stdout.should.include('FAILURES')
   265 |      stdout.should.not.include('I am bootstrap')
   266 |      assert(err.code)
   267 |      done()
   268 |    })
   269 |  })

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:264:21)

🔴 CodeceptJS Runner: filter by scenario tags

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   77 |      process.chdir(codecept_dir)
   78 |      exec(`${codecept_run} --grep @slow`, (err, stdout) => {
   79 |        debug(stdout)
   80 |        stdout.should.include('Filesystem') // feature
   81 |        stdout.should.include('check current dir') // test name
 > 82 |        assert(!err)
   83 |        done()
   84 |      })
   85 |    })
   86 |
   87 |    it('filter by scenario tags #2', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:82:9)

🔴 CodeceptJS Runner: filter by scenario tags #2

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   87 |    it('filter by scenario tags #2', done => {
   88 |      process.chdir(codecept_dir)
   89 |      exec(`${codecept_run} --grep @important`, (err, stdout) => {
   90 |        stdout.should.include('Filesystem') // feature
   91 |        stdout.should.include('check current dir') // test name
 > 92 |        assert(!err)
   93 |        done()
   94 |      })
   95 |    })
   96 |
   97 |    it('filter by feature tags', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:92:9)

🔴 CodeceptJS Runner: filter by feature tags

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

    97 |    it('filter by feature tags', done => {
    98 |      process.chdir(codecept_dir)
    99 |      exec(`${codecept_run} --grep @main`, (err, stdout) => {
   100 |        stdout.should.include('Filesystem') // feature
   101 |        stdout.should.include('check current dir') // test name
 > 102 |        assert(!err)
   103 |        done()
   104 |      })
   105 |    })
   106 |
   107 |    describe('without "invert" option', () => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:102:9)

🔴 CodeceptJS Runner: should filter by scenario tags

The expression evaluated to a falsy value: assert(!err)

################[ Failure ]################
AssertionError (==): The expression evaluated to a falsy value:

  assert(!err)



+ expected - actual
+ true
- false

   109 |        process.chdir(codecept_dir)
   110 |        exec(`${codecept_run_config('codecept.grep.2.js')} --grep @1_grep`, (err, stdout) => {
   111 |          stdout.should.include('@feature_grep') // feature
   112 |          stdout.should.include('grep message 1')
   113 |          stdout.should.not.include('grep message 2')
 > 114 |          assert(!err)
   115 |          done()
   116 |        })
   117 |      })
   118 |
   119 |      it('should filter by scenario tags #2', done => {

   at <anonymous> (file:///home/runner/work/CodeceptJS/CodeceptJS/test/runner/codecept_test.js:114:11)

🐢 Slowest Tests

  • CodeceptJS within: should execute with async/await. Await is second in order (40.039 seconds)
  • CodeceptJS session: should run all session tests (40.034 seconds)
  • CodeceptJS within: should execute with async/await. Await is first in order (40.012 seconds)
  • CodeceptJS within: should execute if no generators (40.006 seconds)
  • CodeceptJS Bootstrap and Teardown: should fail with code 1 when test failed and async bootstrap/teardown function without args (10.009 seconds)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants