Back to Explore

dubzzz/fast-check

GitHub
6 updates · last 90 days1 watchersOpen source

Last release:

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

  • Actively maintained, upstream push is today (2026-06-11), and recent fast-check updates (v4.8.0, v4.7.0, v4.6.0) indicate ongoing core development rather than maintenance-only work.
  • Apparent update cadence is roughly monthly, with core updates on/around 2026-03-08 (v4.6.0), 2026-04-17 (v4.7.0), and 2026-05-11 (v4.8.0), plus continued integration updates in April.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • packaged/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.

    Security
  • 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`.

    SecurityFeatures
  • ava/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.

    Features
  • vitest/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.

    Features
  • vitest/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.

    BreakingFeatures
  • packaged/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.

    BreakingFeatures
  • poisoning/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.

    Breaking
  • worker/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).

    Breaking
  • vitest/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.

    BreakingFeatures
  • v4.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