Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,17 @@ updates:

# ─── Node >= 22 majors: holds lifted 2026-11-04 ──────────────────────
# better-sqlite3, @testing-library/jest-dom and cssnano majors were held
# while the host toolchain was Node 20.19 (jest-dom 7 broke 43 suites;
# cssnano 8 calls Set.prototype.difference). The toolchain is Node 24
# now, so their majors arrive as ordinary Dependabot PRs again; each
# still has to pass `npm run ci` on its own.
# while the host toolchain was Node 20.19 (cssnano 8 calls
# Set.prototype.difference). The toolchain is Node 24 now, so their
# majors arrive as ordinary Dependabot PRs again; each still has to
# pass `npm run ci` on its own.
#
# jest-dom 7's suite breakage was NOT the Node version: it still broke
# 54 suites on Node 24 (#86). jest-dom 7 eagerly requires
# @testing-library/dom, which requires 'fs' at load, so loading it from
# test/test-setup.js cached the memfs `fs` mock and silently overrode
# every test file's own jest.mock('fs', factory). test-setup.js now
# loads jest-dom inside jest.isolateModules; keep it there.
#
# better-sqlite3 needs more than `npm run ci`: Jest never loads the
# native module (shouldUseSqliteBackend defaults to false under Jest,
Expand Down
4 changes: 2 additions & 2 deletions docs/commercial-use-inventory.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"generatedAt": "2026-11-06T20:44:48.205Z",
"generatedAt": "2026-11-07T00:28:55.915Z",
"projectLicense": {
"riskLevel": "allowed",
"reason": "Project license is PolyForm Noncommercial 1.0.0 for personal/noncommercial use. Commercial rights are sold separately; third-party dependency obligations remain governed by their own licenses.",
Expand Down Expand Up @@ -9842,7 +9842,7 @@
},
{
"packageName": "@testing-library/jest-dom",
"version": "6.9.1",
"version": "7.0.1",
"license": "MIT",
"riskLevel": "allowed",
"directRuntime": false,
Expand Down
19 changes: 14 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@
"@svgr/webpack": "^8.1.0",
"@tailwindcss/postcss": "^4.3.4",
"@testing-library/dom": "^10.4.2",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.3",
"@types/debug": "^4.1.13",
"@types/graceful-fs": "^4.1.9",
Expand Down
10 changes: 9 additions & 1 deletion test/test-setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@
*/

// Import jest-dom for React Testing Library matchers (toBeInTheDocument, etc.)
require('@testing-library/jest-dom');
// Loaded in an isolated registry: jest-dom 7 eagerly requires
// @testing-library/dom, which requires 'fs' at load time. Outside isolation
// that instantiates the memfs mock below into the shared mock registry, and a
// test file's own jest.mock('fs', factory) is then ignored (the cached memfs
// wins), so fs.x.mockResolvedValue is undefined. expect.extend() is global,
// so the matchers survive the isolated registry being discarded.
jest.isolateModules(() => {
require('@testing-library/jest-dom');
});

const { vol, fs: memfs } = require('memfs');
const path = require('path');
Expand Down
Loading