Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
d33b2e2
feat!: migrate tests to node:test and require Node 24
bennypowers Mar 24, 2026
97c6989
fix: update remaining test scripts and fix type imports
bennypowers Mar 24, 2026
5fac977
fix: fix remaining .js imports in test assertions and type exports
bennypowers Mar 24, 2026
0a8b8d0
fix: update test config to import from dist instead of deleted index.mjs
bennypowers Mar 24, 2026
4faf9db
fix: use globalPackages instead of globals from storybook preview
bennypowers Mar 24, 2026
5b03f89
fix: point storybook-utils exports to src/ (JSDoc package)
bennypowers Mar 25, 2026
e25c983
fix: comprehensive type import fixes and test migration
bennypowers Mar 25, 2026
8e5aa3e
fix: fix integration test imports, assertion strings, and type exports
bennypowers Mar 25, 2026
7d59eff
fix(test-runner-core): add node:test imports and fix .js extensions
bennypowers Mar 25, 2026
4c658ac
fix(polyfills-loader): update minified snapshot for newer terser
bennypowers Mar 25, 2026
4363b99
fix(dev-server-rollup): fix assertion strings with .ts -> .js
bennypowers Mar 25, 2026
c377677
fix(rollup-plugin-html): fix extractAssets tests and remove duplicate…
bennypowers Mar 25, 2026
e5eeb6e
fix(rollup-plugin-polyfills-loader): update systemjs hash in snapshot
bennypowers Mar 25, 2026
5657efe
fix: integration test type:module, fixture node_modules, asset hashing
bennypowers Mar 25, 2026
cfa4b89
fix: integration tests, rollup-plugin-html, and remaining issues
bennypowers Mar 26, 2026
639864c
fix: add __dirname to config-groups integration test
bennypowers Mar 26, 2026
1acb4c9
fix: module-mocking import from dist, increase playwright firefox tim…
bennypowers Mar 26, 2026
1004bf8
fix: executeServerCommand test migration, mark module-mocking todo
bennypowers Mar 26, 2026
8d83d5a
style: format moduleMockingPlugin test with prettier
bennypowers Mar 26, 2026
7303c42
fix: increase playwright webkit timeout to 60s
bennypowers Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .changeset/browser-logs-node-test-runner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@web/browser-logs": major
---

BREAKING: Migrate to Node.js native test runner

- Replace Mocha with Node.js `node:test` module
- Replace Chai with Node.js `node:assert/strict`
- Use Node 24's native TypeScript type stripping (enabled by default)
- Update test imports for ES modules (__dirname, require)
- All 41 tests passing

**Migration:** No API changes. Development-only breaking change.

**For contributors:**
- Tests now use `node:test` instead of Mocha
- Use `npm run test:node` to run tests
- Node 24+ required for development
- TypeScript test files run directly without build step
51 changes: 51 additions & 0 deletions .changeset/node-24-lts-requirement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
"@web/browser-logs": major
"@web/config-loader": major
"@web/dev-server": major
"@web/dev-server-core": major
"@web/dev-server-esbuild": major
"@web/dev-server-hmr": major
"@web/dev-server-import-maps": major
"@web/dev-server-legacy": major
"@web/dev-server-polyfill": major
"@web/dev-server-rollup": major
"@web/dev-server-storybook": major
"@web/mocks": major
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems like all packages are getting a major, but I dont think anything changed in @web/mocks?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Pascal I'll take this into account

On the one hand, the motivation for this PR train is to reduce maintenance burden by removing dependencies and build steps

On the other hand there's clearly user interest in retaining node 22 until EOL in ~1yrs time.

I'd appreciate your perspective on this

"@web/parse5-utils": major
"@web/polyfills-loader": major
"@web/rollup-plugin-copy": major
"@web/rollup-plugin-html": major
"@web/rollup-plugin-import-meta-assets": major
"@web/rollup-plugin-polyfills-loader": major
"@web/rollup-plugin-workbox": major
"@web/storybook-builder": major
"@web/storybook-framework-web-components": major
"@web/storybook-utils": major
"@web/test-runner": major
"@web/test-runner-browserstack": major
"@web/test-runner-chrome": major
"@web/test-runner-cli": major
"@web/test-runner-commands": major
"@web/test-runner-core": major
"@web/test-runner-coverage-v8": major
"@web/test-runner-junit-reporter": major
"@web/test-runner-mocha": major
"@web/test-runner-module-mocking": major
"@web/test-runner-playwright": major
"@web/test-runner-puppeteer": major
"@web/test-runner-saucelabs": major
"@web/test-runner-selenium": major
"@web/test-runner-visual-regression": major
"@web/test-runner-webdriver": major
---

