NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2830 most downloaded on npm
JavaScript test spies, stubs and mocks.
Last release 2 months ago
20 Jul 2026
Release timing varies
gaps range from 2 weeks to 6 months
Nearly every release is documented
notes for 21 of 22 stable releases
199 versions withdrawn
withdrawn after publishing
16 years old
221 releases · first in 2010
Support negative indices in getCall
Remove misleading 'own' from exception message
One column per quarter.
- Move .printf to proxy
Upgrade @sinonjs/samsam to latest
Update docs/changelog.md and set new release id in docs/_config.yml
docs/changelog.md and set new release id in docs/_config.ymlRemove obsolete deprecated.printWarning stubbing from test
The major release is caused by removing old mistakes and upgrading dependencies that themselves have had new major releases.
sinon.spyCallsinon.sandbox.createdeprecated.printWarning stubbing from testAdd sinon.assert.calledOnceWithExactly
Restore sinon.createStubInstance() behaviour
Update nise and lolex (minor versions)
Update Lolex to bring in fix for sinonjs/lolex#232 (queueMicrotask warning)
Update @sinonjs/samsam to v3.3.1
Add a Docker Compose config file for testing the setup locally
Retain spy function names and fix spy.named(name)
Set fake.lastArg to last argument regardless of type
fake.lastArg to last argument regardless of typedon't call extends.nonEnum in spy.resetHistory
Update nise to use @sinonjs/text-encoding
- Update @sinonjs/nise - Fix stubbing function objects
Fix mock.withArgs using matchers
- #1957: check for truthiness before checking whether optional override is a stub - Upgrade @sinonjs/samsam - Upgrade @sinonjs/referee to v3
Rename History.md to CHANGELOG.md
Make the spy functions non enumerable so that printing it is more concise
Issue #1852: Add a way to pass a global context to lolex when calling useFakeTimers
Update to Lolex 3: no negative ticks allowed
Upgrade @sinonjs/samsam - fixes minor issue with IE11 introduced in 6.3.4
Update samsam, puppeteer and rollup
Upgrade formatio, samsam, nise and referee
Adds guard for empty properties in deepEqual when a matcher is provided
Fix use of non-cached reference to forEach
Allow providing stubs overrides for sinon.createStubInstance
Add mock.usingPromise to set the Promise library for mock expectations
Upgrade Lolex, Nise and other dependencies
Fix #1796, failing to stub Array.prototype.sort
Update lolex and nise dependencies to latest versions
Fix issue with matchers and cyclic references
Made callsArg, returnsArg, and throwsArg more strict
Restore useFakeXMLHttpRequest correctly in default sandbox
- Syntax sugar for resolvesArg
- Add fake behaviors to sandbox
Export Sinon and its functions as an EcmaScript module (#1809 and #1835)
Remove ES2015 'module' field for 5x branch (fix in separate branch - see tag)
Remove functions shadowing time related sandbox methods
in matcher (#1811)5## .0.10
Nothing published for this version
- Upgrade @std/esm to esm.
@std/esm to esm.Add isSealed check to is-es-module to make certain ESM mocks possible
- Fix stub id prefix
Remove support-sinon.js as postinstall banner
Refuse to replace already replaced values
Fix #1781: Reject non-function values a f argument to fake
Fix #1775: Default sandbox does not restore stubs, spies, mocks
- Reset history on sandbox reset
Remove deprecated spy.reset method
fakesinon as a default sandboxNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add .lastArg and .callback to spy call
Nothing published for this version
Fix #1746: Remove dependency on ES2015 code from post-install script
Fix 1743: Add scripts/support-sinon.js to package
Your coding agent can read these notes before it upgrades. Set up the MCP server →