Skip to content

refactor(rollup-plugin-import-meta-assets): migrate tests to node:test#3081

Open
bennypowers wants to merge 1 commit into
masterfrom
migrate/rollup-plugin-import-meta-assets-node-test
Open

refactor(rollup-plugin-import-meta-assets): migrate tests to node:test#3081
bennypowers wants to merge 1 commit into
masterfrom
migrate/rollup-plugin-import-meta-assets-node-test

Conversation

@bennypowers

Copy link
Copy Markdown
Member

Summary

  • Migrate @web/rollup-plugin-import-meta-assets tests from mocha/chai/hanbi to node:test + node:assert/strict + node:test mock API
  • Update test:node script from mocha to node --test --test-force-exit
  • CJS test file, no TypeScript, no import path changes needed
  • Replaced hanbi stub/spy API with mock.method / mock.restoreAll
  • Removed test:update-snapshots script (no longer applicable with node:test)

Test plan

  • 16/16 tests pass on Node 22.22.3
  • ESLint clean
  • Prettier clean

Replace mocha/chai/hanbi with node:test, node:assert/strict, and
node:test mock API. Update test:node script to use `node --test`.

- `expect(x).to.equal(y)` -> `assert.equal(x, y)`
- `expect(x).to.deep.equal(y)` -> `assert.deepEqual(x, y)`
- `expect(x).to.have.lengthOf(n)` -> `assert.equal(x.length, n)`
- `expect(x).to.match(re)` -> `assert.match(x, re)`
- `hanbi.stubMethod(console, 'warn')` -> `mock.method(console, 'warn')`
- `hanbi.restore()` -> `mock.restoreAll()`
- `consoleStub.callCount` -> `consoleStub.mock.callCount()`
- `consoleStub.getCall(n).args` -> `consoleStub.mock.calls[n].arguments`
- Removed `test:update-snapshots` script (no longer applicable)
- Add `--test-force-exit` to prevent test hangs

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented May 31, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 9c2f44e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

const path = require('path');
const { rollup } = require('rollup');
const { expect } = require('chai');
const hanbi = require('hanbi');

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.

just double checking: you are going to remove hanbi and other dependencies which will not be used after all refactorings, in a separate PR once all are complete?

expect(chunks['app.js']).to.equal(js`
assert.equal(
chunks['app.js'],
js`

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.

the format is a bit off in here and I think in all other similar cases

looks like prettier doesn't like this as a one-liner

assert.equal(chunks['app.js'], js`

but then it should change the indentation of code lines which doesn't happen either

can you please check this? if you do this with copilot, maybe you can ask it to fix such indentation issues

looks like in some other PRs the indentation was refactored correctly in similar cases, e.g. in #3097

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.

2 participants