From 1919c3dc0384f2d01511eb1cfe2b5580616dc6d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Nov 2026 17:47:32 +0000 Subject: [PATCH 1/4] build(deps-dev): Bump @testing-library/jest-dom from 6.9.1 to 7.0.1 Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.9.1 to 7.0.1. - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.1) --- updated-dependencies: - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 19 ++++++++++++++----- package.json | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3791b7..fdca811 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "@svgr/webpack": "^8.1.0", "@tailwindcss/postcss": "^4.3.3", "@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", @@ -14920,9 +14920,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.1.tgz", + "integrity": "sha512-oMDTC3oA+6CXSO2JZnvOI7CA6oVub6kij5ggk9ohwye5slmkwxYDXcPOVxgMw/RQlticjtO0C1RZkR97HgrWMw==", "dev": true, "license": "MIT", "dependencies": { @@ -14934,9 +14934,18 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "vitest": { + "optional": true + } } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { diff --git a/package.json b/package.json index c9e0b65..4d6244e 100644 --- a/package.json +++ b/package.json @@ -259,7 +259,7 @@ "@svgr/webpack": "^8.1.0", "@tailwindcss/postcss": "^4.3.3", "@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", From 432619001e3dd70ca3b86ace29f948a85389e16f Mon Sep 17 00:00:00 2001 From: Levy Tate <78818969+iLevyTate@users.noreply.github.com> Date: Fri, 6 Nov 2026 15:44:56 -0500 Subject: [PATCH 2/4] chore(compliance): refresh the lockfile and commercial-use inventory after merging main --- docs/commercial-use-inventory.json | 4 ++-- package-lock.json | 24 ------------------------ 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/docs/commercial-use-inventory.json b/docs/commercial-use-inventory.json index 58a652e..93866dc 100644 --- a/docs/commercial-use-inventory.json +++ b/docs/commercial-use-inventory.json @@ -1,5 +1,5 @@ { - "generatedAt": "2026-11-06T20:24:32.281Z", + "generatedAt": "2026-11-06T20:44:56.404Z", "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.", @@ -9842,7 +9842,7 @@ }, { "packageName": "@testing-library/jest-dom", - "version": "6.9.1", + "version": "7.0.1", "license": "MIT", "riskLevel": "allowed", "directRuntime": false, diff --git a/package-lock.json b/package-lock.json index ac875d3..321d247 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14697,9 +14697,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -14717,9 +14714,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -14737,9 +14731,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -14757,9 +14748,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -25011,9 +24999,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -25035,9 +25020,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -25059,9 +25041,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -25083,9 +25062,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ From 6a6e8e73a67a1cb00a883c1eba64fadd11d8dbd7 Mon Sep 17 00:00:00 2001 From: Levy Tate <78818969+iLevyTate@users.noreply.github.com> Date: Fri, 6 Nov 2026 15:45:19 -0500 Subject: [PATCH 3/4] chore(deps): keep the lockfile's platform libc fields --- package-lock.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/package-lock.json b/package-lock.json index 321d247..ac875d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14697,6 +14697,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -14714,6 +14717,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -14731,6 +14737,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -14748,6 +14757,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -24999,6 +25011,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -25020,6 +25035,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -25041,6 +25059,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -25062,6 +25083,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ From 875e72206cba98677ecd08f3d3121a59a5633a53 Mon Sep 17 00:00:00 2001 From: Levy Tate <78818969+iLevyTate@users.noreply.github.com> Date: Fri, 6 Nov 2026 19:31:14 -0500 Subject: [PATCH 4/4] test(setup): load jest-dom in an isolated registry so per-file fs mocks win jest-dom 7 eagerly requires @testing-library/dom, which requires 'fs' at load time. Loaded from test-setup.js, that instantiated the shared memfs `fs` mock into the mock registry, so every test file's own jest.mock('fs', factory) was ignored and fs.x.mockResolvedValue was undefined (54 suites, 684 tests failed on #86). Loading jest-dom inside jest.isolateModules discards that instance; expect.extend() is global so the matchers survive. Also corrects the dependabot.yml note that blamed the jest-dom 7 breakage on Node 20. --- .github/dependabot.yml | 15 +++++++++++---- test/test-setup.js | 10 +++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5a96047..741efaf 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -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, diff --git a/test/test-setup.js b/test/test-setup.js index 719bc50..fec71a9 100644 --- a/test/test-setup.js +++ b/test/test-setup.js @@ -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');