Skip to content

Commit 30f62b4

Browse files
authored
Merge pull request #3082 from modernweb-dev/migrate/test-runner-mocha-node-test
refactor(test-runner-mocha): migrate tests to node:test
2 parents f538af8 + 74d7a2c commit 30f62b4

3 files changed

Lines changed: 58 additions & 62 deletions

File tree

packages/test-runner-mocha/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
"scripts": {
2121
"build": "tsc",
2222
"build:production": "rimraf dist && rollup -c ./rollup.config.mjs",
23-
"test": "mocha test/**/*.test.js --reporter dot",
24-
"test:watch": "mocha test/**/*.test.js --watch --watch-files src,test"
23+
"test:node": "node --test --test-force-exit test/**/*.test.js",
24+
"test:watch": "node --test --test-force-exit --watch test/**/*.test.js"
2525
},
2626
"files": [
2727
"dist"
Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1+
const { it } = require('node:test');
2+
const assert = require('node:assert/strict');
13
const { runTests } = require('@web/test-runner-core/test-helpers');
24
const { chromeLauncher } = require('@web/test-runner-chrome');
35
const { resolve } = require('path');
4-
const { expect } = require('chai');
5-
6-
it('can run tests with autorun', async function () {
7-
this.timeout(50000);
86

7+
it('can run tests with autorun', { timeout: 50000 }, async () => {
98
const { sessions } = await runTests(
109
{
1110
files: [resolve(__dirname, 'fixtures', 'autorun.js')],
@@ -16,28 +15,28 @@ it('can run tests with autorun', async function () {
1615
{ allowFailure: true, reportErrors: false },
1716
);
1817

19-
expect(sessions.length).to.equal(1);
20-
expect(sessions[0].passed).to.equal(false);
18+
assert.equal(sessions.length, 1);
19+
assert.equal(sessions[0].passed, false);
2120

22-
expect(sessions[0].testResults.tests.length).to.equal(2);
23-
expect(sessions[0].testResults.tests[0].name).to.equal('test 1');
24-
expect(sessions[0].testResults.tests[0].passed).to.equal(true);
25-
expect(sessions[0].testResults.tests[1].name).to.equal('test 2');
26-
expect(sessions[0].testResults.tests[1].passed).to.equal(false);
27-
expect(sessions[0].testResults.tests[1].error.message).to.equal('test 2 error');
21+
assert.equal(sessions[0].testResults.tests.length, 2);
22+
assert.equal(sessions[0].testResults.tests[0].name, 'test 1');
23+
assert.equal(sessions[0].testResults.tests[0].passed, true);
24+
assert.equal(sessions[0].testResults.tests[1].name, 'test 2');
25+
assert.equal(sessions[0].testResults.tests[1].passed, false);
26+
assert.equal(sessions[0].testResults.tests[1].error.message, 'test 2 error');
2827

29-
expect(sessions[0].testResults.suites.length).to.equal(1);
30-
expect(sessions[0].testResults.suites[0].tests.length).to.equal(2);
31-
expect(sessions[0].testResults.suites[0].tests[0].name).to.equal('test a 1');
32-
expect(sessions[0].testResults.suites[0].tests[0].passed).to.equal(true);
33-
expect(sessions[0].testResults.suites[0].tests[1].name).to.equal('test a 2');
34-
expect(sessions[0].testResults.suites[0].tests[1].passed).to.equal(false);
35-
expect(sessions[0].testResults.suites[0].tests[1].error.message).to.equal('test a 2 error');
28+
assert.equal(sessions[0].testResults.suites.length, 1);
29+
assert.equal(sessions[0].testResults.suites[0].tests.length, 2);
30+
assert.equal(sessions[0].testResults.suites[0].tests[0].name, 'test a 1');
31+
assert.equal(sessions[0].testResults.suites[0].tests[0].passed, true);
32+
assert.equal(sessions[0].testResults.suites[0].tests[1].name, 'test a 2');
33+
assert.equal(sessions[0].testResults.suites[0].tests[1].passed, false);
34+
assert.equal(sessions[0].testResults.suites[0].tests[1].error.message, 'test a 2 error');
3635

37-
expect(sessions[0].testResults.suites[0].suites.length).to.equal(1);
38-
expect(sessions[0].testResults.suites[0].suites[0].tests.length).to.equal(2);
39-
expect(sessions[0].testResults.suites[0].suites[0].tests[0].name).to.equal('test b 1');
40-
expect(sessions[0].testResults.suites[0].suites[0].tests[0].passed).to.equal(true);
41-
expect(sessions[0].testResults.suites[0].suites[0].tests[1].name).to.equal('test b 2');
42-
expect(sessions[0].testResults.suites[0].suites[0].tests[1].passed).to.equal(true);
36+
assert.equal(sessions[0].testResults.suites[0].suites.length, 1);
37+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests.length, 2);
38+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[0].name, 'test b 1');
39+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[0].passed, true);
40+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[1].name, 'test b 2');
41+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[1].passed, true);
4342
});
Lines changed: 32 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1+
const { it } = require('node:test');
2+
const assert = require('node:assert/strict');
13
const { runTests } = require('@web/test-runner-core/test-helpers');
24
const { chromeLauncher } = require('@web/test-runner-chrome');
35
const { resolve } = require('path');
4-
const { expect } = require('chai');
5-
6-
it('can run tests with standalone', async function () {
7-
this.timeout(50000);
86

7+
it('can run tests with standalone', { timeout: 50000 }, async () => {
98
const { sessions } = await runTests(
109
{
1110
files: [resolve(__dirname, 'fixtures', 'standalone.html')],
@@ -16,35 +15,33 @@ it('can run tests with standalone', async function () {
1615
{ allowFailure: true, reportErrors: false },
1716
);
1817

19-
expect(sessions.length).to.equal(1);
20-
expect(sessions[0].passed).to.equal(false);
21-
22-
expect(sessions[0].testResults.tests.length).to.equal(2);
23-
expect(sessions[0].testResults.tests[0].name).to.equal('test 1');
24-
expect(sessions[0].testResults.tests[0].passed).to.equal(true);
25-
expect(sessions[0].testResults.tests[1].name).to.equal('test 2');
26-
expect(sessions[0].testResults.tests[1].passed).to.equal(false);
27-
expect(sessions[0].testResults.tests[1].error.message).to.equal('test 2 error');
28-
29-
expect(sessions[0].testResults.suites.length).to.equal(1);
30-
expect(sessions[0].testResults.suites[0].tests.length).to.equal(2);
31-
expect(sessions[0].testResults.suites[0].tests[0].name).to.equal('test a 1');
32-
expect(sessions[0].testResults.suites[0].tests[0].passed).to.equal(true);
33-
expect(sessions[0].testResults.suites[0].tests[1].name).to.equal('test a 2');
34-
expect(sessions[0].testResults.suites[0].tests[1].passed).to.equal(false);
35-
expect(sessions[0].testResults.suites[0].tests[1].error.message).to.equal('test a 2 error');
36-
37-
expect(sessions[0].testResults.suites[0].suites.length).to.equal(1);
38-
expect(sessions[0].testResults.suites[0].suites[0].tests.length).to.equal(2);
39-
expect(sessions[0].testResults.suites[0].suites[0].tests[0].name).to.equal('test b 1');
40-
expect(sessions[0].testResults.suites[0].suites[0].tests[0].passed).to.equal(true);
41-
expect(sessions[0].testResults.suites[0].suites[0].tests[1].name).to.equal('test b 2');
42-
expect(sessions[0].testResults.suites[0].suites[0].tests[1].passed).to.equal(true);
18+
assert.equal(sessions.length, 1);
19+
assert.equal(sessions[0].passed, false);
20+
21+
assert.equal(sessions[0].testResults.tests.length, 2);
22+
assert.equal(sessions[0].testResults.tests[0].name, 'test 1');
23+
assert.equal(sessions[0].testResults.tests[0].passed, true);
24+
assert.equal(sessions[0].testResults.tests[1].name, 'test 2');
25+
assert.equal(sessions[0].testResults.tests[1].passed, false);
26+
assert.equal(sessions[0].testResults.tests[1].error.message, 'test 2 error');
27+
28+
assert.equal(sessions[0].testResults.suites.length, 1);
29+
assert.equal(sessions[0].testResults.suites[0].tests.length, 2);
30+
assert.equal(sessions[0].testResults.suites[0].tests[0].name, 'test a 1');
31+
assert.equal(sessions[0].testResults.suites[0].tests[0].passed, true);
32+
assert.equal(sessions[0].testResults.suites[0].tests[1].name, 'test a 2');
33+
assert.equal(sessions[0].testResults.suites[0].tests[1].passed, false);
34+
assert.equal(sessions[0].testResults.suites[0].tests[1].error.message, 'test a 2 error');
35+
36+
assert.equal(sessions[0].testResults.suites[0].suites.length, 1);
37+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests.length, 2);
38+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[0].name, 'test b 1');
39+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[0].passed, true);
40+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[1].name, 'test b 2');
41+
assert.equal(sessions[0].testResults.suites[0].suites[0].tests[1].passed, true);
4342
});
4443

45-
it('captures errors during setup', async function () {
46-
this.timeout(50000);
47-
44+
it('captures errors during setup', { timeout: 50000 }, async () => {
4845
const { sessions } = await runTests(
4946
{
5047
files: [resolve(__dirname, 'fixtures', 'standalone-setup-fail.html')],
@@ -55,8 +52,8 @@ it('captures errors during setup', async function () {
5552
{ allowFailure: true, reportErrors: false },
5653
);
5754

58-
expect(sessions.length).to.equal(1);
59-
expect(sessions[0].passed).to.equal(false);
60-
expect(sessions[0].errors.length).to.equal(1);
61-
expect(sessions[0].errors[0].message).to.equal('error during setup');
55+
assert.equal(sessions.length, 1);
56+
assert.equal(sessions[0].passed, false);
57+
assert.equal(sessions[0].errors.length, 1);
58+
assert.equal(sessions[0].errors[0].message, 'error during setup');
6259
});

0 commit comments

Comments
 (0)