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.

Package Sidebar

Install

npm i jsverify-to-fast-check

Weekly Downloads

1

Version

0.0.3

License

MIT

Unpacked Size

142 kB

Total Files

21

Last publish

Collaborators

  • ndubien