Skip to content

Set of tools and helpers to help JSVerify users to migrate to fast-check

License

Notifications You must be signed in to change notification settings

dubzzz/jsverify-to-fast-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Set of tools and helpers to help JSVerify users to migrate to fast-check

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published