- breaking: Drop Node 16, use Node 22 LTS and update tests to handle the new Navigation API (#519)
- fix: Resilient to prototype pollution of Intl (#517)
- fix: return fake version for
performance.timeOrigin
(#515)
- Ensure checks based Object.keys length pass for fake Dates (#513)
- Fix constructor-based checks for fake Date no longer pass after installing (#512) (patches the patch)
- Ensure checks based on the constructor property passes for fake Dates (#511)
- fix #504: make instances of original Date pass as instances of the fake Date (#505)
- Add a guard to prevent test from failing in Puppeteer
- Add a missing test on using timers not present on a custom global
- Fix toString() output
- fix: fake all supported timers by default (#323) (BREAKING)
- Support performance.measure+mark (#499)
- fix: save methods of children Date instance (#437) (#480) (potentially BREAKING)
- Prevent releasing on branches other than 'main'
- Enable saucelabs tests
- chore: security audit fix
- Remove Husky deprecation messsage that came in v9
- chore: security audit fix
- Remove Husky deprecation messsage that came in v9
- Fix listener leak for timers/promises
- upgrade deps (#496)
- Add support for timers/promises module from nodejs (#495)
- chore: update deps (#494)
- Fail when a timer is not available in the context (#491)
- Fix link to Mochify and adjust description (#488)
- New mochify (#395)
- Bump browserify-sign from 4.2.1 to 4.2.2 (#486)
- Fix for #483 and jestjs/jest#14549 (#485): micro-tasks are run even when timers are empty
- no-op to fix a broken release process
- Upgrade packages
- feat: add RelativeTimeFormat to Intl API (#479)
- favor the constructor of the performance instance if it exists (#478)
- Bump tough-cookie from 4.1.2 to 4.1.3 (#473)
- Remove IE specific hacks (#477)
- feat: mock intl api (#474)
- upgrade node (#476) and EOL Node 14
- Bump word-wrap from 1.2.3 to 1.2.4 (#475)
- Updated release files for 11.0.0
- Updated release files for 10.2.0
- Add mocks to NodeJS "timers" module (#467)
- 11.0.0: Re-release 10.2.0 as a new major version as mocking Node "timers" module broke some setups
- Add mocks to NodeJS "timers" module (#467)
- Add clock.jump method (#465)
- Upgrade all packages
- Revert change to lock file. Back on v2
- fix: requestAnimationFrame args (#458)
- chore: remove
fsevents
dependency (#455) - Upgrade dependencies (#440)
- fix(runToLastAsync): tick the correct amount of time
- Fix #441: update spelling of prop descriptor prop (#453)
- Prefer @sinonjs/commons@2
- Drop node 12 (#428)
- Prohibit faking of faked timers (#426)
- fix(timer.refresh): should just change
callAt
(#425)
- add hasRef (#419)
- Breaking: remove Node 10 from running tests
- chore(ci): do not hard code node versions (#417)
- chore: test on node 17 (#416)
- fix global performance node 16 (#412)
- Bump node-fetch from 2.6.1 to 2.6.7 (#414)
- Bump cached-path-relative from 1.0.2 to 1.1.0 (#413)
- Clarify async usage (#411)
- Faking performance when not present should throw an error (and minor changes) - fix for #374 (#400)
- Add performance to config.toFake
- Add native timer clean-up behavior (#407)
- give a hint about how to get type defs (#405)
- fix: handle missing stack when throwing recursion errors (#401)
- Remove generated typescript definitions. If you use this package with TypeScript, install
@types/sinonjs__fake-timers
after upgrading (#386) - Issue 390 implicit dependencies on faking interval (#391)
- replace var with const/let (#392)
- Retry - Add stack trace to code recursively scheduling timers #325 (#375)
- Fix #382 by making config fields optional (#383)
- Fix #347 : Support util.promisify
- Fix JSDoc for createClock
- Remove Safari from Sauce Lab (ref #380)
- Bump hosted-git-info from 2.6.0 to 2.8.9
- Bump handlebars from 4.7.6 to 4.7.7
- Bump lodash from 4.17.19 to 4.17.21
- Add in latest Safari and evergreen Edge
- Drop IE11 and Safari 9
- chore: add type tests (#373)
- remove constructor types
- use globalThis to avoid conflicts
- Update yargs-parser
- Update mkdirp
- Upgrade jsdom
- Upgrade mochify to latest
- Upgrade Mocha to latest
- Bump y18n from 4.0.0 to 4.0.1
- make config optional
- add a bunch more types
- Fix up some clock types in JSDoc (becomes
.d.ts
) (#370) - Fix refresh arguments forwarding (#369)
- Fix usage with TypeScript
- Removing the use of eval in Node.js (#331)
- Drop Node 8
- Add docs about typings (#357)
- Make config options optional in TypeScript defs (#354)
- Update README section about browser use
- Remove bundle from package. If you're loading
fake-timers
via script tag, you'll now have to provide your own bundled version - Add .d.ts files to package
- Revert "Add stack trace to code recursively scheduling timers" (#338)
- Remove unnecessary durations and use globals
- Support timeout.refresh in node environments
- Fix #319: Error message changed to TypeError
- Fix #319: The use of 'eval' has been removed
- Fix #304: clearTimeout clears setInterval and clearInterval clears setTimeout
- Remove config.target (#318)
- Support util.promisify in Node (#223)
- Rename project to
@sinonjs/fake-timers
- Use global from
@sinonjs/commons
- Fix setSystemTime affects hrtime if its called multiple times.
- Test coverage: use nyc
- Fix global ReferenceError (#273)
- Upgrade lolex with async versions of most calls
- Upgrade eslint, add prettier
- Use
--no-detect-globals
to bundle and test lolex (#270)
- Avoid installing setImmediate in unsupported environments
- fix #246: non-constructor Date() should return a string
- Fix support for replacing the JSDOM performance field
- Fix crash on Bash version 3 (macOS)
- Support hrtime.bigint()
- fix: count microtasks in countTimers
- Return empty arrays for performance.getEntries, other relevant methods
- Remove sinon: added by mistake
- Drop support for IE9 and IE10: link to supported browsers in README
- No more ExperimentalWarnings in Node environment for queueMicrotask() if it's not used in user's code
- default timeout set to 50ms
- first implementation of requestIdleCallback and cancelIdleCallback
- fixed accidentally performance.now() -> x.now() replacement
- added queueMicrotask
- Add countTimers method
- Disallow negative ticks (breaking API change!)
- Avoid exposing hrNow
- Fix #207 - round-off errors in
hrtime
- Truncate sub-nanosecond values for
hrtime
- Truncate sub-millisceond values for
Date.now()
- fix: handle floating point in hrtime (#210)
- fix: reset high resolution timer on clock.reset (#209)
- Add an error when creating a clock with no Date object (#205)
- performance.mark related fixes for failing Safari, IE 10 and IE 11 tests
- Fix for #200: TypeError on performance.mark
- fix(setInterval): parse
timeout
arg to integer (#202) - Upgrade insecure dependencies with npm audit fix
- Fix performance replacement on iOS 9.3
- reset clock to start
- check Performance exists before touching it
- Fix
reset
and document it publicly Clear microtick jobs and set now to 0 in reset (#179) - Access Date on
_global
(#178)
- feat: respect loopLimit in runMicrotasks (#172)
- assign performance as a property, not as a function
- Upgrade Mochify to v5.6 (#162) fixed #170
- Access
Performance
via_global
(#168)
- fix: handle negative infinity timeout (#165)
- Add
withGlobal
export - expose runMicrotasks
- Fix that performance.mark is undefined after timer install
- Add files section to package.json to avoid unnecessary package bloat #154
- Add missing functions in default
toFake
#150
- bugfix for a setTimeout() or setSystemTime() within a nextTick() call. (#145)
- Stops leak of (request|cancel)AnimationFrame into global scope. (#143)
- return timers on uninstall
- Add support for requestAnimationFrame
- fix negative timeout bug
- add module entry point (#133)
-
- does not fake process.nextTick by default - added .idea folder to .gitignore - fixed documentation - added clock teardowns in tests
- overflowing the timer correctly (issue #67)
- support passing parameters in nextTick (fixes #122)
- Throw error on incorrect install use (#112)
- Add support for process.nextTick
- lolex can now attach itself to the system timers and automatically ad… (#102)
- update hrtime when an interval ticks
- New install() signature
- Add support for performance.now (#106)
- Fix issue with tick(): setSystemClock then throw
- Update old dependencies
- Added support to automatically increment time (#85)
- Changed internal uninstall method signature
- Use common Sinon.JS eslint config
- Allow install to be called with date object
- Remove wrapper function
- Fixed typo in clock.runAll error
- Upgrade mocha to latest
- Only overwrite globals when running in IE
- Fix setInterval() behavior with string times
- Incorporate test from PR #65
- Fix issue #59: context object required 'process'
- fixed a case where runAll was called and there are no timers (#70)
- Correct the clear{Interval|Timeout|Immediate} error message when calling
set*
for a different type of timer. - Lots of minor changes to tooling and the build process
- 1.5.0
- Check for existence of
process
before using it - Run to last existing timer
- Add runAll method to run timers until empty
- Turn off Sauce Labs tests for pull requests
- Add tests demonstrating that a fake Date could be created with one argument as a String since this string is in a format recognized by the Date.parse() method.
- Run test-cloud on Travis
- Add process.hrtime()
- Add bithound badge to Readme.md
- Make Travis also run tests in node 4.2
- Update jslint, referee, sinon, browserify, mocha, mochify
- Rename src/lolex.js to src/lolex-src.js to avoid bithound ignoring it
- Add .bithoundrc
- 1.4.0
- Remove BASH syntax in lint script
- correct test descriptions to match the tests
- correct parseTime() error message so it matches behavior
- don't run test-cloud as part of npm test
- doc: full API reference
- doc: update 'Running tests' section
- doc: update 'Faking the native timers' section
- doc: remove requestAnimationFrame
- Implement clock.next()
- Run lint in CI
- Fix jslint errors
- 1.3.2
- Fix for breaking shimmed setImmediate
- Remove error whos reason is no longer accurate
- 1.3.0
- Throw exception on wrong use of clearXYZ()
- Fix for Sinon.JS issue #808 :add setSystemTime() function
- Fix for Sinon.JS issue #766: clearTimeout() no longer clears Immediate/Interval and vice versa
- Update Readme.md to point to LICENSE file
- Fix error in readme about running tests
- Fix for warning about SPDX license format on npm install
- 1.2.2
- Fixing lint mistake
- Update travis to use [email protected]
- Fix complaint about missing fake setImmediate
- Use license in package.json
- New build
- Dodge JSLint...
- Up version
- Proper fix for writable globals in IE
- Make timers writable in old IEs
- 1.2.0
- Fix Sinon.JS issue 624
- Lint the test files also
- Add .jslintrc
- Delay setImmediate if it is during tick call
- Add test case
- Test behaviour of hasOwnProperty beforehand
- Compare now() with delta
- Use undefined for defined predicate
- Put setImmediate in toFake list
- Capture clock instance for uninstall
- Restore commented out tests
- Add JSLint verification to test
- Configure Travis to run tests in node 0.10.x
- Add .editorconfig
- Fail when faking Date but not setTimeout/setInterval
- 1.1.0 Fixes setImmediate problems
- Rely on
timer
initialization to null - Timer assembly occurs at addTimer callsites
- Sort immediate timers before non-immediate
- Add createdAt to timers
- Sort timers by multiple criteria, not just callAt
- Refactor firstTimerInRange
- Rename
timeouts
property totimers
- addTimer is options-driven
- Add built file for browsers
- Fix URL
- Don't run tests that require global.proto on IE 9 and IE 10
- Add "bundle" script to create standalone UMD bundle with browserify
- Float with new test framework versions
- Remove redundant module prefix
- Let Browserify set "global" for us
- Change test framework from Buster to Mocha and Mochify
- Make timer functions independent on
this
- Change APIs according to Readme
- Change clock-creating interface
- Change Github paths
- Basically working extraction from Sinon.JS