Fast-check is a property-based testing framework for JavaScript and TypeScript, written in TypeScript. It lets you define properties that should hold for all generated inputs, helping find counterexamples and produce useful failure reports. It integrates with common JavaScript test runners like Mocha, Jest, Jasmine, AVA, and Tape.
Project status
- The repo is actively maintained, with very recent
updates(last upstream push on 2026-09-16, followed byv4.10.1on 2026-09-15 andv4.10.0plus multiple ecosystem integrations on 2026-09-11). - The apparent cadence is frequent (multiple update trains within about a week in September 2026), with steady minor updates (
v4.10.0) and quick follow-up patching (v4.10.1).
AI summary generated
Recent updates
v4.10.1
v4.10.1 is a targeted patch release focused on improving fake-timer compatibility for the timeout-related plugins. The release notes mention fixing timer capture for the `interruptAfterTimeLimit` plugin, plus a CI tweak to temporarily stop documentation publishing until v5.
v4.10.0
v4.10.0 introduces a new plugin API with rich lifecycle hooks (beforeEach, afterEach), support for teardown, and global plugin configuration. It also adds multiple built-in plugins (timeout, interruptAfterTimeLimit, unbiased, and others) and shifts several behaviors from direct function parameters to plugins, with deprecations planned ahead of v5. A key fix ensures correct plugin ordering, and there is a small performance improvement around interrupt timing.
Featuresvitest/v0.5.0
This release adds support for the fast-check plugin API, enabling integrations to hook into fast-check more directly. It also updates compatibility to support Vitest v5, so test runners using Vitest v5 can use fast-check without compatibility gaps.
Featuresjest/v2.3.0
This release adds a new plugin system to fast-check (jest/v2.3.0 branch) that allows extending and controlling how properties are executed by the runner. The code introduces plugin types and multiple new built-in plugins, and updates the runner to support per-run plugins and global installed plugins.
Featurespoisoning/v0.3.1
This release is a small refactor focused on resolving linter issues. It specifically fixes TypeScript eslint "no-redeclare" errors introduced by earlier code patterns, without any mentioned API or behavioral changes.
v4.9.0
v4.9.0 focuses on improving how `entityGraph` shrinks during generation and adds several targeted performance optimizations across common arbitraries. It also fixes two notable correctness issues, one related to latent state sharing in `entityGraph` and another affecting equiprobable alternatives in `stringMatching`.
SecurityFeaturespackaged/v0.7.1
The release notes only document a dependency bump, updating npm-packlist to v11 (via PR#7001). No other user-facing or behavioral changes are described.
Securityava/v3.0.1
The release notes claim the only change is CI work to extend official support to AVA v8. However, the code diff shows additional, substantial changes in the fast-check core package, including a brand new arbitrary (`chainUntil`) plus related exports, tests, and documentation updates.
v4.8.0
fast-check v4.8.0 adds the new `chainUntil` arbitrary to support iterative chaining patterns. It also includes a fix to restore the ability to not rely on `skipLibCheck`, alongside several CI and documentation-only changes.
Featuresvitest/v0.4.1
vitest/@fast-check/vitest v0.4.1 focuses on fixing `test.each` support by addressing a runtime exception. The diff also includes a small internal fast-check change plus various repository and CI-related updates, though those are not described in the vitest release notes.
v4.7.0
fast-check v4.7.0 adds new support for Unicode property escapes in `stringMatching`, including parsing `\p{}` and `\P{}` patterns and support for `\p{UnicodeProperty}` with negated properties. Release notes also mention a new reversible `json` arbitrary. The rest of the published notes are CI/tooling and documentation changes.
Featuresvitest/v0.4.0
This release (vitest/v0.4.0, package @fast-check/vitest v0.4.0) updates the Vitest integration to use newer Vitest 4.1 TestRunner APIs instead of deprecated vitest/suite imports. The release notes only mention that API migration, plus a documentation note, but the diff shows additional compatibility and internal export changes.
BreakingFeaturespackaged/v0.7.0
Version 0.7.0 of @fast-check/packaged replaces the old keepNodeModules option with a new keep mechanism intended to let users preserve additional root-level entries during cleanup. The main code change is in removeNonPublishedFiles and the packaged CLI flag parsing. Release notes mention the keepNodeModules replacement, but they do not document the precise shape and matching semantics of the new keep option.
BreakingFeaturespoisoning/v0.3.0
This release switches to publishing an ESM-only bundle. It also removes CommonJS support and drops the (previously unnecessary) typesVersions configuration, which may require changes to how consumers import and type Fast-Check. CI build tooling was improved to speed up builds.
Breakingworker/v0.6.0
worker/v0.6.0 changes the published bundle format to ESM only, dropping CommonJS support. It also includes a GlobalPool fix for premature worker termination, plus performance-related updates around pure-rand (including a version bump).
Breakingvitest/v0.3.0
This release updates fast-check's Vitest integration to support `beforeEach` and `afterEach` hooks via `@fast-check/vitest`. It also removes CommonJS support and package `typesVersions`, moving users toward an ESM-first setup. A CI build performance improvement is included, plus documentation updates covering the new hook support and its limitations.
BreakingFeaturesv4.6.0
fast-check v4.6.0 improves `stringMatching` by adding basic `maxLength` support, along with additional clamping behavior for regex-based matching when `maxLength` is used. It also deprecates `Random::next(n)` and `Random::nextInt()`, alongside several bug fixes (including a crash fix for detached ArrayBuffers) and a security patch for a template-injection finding.
SecurityFeatures