**BREAKING**: Require Node.js 24 LTS (Iron)

Update minimum Node.js version from 18.0.0 to 24.0.0 across all packages. Node.js 18 reached EOL in April 2025

**Migration:**
Update your Node.js version to 24 or later:
```bash
nvm install 24
nvm use 24
```
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v24.11.1
16 changes: 8 additions & 8 deletions integration/test-runner/index.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { runBasicTest } from './tests/basic/runBasicTest.js';
import { runConfigGroupsTest } from './tests/config-groups/runConfigGroupsTest.js';
import { runParallelTest } from './tests/parallel/runParallelTest.js';
import { runTestFailureTest } from './tests/test-failure/runTestFailureTest.js';
import { runLocationChangeTest } from './tests/location-change/runLocationChangeTest.js';
import { runFocusTest } from './tests/focus/runFocusTest.js';
import { runManyTests } from './tests/many/runManyTests.js';
import type { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { runBasicTest } from './tests/basic/runBasicTest.ts';
import { runConfigGroupsTest } from './tests/config-groups/runConfigGroupsTest.ts';
import { runParallelTest } from './tests/parallel/runParallelTest.ts';
import { runTestFailureTest } from './tests/test-failure/runTestFailureTest.ts';
import { runLocationChangeTest } from './tests/location-change/runLocationChangeTest.ts';
import { runFocusTest } from './tests/focus/runFocusTest.ts';
import { runManyTests } from './tests/many/runManyTests.ts';

export interface Tests {
basic: boolean;
Expand Down
1 change: 1 addition & 0 deletions integration/test-runner/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"name": "@web/test-runner-integration-tests",
"type": "module",
"version": "0.0.0",
"private": true,
"publishConfig": {
Expand Down
4 changes: 3 additions & 1 deletion integration/test-runner/tests/basic/runBasicTest.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { describe, it, before } from 'node:test';
const __dirname = import.meta.dirname;
import type { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { runTests } from '@web/test-runner-core/test-helpers';
import { legacyPlugin } from '@web/dev-server-legacy';
import { resolve } from 'path';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import {
import { describe, it } from 'node:test';
const __dirname = import.meta.dirname;
import type {
BrowserLauncher,
TestRunnerCoreConfig,
TestRunnerGroupConfig,
Expand Down
4 changes: 3 additions & 1 deletion integration/test-runner/tests/focus/runFocusTest.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { describe, it, before } from 'node:test';
const __dirname = import.meta.dirname;
import type { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { runTests } from '@web/test-runner-core/test-helpers';
import { legacyPlugin } from '@web/dev-server-legacy';
import { resolve } from 'path';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { describe, it, before } from 'node:test';
const __dirname = import.meta.dirname;
import type { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { runTests } from '@web/test-runner-core/test-helpers';
import { legacyPlugin } from '@web/dev-server-legacy';
import { resolve } from 'path';
Expand Down
4 changes: 3 additions & 1 deletion integration/test-runner/tests/many/runManyTests.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { describe, it } from 'node:test';
const __dirname = import.meta.dirname;
import type { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { runTests } from '@web/test-runner-core/test-helpers';
import { legacyPlugin } from '@web/dev-server-legacy';
import { resolve } from 'path';
Expand Down
4 changes: 3 additions & 1 deletion integration/test-runner/tests/parallel/runParallelTest.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { describe, it } from 'node:test';
const __dirname = import.meta.dirname;
import type { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { runTests } from '@web/test-runner-core/test-helpers';
import { legacyPlugin } from '@web/dev-server-legacy';
import { resolve } from 'path';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { describe, it, before } from 'node:test';
const __dirname = import.meta.dirname;
import type { BrowserLauncher, TestRunnerCoreConfig, TestSession } from '@web/test-runner-core';
import { runTests } from '@web/test-runner-core/test-helpers';
import { legacyPlugin } from '@web/dev-server-legacy';
import { resolve, sep } from 'path';
Expand Down
Loading
Loading