Repository navigation
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: testdouble/testdouble.js
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.21.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: testdouble/testdouble.js
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.23.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 14 commits
- 20 files changed
- 1 contributor
Commits on Sep 21, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 6ea9dd1 - Browse repository at this point
Copy the full SHA 6ea9dd1View commit details
Commits on Sep 28, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 308ca5f - Browse repository at this point
Copy the full SHA 308ca5fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a777f4c - Browse repository at this point
Copy the full SHA a777f4cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8cee5a3 - Browse repository at this point
Copy the full SHA 8cee5a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a9f2f1 - Browse repository at this point
Copy the full SHA 3a9f2f1View commit details
Commits on Oct 2, 2026
-
Picks up the fix for unbounded memory growth when replacing ES modules: quibble now only re-evaluates modules that are mocked or can reach a mocked module, instead of every module imported while any mock exists.
Configuration menu - View commit details
-
Copy full SHA for bed2b61 - Browse repository at this point
Copy the full SHA bed2b61View commit details -
Configuration menu - View commit details
-
Copy full SHA for aa54585 - Browse repository at this point
Copy the full SHA aa54585View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b14484 - Browse repository at this point
Copy the full SHA 2b14484View commit details -
Configuration menu - View commit details
-
Copy full SHA for bc8cb18 - Browse repository at this point
Copy the full SHA bc8cb18View commit details
Commits on Oct 6, 2026
-
Add a pnpm example that replaces a third-party ES module
td.replaceEsm('some-package') resolves the package through quibble, which under pnpm can't see packages that only the app depends on unless pnpm hoisting happens to make them visible (testdouble/quibble#84). The new examples/node-esm-pnpm project is a pnpm workspace with hoisting off whose packages/app test replaces is-number, a dependency of that package only. It has to be a workspace: in a single pnpm project the app's own node_modules is still within reach of quibble's. It fails with quibble 0.11.x (the real is-number runs, because quibble replaces a different copy) and with 0.12.0 on Node 24+ (the generated stub for a CommonJS module is a SyntaxError), so it's expected to fail until quibble is bumped to 0.12.1. script/run-examples installs examples that have a pnpm-workspace.yaml with pnpm, and CI installs pnpm (8 on Node 16, 9 on Node 18, latest otherwise). The example sets hoisting off in both pnpm-workspace.yaml (pnpm 10+) and .npmrc (pnpm 8/9), and minimumReleaseAge: 0 so pnpm doesn't add exclusions to pnpm-workspace.yaml for just-released dependencies. Its lockfile isn't committed, so run-examples installs with --no-frozen-lockfile.Configuration menu - View commit details
-
Copy full SHA for 4bcfdf9 - Browse repository at this point
Copy the full SHA 4bcfdf9View commit details -
Picks up two fixes for replacing ES modules: - 0.12.0 resolves bare specifiers from the caller instead of from quibble's own directory, so td.replaceEsm('some-package') replaces the copy the test imports under pnpm, and in monorepos where packages need different versions of a dependency (testdouble/quibble#84) - 0.12.1 generates valid stubs for export names that aren't identifiers, so td.replaceEsm() of a CommonJS package no longer fails on Node 24+ with "SyntaxError: Unexpected token '.'" (Node gives CommonJS modules a 'module.exports' named export) With these, the node-esm-pnpm example passes.Configuration menu - View commit details
-
Copy full SHA for 2f5bb31 - Browse repository at this point
Copy the full SHA 2f5bb31View commit details -
Configuration menu - View commit details
-
Copy full SHA for e75a031 - Browse repository at this point
Copy the full SHA e75a031View commit details -
Configuration menu - View commit details
-
Copy full SHA for 805e5c5 - Browse repository at this point
Copy the full SHA 805e5c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for c415c49 - Browse repository at this point
Copy the full SHA c415c49View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v3.21.0...v3.23.0