Ad

fake-timers: JavaScript Timer Mocking

fake-timers provides a JavaScript implementation to simulate `setTimeout` and other timer APIs, enabling reliable testing of asynchronous code without real-time delays.

fake-timers allows developers to mock and control JavaScript timers like setTimeout, setInterval, and requestAnimationFrame. It simulates the behavior of these APIs, making it possible to test code that relies on timing without actually waiting for time to pass. The library offers a configurable clock instance that can be used to schedule events and advance time, providing control over the execution order of asynchronous operations. It leverages a clock-based system for precise time management.

This project offers a comprehensive solution for timer mocking, including support for browser and Node.js environments. It provides built-in type definitions for seamless integration with TypeScript and IDEs. A key feature is the ability to install fake timers globally, intercepting native timer functions. The library supports advanced configuration options, like automatic time advancement, providing flexibility for test scenarios.

  • Core Timer APIs: Provides mocks for setTimeout, setInterval, requestAnimationFrame, and related functions.
  • Global Installation: Allows replacing native timer functions globally for comprehensive testing.
  • TypeScript Support: Includes JSDoc-based type definitions for improved developer experience.
  • Configurable Clock: Features a clock instance for precise time management and event scheduling.
  • Advanced Time Control: Supports automatic time advancement and customizable runToLast functionality.
  • Browser & Node.js Compatibility: Functionally applicable in both browser and Node.js environments.
  • Next Tick Mode: Allows advanced control over timeline execution for comprehensive testing.

The project appears to be well-established with a long history of maintenance, indicated by the creation date in 2014 and recent commits. Active issue reporting suggests ongoing development and responsiveness to user feedback. The comprehensive API documentation and integration with Sinon.JS indicate a robust and reliable library.

This project is valuable for developers who need to test JavaScript code that depends on asynchronous timers. It simplifies the process of simulating time, allowing for predictable and repeatable test results. By providing precise control over timers, fake-timers avoids race conditions and timing-related bugs, leading to more reliable software.

Topics:
Summarize:
Share:
Stars
859
Forks
122
Issues
12
Created
12 years ago
Commit
2 months ago
License
BSD-3-CLAUSE
Archived
No
Updated 28 days ago

Similar Repositories