Skip to content

Commit 523bd40

Browse files
committed
feat!: migrate tests to node:test and require Node 24
Combined PR2 (test migration) + PR3 (CJS to ESM): Test migration: - Migrate all test files from mocha/chai to node:test + node:assert - Use --experimental-transform-types --test-force-exit --test-timeout - Fix browser-logs stack trace assertions (regex instead of hardcoded columns) - Split parse5 type imports for Node 24 native type stripping - Add import type to all type-only imports/exports for verbatimModuleSyntax compat CJS to ESM: - Add "type": "module" to all TypeScript packages - Update exports to use "default" condition - Delete index.mjs shim files - Fix CJS interop (import.meta.resolve, createRequire, import.meta.dirname) - Keep JSDoc packages (parse5-utils, config-loader, etc.) as CJS - Strip ESM export keywords from browser-injected scripts - Add .nvmrc (v24.11.1) - Update CI workflows to Node 24 BREAKING CHANGE: Node 24+ is now required. Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d7b44b2 commit 523bd40

327 files changed

Lines changed: 6930 additions & 12244 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
"@web/browser-logs": major
3+
---
4+
5+
BREAKING: Migrate to Node.js native test runner
6+
7+
- Replace Mocha with Node.js `node:test` module
8+
- Replace Chai with Node.js `node:assert/strict`
9+
- Use Node 24's native TypeScript type stripping (enabled by default)
10+
- Update test imports for ES modules (__dirname, require)
11+
- All 41 tests passing
12+
13+
**Migration:** No API changes. Development-only breaking change.
14+
15+
**For contributors:**
16+
- Tests now use `node:test` instead of Mocha
17+
- Use `npm run test:node` to run tests
18+
- Node 24+ required for development
19+
- TypeScript test files run directly without build step
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
"@web/browser-logs": major
3+
"@web/config-loader": major
4+
"@web/dev-server": major
5+
"@web/dev-server-core": major
6+
"@web/dev-server-esbuild": major
7+
"@web/dev-server-hmr": major
8+
"@web/dev-server-import-maps": major
9+
"@web/dev-server-legacy": major
10+
"@web/dev-server-polyfill": major
11+
"@web/dev-server-rollup": major
12+
"@web/dev-server-storybook": major
13+
"@web/mocks": major
14+
"@web/parse5-utils": major
15+
"@web/polyfills-loader": major
16+
"@web/rollup-plugin-copy": major
17+
"@web/rollup-plugin-html": major
18+
"@web/rollup-plugin-import-meta-assets": major
19+
"@web/rollup-plugin-polyfills-loader": major
20+
"@web/rollup-plugin-workbox": major
21+
"@web/storybook-builder": major
22+
"@web/storybook-framework-web-components": major
23+
"@web/storybook-utils": major
24+
"@web/test-runner": major
25+
"@web/test-runner-browserstack": major
26+
"@web/test-runner-chrome": major
27+
"@web/test-runner-cli": major
28+
"@web/test-runner-commands": major
29+
"@web/test-runner-core": major
30+
"@web/test-runner-coverage-v8": major
31+
"@web/test-runner-junit-reporter": major
32+
"@web/test-runner-mocha": major
33+
"@web/test-runner-module-mocking": major
34+
"@web/test-runner-playwright": major
35+
"@web/test-runner-puppeteer": major
36+
"@web/test-runner-saucelabs": major
37+
"@web/test-runner-selenium": major
38+
"@web/test-runner-visual-regression": major
39+
"@web/test-runner-webdriver": major
40+
---
41+
42+
**BREAKING**: Require Node.js 24 LTS (Iron)
43+
44+
Update minimum Node.js version from 18.0.0 to 24.0.0 across all packages. Node.js 18 reached EOL in April 2025
45+
46+
**Migration:**
47+
Update your Node.js version to 24 or later:
48+
```bash
49+
nvm install 24
50+
nvm use 24
51+
```

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v24.11.1

0 commit comments

Comments
 (0)