Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dubzzz/jsverify-to-fast-check
Set of tools and helpers to help JSVerify users to migrate to fast-check
https://github.com/dubzzz/jsverify-to-fast-check
fast-check jsverify migration-tool property-based-testing
Last synced: about 2 months ago
JSON representation
Set of tools and helpers to help JSVerify users to migrate to fast-check
- Host: GitHub
- URL: https://github.com/dubzzz/jsverify-to-fast-check
- Owner: dubzzz
- License: mit
- Created: 2019-08-19T13:28:23.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2019-08-20T07:30:51.000Z (about 5 years ago)
- Last Synced: 2024-07-06T01:37:21.052Z (3 months ago)
- Topics: fast-check, jsverify, migration-tool, property-based-testing
- Language: TypeScript
- Homepage:
- Size: 148 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jsverify-to-fast-check
`jsverify-to-fast-check` provides a set of tools and helpers to help [JSVerify](https://github.com/jsverify/jsverify) users to migrate to [fast-check](https://github.com/dubzzz/fast-check).
## Why?
According to the issue [jsverify#299](https://github.com/jsverify/jsverify/issues/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?
```bash
# 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.
```ts
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._