Skip to content

chore(deps): vitest 5, jsdom 30, jest-dom 7 (majors) - #84

Merged
lacymorrow merged 3 commits into
mainfrom
chore/deps-m-tests
Sep 14, 2026
Merged

lacymorrow merged 3 commits into
mainfrom
chore/deps-m-tests

Conversation

@lacymorrow

Copy link
Copy Markdown
Contributor

One sentence

Major bumps of the test runtime (vitest 5, jsdom 30, jest-dom 7), grouped because they share one upgrade path and are verified together; left open for review because they are majors.

Bumps

Package From To
vitest 4.1.10 5.0.0
jsdom 29.1.1 30.0.1
@testing-library/jest-dom 6.9.1 7.0.1

Breaking changes and how they land here

  • vitest 5 (https://github.com/vitest-dev/vitest/releases/tag/v5.0.0, migration guide in docs/guide/migration): Node >= 22.12 and Vite >= 6.4 (we have vite 8.1.4); clearMocks defaults to true (tests/setup.ts already ran vi.clearAllMocks() after each test, so behaviour is unchanged); vi.mock/vi.hoisted inside functions now throw (all calls here are top-level); unawaited resolves/rejects fail the test (the single use in tests/node/lib/changelog.test.ts is awaited); test.sequential removed (unused); globalThis assignments propagate to the jsdom window; reports/attachments default to .vitest/ (added to .gitignore); deprecated entrypoints like vitest/reporters removed (unused). @vitest/coverage-v8 is not a dependency here, so test:coverage was already not runnable and is unchanged. vitest.config.browser.ts still uses the pre-vitest-4 string provider: "playwright"; that config was already non-functional without @vitest/browser-playwright and is out of scope.
  • jsdom 30 (https://github.com/jsdom/jsdom/releases/tag/v30.0.0): the only breaking change is Node ^22.22.2 || ^24.15.0 || >=26; adds CSS.escape()/CSS.supports(), and getComputedStyle() now returns lengths in px (no snapshot here depends on that). 30.0.1 fixes a calc() regression from 30.0.0.
  • @testing-library/jest-dom 7 (https://github.com/testing-library/jest-dom/releases/tag/v7.0.0): @testing-library/dom is now a required peer (>=10 <11), satisfied by @testing-library/react 16.3.3; Node >= 22; new matchers added, none removed. tests/setup.ts still does import "@testing-library/jest-dom" plus expect.extend(matchers) from /matchers, both still exported.

No test files changed. Supersedes dependabot #49.

Verification

  • pnpm typecheck clean
  • pnpm test: 4 files, 16 tests green
  • pnpm exec vitest run --config vitest.config.node.ts: 3 files, 21 tests green
  • pnpm build passes
  • next start smoke: / 200, /changelog 200, /changelog/nope-xyz 404, /faq 200, /nope-404 404

Installed with --ignore-scripts (isolated-vm postinstall fails under Node 26 locally; matches how Vercel builds).

https://claude.ai/code/session_01KLWmWU1KLE2diUH14ryqv1

Test-runtime majors that share one upgrade path (Node >= 22):
- vitest 4.1.10 -> 5.0.0: clearMocks now defaults to true (setup.ts already
  called vi.clearAllMocks after each test), vi.mock must be top-level (all are),
  unawaited resolves/rejects now fail (the one use is awaited), sequential
  removed (unused), reports default to .vitest/ (added to .gitignore)
- jsdom 29.1.1 -> 30.0.1: only breaking change is the Node floor
- @testing-library/jest-dom 6.9.1 -> 7.0.1: @testing-library/dom becomes a
  required peer, satisfied by @testing-library/react 16.3.3; the "/matchers"
  and root entrypoints used in tests/setup.ts still exist

Unit (16) and node (21) suites are green on the new stack. No test changes.

Claude-Session: https://claude.ai/code/session_01KLWmWU1KLE2diUH14ryqv1
@vercel

vercel Bot commented Sep 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
bones Ready Ready Preview Sep 14, 2026 6:44pm UTC

Request Review

* origin/main:
  chore(deps): uuid 13 -> 14 (major) (#78)
  chore(deps): @vercel/analytics 2 and @vercel/speed-insights 2 (major) (#77)
  chore(deps): motion and framer-motion 12 -> 13 (major) (#76)
* origin/main:
  chore(deps): jotai 2 -> 3 (major) (#83)
  chore(deps): concurrently 10, commander 15, npm-check-updates 23 (majors) (#81)
  chore(deps): @types/node 25 -> 26 (major) (#79)

# Conflicts:
#	pnpm-lock.yaml
@lacymorrow
lacymorrow merged commit 1773351 into main Sep 14, 2026
6 checks passed
@lacymorrow
lacymorrow deleted the chore/deps-m-tests branch September 14, 2026 18:44
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.

1 participant