Skip to content

Commit 6c4bdff

Browse files
authored
Merge pull request #3085 from modernweb-dev/migrate/dev-server-esbuild-node-test
refactor(dev-server-esbuild): migrate tests to node:test
2 parents 60893ee + 0d3f25a commit 6c4bdff

8 files changed

Lines changed: 162 additions & 112 deletions

File tree

packages/dev-server-esbuild/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
"build": "tsc",
2929
"start:demo:jsx": "es-dev-server --config demo/jsx/server.config.js",
3030
"start:demo:ts": "es-dev-server --config demo/ts/server.config.js",
31-
"test:node": "mocha \"test/**/*.test.ts\" --require ts-node/register --reporter dot",
32-
"test:watch": "mocha \"test/**/*.test.ts\" --require ts-node/register --watch --watch-files src,test"
31+
"test:node": "node --experimental-strip-types --test --test-force-exit test/**/*.test.ts",
32+
"test:watch": "node --experimental-strip-types --test --test-force-exit --watch test/**/*.test.ts"
3333
},
3434
"files": [
3535
"*.d.ts",

packages/dev-server-esbuild/test/banner-footer.test.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
import { expect } from 'chai';
1+
import { describe, it } from 'node:test';
2+
import assert from 'node:assert/strict';
23
import { createTestServer } from '@web/dev-server-core/test-helpers';
34
import { expectIncludes } from '@web/dev-server-core/test-helpers';
45

5-
import { esbuildPlugin } from '../src/index.js';
6-
7-
describe('esbuildPlugin banner/footers', function () {
8-
this.timeout(5000);
6+
import { esbuildPlugin } from '../dist/index.js';
97

8+
describe('esbuildPlugin banner/footers', { timeout: 5000 }, () => {
109
it('prepends custom banner', async () => {
1110
const { server, host } = await createTestServer({
12-
rootDir: __dirname,
11+
rootDir: import.meta.dirname,
1312
plugins: [
1413
{
1514
name: 'test',
@@ -31,15 +30,15 @@ describe('esbuildPlugin banner/footers', function () {
3130
const indexOfBanner = text.indexOf('/* hello there */');
3231

3332
expectIncludes(text, '/* hello there */');
34-
expect(indexOfExpr).to.be.greaterThan(indexOfBanner);
33+
assert.ok(indexOfExpr > indexOfBanner);
3534
} finally {
3635
server.stop();
3736
}
3837
});
3938

4039
it('appends custom footer', async () => {
4140
const { server, host } = await createTestServer({
42-
rootDir: __dirname,
41+
rootDir: import.meta.dirname,
4342
plugins: [
4443
{
4544
name: 'test',
@@ -61,7 +60,7 @@ describe('esbuildPlugin banner/footers', function () {
6160
const indexOfFooter = text.indexOf('/* hello there */');
6261

6362
expectIncludes(text, '/* hello there */');
64-
expect(indexOfFooter).to.be.greaterThan(indexOfExpr);
63+
assert.ok(indexOfFooter > indexOfExpr);
6564
} finally {
6665
server.stop();
6766
}
Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,101 @@
1-
import { expect } from 'chai';
2-
import { browsers } from '@mdn/browser-compat-data';
3-
import { isLatestModernBrowser, getLatestStableMajor } from '../src/browser-targets.js';
1+
import { describe, it } from 'node:test';
2+
import assert from 'node:assert/strict';
3+
import bcd from '@mdn/browser-compat-data';
4+
import { isLatestModernBrowser, getLatestStableMajor } from '../dist/browser-targets.js';
5+
6+
const { browsers } = bcd;
47

58
describe('isLatestModernBrowser', () => {
69
it('returns true for latest Chrome', async () => {
710
const latest = getLatestStableMajor(browsers.chrome.releases)!;
8-
expect(isLatestModernBrowser({ name: 'Chrome', version: String(latest) })).to.be.true;
11+
assert.strictEqual(isLatestModernBrowser({ name: 'Chrome', version: String(latest) }), true);
912
});
1013

1114
it('returns true for latest Chrome -1', async () => {
1215
const latest = getLatestStableMajor(browsers.chrome.releases)!;
13-
expect(isLatestModernBrowser({ name: 'Chrome', version: String(latest - 1) })).to.be.true;
16+
assert.strictEqual(
17+
isLatestModernBrowser({ name: 'Chrome', version: String(latest - 1) }),
18+
true,
19+
);
1420
});
1521

1622
it('returns true for future version of Chrome', async () => {
1723
const latest = getLatestStableMajor(browsers.chrome.releases)!;
18-
expect(isLatestModernBrowser({ name: 'Chrome', version: String(latest + 1) })).to.be.true;
24+
assert.strictEqual(
25+
isLatestModernBrowser({ name: 'Chrome', version: String(latest + 1) }),
26+
true,
27+
);
1928
});
2029

2130
it('returns true for unknown version of Chrome', async () => {
22-
expect(isLatestModernBrowser({ name: 'Chrome', version: '9999999' })).to.be.true;
31+
assert.strictEqual(isLatestModernBrowser({ name: 'Chrome', version: '9999999' }), true);
2332
});
2433

2534
it('returns false for latest Chrome -2', async () => {
2635
const latest = getLatestStableMajor(browsers.chrome.releases)!;
27-
expect(isLatestModernBrowser({ name: 'Chrome', version: String(latest - 2) })).to.be.false;
36+
assert.strictEqual(
37+
isLatestModernBrowser({ name: 'Chrome', version: String(latest - 2) }),
38+
false,
39+
);
2840
});
2941

3042
it('returns false for latest Chrome -3', async () => {
3143
const latest = getLatestStableMajor(browsers.chrome.releases)!;
32-
expect(isLatestModernBrowser({ name: 'Chrome', version: String(latest - 3) })).to.be.false;
44+
assert.strictEqual(
45+
isLatestModernBrowser({ name: 'Chrome', version: String(latest - 3) }),
46+
false,
47+
);
3348
});
3449

3550
it('returns true for latest Chrome Headless', async () => {
3651
const latest = getLatestStableMajor(browsers.chrome.releases)!;
37-
expect(isLatestModernBrowser({ name: 'Chrome Headless', version: String(latest) })).to.be.true;
52+
assert.strictEqual(
53+
isLatestModernBrowser({ name: 'Chrome Headless', version: String(latest) }),
54+
true,
55+
);
3856
});
3957

4058
it('returns true for latest chromium', async () => {
4159
const latest = getLatestStableMajor(browsers.chrome.releases)!;
42-
expect(isLatestModernBrowser({ name: 'Chromium', version: String(latest) })).to.be.true;
60+
assert.strictEqual(isLatestModernBrowser({ name: 'Chromium', version: String(latest) }), true);
4361
});
4462

4563
it('returns true for latest Firefox', async () => {
4664
const latest = getLatestStableMajor(browsers.firefox.releases)!;
47-
expect(isLatestModernBrowser({ name: 'Firefox', version: String(latest) })).to.be.true;
65+
assert.strictEqual(isLatestModernBrowser({ name: 'Firefox', version: String(latest) }), true);
4866
});
4967

5068
it('returns false for latest Firefox -1', async () => {
5169
const latest = getLatestStableMajor(browsers.firefox.releases)!;
52-
expect(isLatestModernBrowser({ name: 'Firefox', version: String(latest - 1) })).to.be.false;
70+
assert.strictEqual(
71+
isLatestModernBrowser({ name: 'Firefox', version: String(latest - 1) }),
72+
false,
73+
);
5374
});
5475

5576
it('returns false for latest Firefox -2', async () => {
5677
const latest = getLatestStableMajor(browsers.firefox.releases)!;
57-
expect(isLatestModernBrowser({ name: 'Firefox', version: String(latest - 2) })).to.be.false;
78+
assert.strictEqual(
79+
isLatestModernBrowser({ name: 'Firefox', version: String(latest - 2) }),
80+
false,
81+
);
5882
});
5983

6084
it('returns true for latest Edge', async () => {
6185
const latest = getLatestStableMajor(browsers.edge.releases)!;
62-
expect(isLatestModernBrowser({ name: 'Edge', version: String(latest) })).to.be.true;
86+
assert.strictEqual(isLatestModernBrowser({ name: 'Edge', version: String(latest) }), true);
6387
});
6488

6589
it('returns true for latest Edge -1', async () => {
6690
const latest = getLatestStableMajor(browsers.edge.releases)!;
67-
expect(isLatestModernBrowser({ name: 'Edge', version: String(latest - 1) })).to.be.true;
91+
assert.strictEqual(isLatestModernBrowser({ name: 'Edge', version: String(latest - 1) }), true);
6892
});
6993

7094
it('returns false for latest Edge -2', async () => {
7195
const latest = getLatestStableMajor(browsers.edge.releases)!;
72-
expect(isLatestModernBrowser({ name: 'Chrome', version: String(latest - 2) })).to.be.false;
96+
assert.strictEqual(
97+
isLatestModernBrowser({ name: 'Chrome', version: String(latest - 2) }),
98+
false,
99+
);
73100
});
74101
});

packages/dev-server-esbuild/test/json.test.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import { expect } from 'chai';
1+
import { describe, it } from 'node:test';
2+
import assert from 'node:assert/strict';
23
import { expectIncludes, createTestServer } from '@web/dev-server-core/test-helpers';
34

4-
import { esbuildPlugin } from '../src/index.js';
5+
import { esbuildPlugin } from '../dist/index.js';
56

6-
describe('esbuildPlugin JSON', function () {
7+
describe('esbuildPlugin JSON', () => {
78
it('transforms .json files', async () => {
89
const { server, host } = await createTestServer({
9-
rootDir: __dirname,
10+
rootDir: import.meta.dirname,
1011
plugins: [
1112
{
1213
name: 'test',
@@ -24,8 +25,9 @@ describe('esbuildPlugin JSON', function () {
2425
const response = await fetch(`${host}/foo.json`);
2526
const text = await response.text();
2627

27-
expect(response.status).to.equal(200);
28-
expect(response.headers.get('content-type')).to.equal(
28+
assert.strictEqual(response.status, 200);
29+
assert.strictEqual(
30+
response.headers.get('content-type'),
2931
'application/javascript; charset=utf-8',
3032
);
3133
expectIncludes(text, 'var foo = "bar";');

packages/dev-server-esbuild/test/jsx.test.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import { expect } from 'chai';
1+
import { describe, it } from 'node:test';
2+
import assert from 'node:assert/strict';
23
import { expectIncludes, createTestServer } from '@web/dev-server-core/test-helpers';
34

4-
import { esbuildPlugin } from '../src/index.js';
5+
import { esbuildPlugin } from '../dist/index.js';
56

6-
describe('esbuildPlugin JSX', function () {
7+
describe('esbuildPlugin JSX', () => {
78
it('transforms .jsx files', async () => {
89
const { server, host } = await createTestServer({
9-
rootDir: __dirname,
10+
rootDir: import.meta.dirname,
1011
plugins: [
1112
{
1213
name: 'test',
@@ -28,8 +29,9 @@ export function foo(bar) {
2829
const response = await fetch(`${host}/foo.jsx`);
2930
const text = await response.text();
3031

31-
expect(response.status).to.equal(200);
32-
expect(response.headers.get('content-type')).to.equal(
32+
assert.strictEqual(response.status, 200);
33+
assert.strictEqual(
34+
response.headers.get('content-type'),
3335
'application/javascript; charset=utf-8',
3436
);
3537
expectIncludes(text, 'React.createElement("div", {');
@@ -43,7 +45,7 @@ export function foo(bar) {
4345

4446
it('can set the JSX factory', async () => {
4547
const { server, host } = await createTestServer({
46-
rootDir: __dirname,
48+
rootDir: import.meta.dirname,
4749
plugins: [
4850
{
4951
name: 'test',
@@ -65,8 +67,9 @@ export function foo(bar) {
6567
const response = await fetch(`${host}/foo.jsx`);
6668
const text = await response.text();
6769

68-
expect(response.status).to.equal(200);
69-
expect(response.headers.get('content-type')).to.equal(
70+
assert.strictEqual(response.status, 200);
71+
assert.strictEqual(
72+
response.headers.get('content-type'),
7073
'application/javascript; charset=utf-8',
7174
);
7275
expectIncludes(text, 'h("div", {');

0 commit comments

Comments
 (0)