jsverify-to-fast-check
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

jsverify-to-fast-check

jsverify-to-fast-check provides a set of tools and helpers to help JSVerify users to migrate to fast-check.

Why?

According to the issue jsverify#299, JSVerify is looking to new maintainers to keep the repository up-to-date.

As a huge part of property based lies on generators and properties, this library is designed to help users plug their existing generators within fast-check without any changes.

How to setup?

# you may already have jsverify and/or fast-check setup in your project 
npm install --save-dev jsverify fast-check jsverify-to-fast-check

Example

Because an example will tell more than a long documentation, here is an example of how you might use jsverify-to-fast-check towards move smoothly to fast-check.

import { jsc2fc } from "jsverify-to-fast-check";
import * as jsc from "jsverify";
import * as fc from "fast-check";
 
// Here is an old arbitrary you prefer not to migrate for the moment
const jscArbitrary = jsc.bless({
  generator: jsc.generator.bless(() => {
    switch (jsc.random(0, 2)) {
      case 0:
        return "foo";
      case 1:
        return "bar";
      case 2:
        return "quux";
    }
  })
});
 
// It can easily converted into an arbitrary for fast-check using jsc2fc
const fcArbitrary = jsc2fc(jscArbitrary);
 
// ...it can now:
// - be used in fc.assert/fc.check,
// - supports map, filter, chain
// - can be composed with fc.record, fc.array...
 
// ... it also preserves the shrinking capabilities of the jsverify arbitrary (if any)

Compatibility

Supports at least:

  • fast-check >= 1.0.0
  • jsverify >= 0.8.0

Older versions may worked but are not officially supported. Automated CI of this repository makes sure it works with the minimal versions stated above.

Dependencies (1)

Dev Dependencies (8)

Package Sidebar

Install

npm i jsverify-to-fast-check

Weekly Downloads

2

Version

0.0.3

License

MIT

Unpacked Size

142 kB

Total Files

21

Last publish

Collaborators

  • ndubien