Skip to content

Latest commit

 

History

History
780 lines (462 loc) · 27.7 KB

CHANGELOG.md

File metadata and controls

780 lines (462 loc) · 27.7 KB

1.17.0

Multiple new arbitraries: date, ipv4 extended, uuid, mixed case and many settings

Features

  • (PR#420) Add fc.date arbitrary
  • (PR#427) Add fc.mixedCase arbitrary
  • (PR#393) Support all the range of valid ipV4 with fc.ipV4Extended arbitrary
  • (PR#401) Add ability to customize the null value of fc.option
  • (PR#411) Add fc.uuid arbitrary
  • (PR#433) Add fc.uuidV to tackle specific version of uuid
  • (PR#400) Add withObjectString flag in fc.object/fc.anything

Fixes

  • (PR#425) Bug: skipAllAfterTimeLimit throws when it passes time limit
  • (PR#409) Bug: Web authority should not produce port outside 0-65535
  • (PR#418) Bug: Infinite loop when path is one level deep and all runs succeed
  • (PR#430) Bug: No timeout expiration on node blocks exit
  • (PR#396) Clean: Update dependencies and dev dependencies
  • (PR#432) Clean: Prepare code for ts3.7-pr33401
  • (PR#410) Contrib: Document how to add new arbitraries in fast-check
  • (PR#408) Doc: Usage in conjonction with faker
  • (PR#412) Doc: Diff format in shrinking example
  • (PR#414) Doc: Update ts-jest config (tsConfigFile -> tsConfig)
  • (PR#417) Doc: Add section "Migrate from jsverify to fast-check"
  • (PR#434) Doc: Add table of contents on top of the documentation
  • (PR#397) Test: Reduce flakyness of tests on letrec
  • (PR#422) Test: Rework unit tests of DateArbitrary

1.16.3

skipAllAfterTimeLimit throws when it passes time limit

Fixes

  • (PR#425) skipAllAfterTimeLimit throws when it passes time limit

1.16.2

Web authority ports should be within 0-65535

Fixes

  • (PR#409) Web authority should not produce port outside 0-65535

1.16.1

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.16.0

Easier recursive data-structures

Features

  • (PR#377) Add fc.letrec arbitrary
  • (PR#378) Add fc.memo arbitrary
  • (PR#385) Add caching for withBias of fc.letrec arbitrary
  • (PR#370) Add minimum and maximum validation to integer and nat
  • (PR#382) Take fc.cloneMethod into account for commands
  • (PR#372) Stringify Date as valid JavaScript
  • (PR#371) Stringify Symbol as valid JavaScript

Fixes

  • (PR#375) Clean: Bump TypeScript to 3.5
  • (PR#384) Clean: Remove circular dependency in WebArbitrary file
  • (PR#389) Test: Check that fc.memo and fc.letrec are compatible with node 0.12
  • (PR#376) Test: Fix broken e2e tests
  • (PR#385) Test: Mark warnings as errors in rollup config
  • (PR#388) Type: Fix type inferrence bug in modelRun
  • (PR#379) Refactoring: Re-implement fc.object with fc.memo

1.15.4

skipAllAfterTimeLimit throws when it passes time limit

Fixes

  • (PR#425) skipAllAfterTimeLimit throws when it passes time limit

1.15.3

Web authority ports should be within 0-65535

Fixes

  • (PR#409) Web authority should not produce port outside 0-65535

1.15.2

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.15.1

Documentation updates

Fixes

  • (PR#363) Clean: Bump dev dependencies
  • (PR#366) Clean: Incremental build
  • (PR#362) Clean: Test against node 12
  • (PR#361) Doc: Clarify replay of commands
  • (PR#368) Doc: Direct link to genrated documentation
  • (PR#364) Doc: Extra badges in README
  • (PR#358) Doc: Fix various typos
  • (PR#355) Test: Add no regression snapshot tests

1.15.0

Add auto-skip after time limit option for runners

Features

  • (PR#352) Ability to auto skip runs after time limit
  • (PR#348) Expose fc.stringify in the API

Fixes

  • (PR#354) Doc: Add examples of issues discovered using fast-check
  • (PR#353) Doc: Better logo
  • (PR#351) Size: Add dependency to tslib - should reduce size of the bundle
  • (PR#349) Test: No regression snapshot tests

1.14.2

Web authority ports should be within 0-65535

Fixes

  • (PR#409) Web authority should not produce port outside 0-65535

1.14.1

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.14.0

New generated documentation and new arbitraries

Features

  • (PR#339) Add fc.ipV4() and fc.ipV6() arbitraries
  • (PR#340) Add fc.mapToConstant() arbitrary
  • (PR#344) Add fc.webUrl() and other web urls related arbitraries
  • (PR#345) Add fc.emailAddress() arbitrary

Fixes

  • (PR#343) Doc: Generate the API documentation with docsify

1.13.1

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.13.0

Remove dependency to lorem-ipsum and more control over fc.anything and fc.object

Features

  • (PR#336) Remove dependency to lorem-ipsum
  • (PR#337) fc.frequency() should be compatible with legacy node
  • (PR#338) Add parameter to customize size of fc.object() and fc.anything()

1.12.2

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.12.1

Lighter bundle

Fixes

  • (PR#327) Doc: Ability to copy-paste snippets in HandsOnPropertyBased.md
  • (PR#334) Size: Reduce the size of the bundle - Potential issue if your code directly references TupleArbitrary<T1...>, it should be replaced by Arbitrary<[T1,...]>

1.12.0

Better balance between values produced by fc.anything()

Features

  • (PR#325) Better balance between values produced by fc.anything()

1.11.1

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.11.0

Replay ability for commands and new arbitraries

Features

  • (PR#321) Add new flags for fc.anything and fc.object: withBoxedValues, withSet, withMap
  • (PR#320) Better string representation of failing values
  • (PR#317) Add fc.dedup arbitrary
  • (PR#294) Replay ability for commands
  • (PR#292) Flag to stop the test as soon as it fails
  • (PR#288) Add fc.maxSafeInteger and fc.maxSafeNat arbitraries

Fixes

  • (PR#295) Bug: Not shrinking commands themselves
  • (PR#290) Bug: ExecutionStatus defined as const enum
  • (PR#298) Clean: Factorize code of Runner
  • (PR#297) Clean: Takkle issues reported by codeclimate
  • (PR#306) Doc: Add issues discovered by fast-check
  • (PR#287) Doc: Add issues discovered by fast-check
  • (PR#322) Doc: Links next to features described in Readme
  • (PR#309) Test: Factorize Jest configurations
  • (PR#307) Test: Ensure web-build is correct
  • (PR#300) Perf: No more holey array in fc.array

1.10.2

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.10.1

Fix browser bundle

Fixes

1.10.0

Better shrinking of commands

Features

  • (PR#280) Better shrinking of commands

1.9.4

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.9.3

Fix browser bundle

Fixes

1.9.2

Adapt typings for older versions of TypeScript

Fixes

  • (PR#282) Bug: Cannot find name 'bigint'
  • (PR#282) Declare umd build in package.json

1.9.1

VerbosityLevel enum is accessible through fc.VerbosityLevel

Fixes

  • (PR#278) Bug: VerbosityLevel values not accessible

1.9.0

BigInt support and new verbosity level

Features

  • (PR#274) Add support for asynchronous check method in AsyncCommand
  • (PR#271) More verbose option
  • (PR#268) Add bigInt, bigIntN, bigUint, bigUintN arbitraries
  • (PR#263) Default seed based on random in addition of timestamp

Fixes

  • (PR#272) Bug: Commands partially cloned during the shrinking process
  • (PR#264) Bug: Non-integer seeds not using the full range of integers
  • (PR#269) Clean: Migrate tests to Jest
  • (PR#276) Clean: Unecessary try catch removed for modelRun

1.8.3

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.8.2

Fix regression introduced in the shrinking of cloneable

Fixes

  • (PR#262) Bug: Too many shrinks for commands
  • (PR#261) Bug: Unability to shrink mapped commands
  • (PR#259) Bug: Move cloning responsability at a single place in the code
  • (PR#258) Bug: Shrinker of commands failed to shrink twice (in depth)

1.8.1

Support asynchronous model setup

Fixes

  • (PR#249) Bug: asyncModelRun must accept asynchonous setup function

1.8.0

Native handling of stateful generated values

Features

  • (PR#245) seed can be any possible double value
  • (PR#229) Add context arbitrary
  • (PR#237) Add infiniteStream arbitrary
  • (PR#229) Add cloneable capabilities for stateful generated values

Fixes

  • (PR#241) Doc: Add an example for asyncProperty
  • (PR#238) Better logs for fc.func, fc.compareFunc and fc.compareBooleanFunc
  • (PR#235) Better handling of fc.commands

1.7.2

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.7.1

Fix import of loremIpsum library

Fixes

  • (PR#226) Fix import of loremIpsum library

1.7.0

Switch to another PRNG for better performances, better fc.commands

Features

  • (PR#221) Better shrink capabilities for fc.commands

Fixes

  • (PR#220) Switch to another PRNG as default random - more performances
  • (PR#217) Better typings for fc.record

1.6.3

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.6.2

Performance improvements

Fixes

  • (PR#215) Fix deopt in Stream.join and Random.uniformIn
  • (PR#211) Remove costly spread operator in ArrayArbitrary
  • (PR#210) Reduce the number of closures in Stream
  • (PR#209) Bump to pure-rand@1.4.2: improvements on mersenne twister
  • (PR#208) Bump to pure-rand@1.4.1: destructuring was too costly

1.6.1

Performance improvements

Fixes

  • (PR#207) Performance improvements done on pure-rand side

1.6.0

ESM version of the package published to npm, arbitraries to generate functions and more settings to be able to tweak the execution

Features

  • (PR#201) Add compareBooleanFunc, compareFunc and func arbitraries
  • (PR#200) Parameter randomType to choose the random generator
  • (PR#202) Property hooks for beforeEach and afterEach
  • (PR#196) Publish both cjs and esm versions of the package

Fixes

  • (PR#175) Characters must be biased by default
  • (PR#184) Update to latest lorem-ipsum

1.5.1

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.5.0

Property based test state machine: UI, automata. Addition of subarray and shuffledSubarray arbitraries

Features

  • (PR#177) Add subarray and shuffledSubarray arbitraries
  • (PR#157) Model based testing and commands
  • (PR#158) Characters shrink towards printable ascii

Fixes

  • (PR#170) Fix: fullUnicode and fullUnicodeString were failing on old releases of node
  • (PR#178) Doc: Update typedoc
  • (PR#161) Doc: Suggest bundle.run instead of jsdelivr

1.4.1

Infinite loop on replays with one-level-deep path

Fixes

  • (PR#418) Infinite loop when path is one level deep and all runs succeed

1.4.0

Suggest custom test values with examples

Features

  • (PR#148) Manually add concrete examples to test

Fixes

  • (PR#153) Edit npm project description
  • (PR#152) Add minimal supported node engine version in package.json
  • (PR#149) Bump npm dependencies

1.3.0

Filter invalid values directly in predicates using fc.pre

Features

  • (PR#140) Make seed and path copy pasteable
  • (PR#138) Remove core-js, no more global namespace pollution
  • (PR#118) Enable preconditions in predicate

1.2.3

Reduce package footprint and less restrictive API for oneof/frequency

Fixes

  • (PR#135) Do not force explicitly one parameter in oneof/frequency
  • (PR#134) Doc: Typos in README
  • (PR#132) Add missing exports for jsonObject and unicodeJsonObject
  • (PR#131) Reduce package size
  • (PR#130) Doc: Examples for generation of recursive structures

1.2.2

Less restrictive API for constantFrom

Fixes

  • (PR#123) Do not force explicitly one parameter in constantFrom

1.2.1

Readme update

Fixes

  • (b80b4f92) Doc: Model based testing example
  • (cc4f4f4f) Doc: Getting started tutorial

1.2.0

Built-in chaining of arbitraries

Features

  • (PR#103) Use the output of arbitraries to produce other ones with .chain(...)
  • (PR#114) Add shrink for fc.lorem
  • (PR#116) Throw exception in case of bad path when trying to replay a failure

Fixes:

  • (PR#117) Doc: Fully revamp the documentation
  • (a5dcd71c) Doc: New logo

1.1.4

Better performance for biased arbitraries (=default)

Fixes

  • (PR#107) Fix: Performance issue when using biased arbitraries
  • (743d7619) Fix: Bump to the latest version of pure-rand

1.1.3

Export missing fc.stringOf

Fixes

  • (63915033) Fix: Export missing fc.stringOf

1.1.2

Readme update

Fixes

  • (68893e99) Doc: Why should I migrate section? in README.md
  • (d779aa9e) Doc: Verbose mode explained in README.md
  • (eacc7f0e) Doc: Bug detected using property based testing and fast-check

1.1.1

Ability to use min and max boundaries outside of 32 bits integers for fc.integer

Fixes

  • (b45b90eb) Ability to use min and max boundaries outside of 32 bits integers: fc.integer(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER)

1.1.0

Straight to corner cases and verbose mode

Features

  • (PR#91) Straight to corner cases by default, see unbiased option of assert to disable it
  • (PR#93) Verbose mode on failure to have the list of all failing values encountered, see verbose option of assert to enable it
  • (PR#94) Better typings for fc.record

1.0.4

TypeScript and JavaScript documentation of the code using TypeDoc

Features

Fixes

  • (959fb52b) Doc: Add a Tips section in the Readme
  • (0dd1e66a) Doc: Link towards the generated documentation in the Readme

1.0.3

Reduce risk of using an unimplemented method of Node (older releases <6)

Fixes

  • (55ff3ff) Clean: Switch to the latest ES standard to use its implementations
  • (ce75e4e) Fix: Safer polyfill for older version of node - rely on core-js

1.0.2

Readme update following removal of depreciated devDependencies

Fixes

  • (309a00b) Doc: Update README.md
  • (e13df27) Clean: Clean depreciated dependencies

1.0.1

Fix infinite loop when shrinking array having a minimal length defined

Fixes

  • (d6468dc) Fix: shrink an array with minimal length lead to infinite loop

1.0.0

Easier replay of failures

Faster shrinks

No recursion when shrinking

Features

  • (7dd6fdb) Add min/max parameters on fc.float and fc.double
  • (e294eed) Naming: lower camel case for settings keys
  • (6f35cdd) Check inputs provided to fc.property for easier troubleshoot
  • (b960938) Naming: rename generic_tuple into genericTuple
  • (d1dde51) Faster shrink of arrays (and must of others because built on top of arrays x integers)
  • (fc57174) Faster shrink of integers
  • (be038f0) Replay a failure by setting seed and path
  • (d25d233) Feature counterexamplePath in case of failure
  • (c7a1508) Update error message content in case of failure in fc.assert
  • (eb0d3c2) Better rendering of strings
  • (1e0a73d) Switch to pure-rand library to handle the random number generation

Fixes

  • (56f1e03) Clean: Bump versions of dependencies
  • (d0027d7) Clean: Do not throw raw strings but Error
  • (6af9e6b) Clean: Remove power-assert from devDependencies
  • (fe44db5) Fix: Avoid recursion during shrinking
  • (e3ecc3c) Fix: Bad number of shrinks in case of failure (offset by one)
  • (79c08f7) Fix: Export dictionary arbitrary

0.0.13

Readme update

Fixes

0.0.12

New arbitraries: constantFrom and record

Features:

  • (786e16e) Modify default values available for fc.object
  • (8984e78) Add flag to generate fc.record with missing keys
  • (850158b) Add fc.record Arbitrary
  • (262b809) Add fc.constantFrom Arbitrary

Fixes:

  • (6db53f2) Clean: Exclude example/ from npm package
  • (036cd2f) Doc: Documentation noShrink
  • (0ee3a03) Doc: Link towards jsDelivr

0.0.11

Bundled for web-browsers and node

Features:

  • Add bundle for web-browsers
  • Add code examples in the source code
  • Add minimal length parameter on all strings arbitraries
  • Add es3 support in order to support oldest versions of node
  • Add set, char16bits and fullUnicode arbitraries
  • Add timeout parameter on asychronous properties

Fixes:

  • Fix: unicode character generators

0.0.10

Fix shrink of async properties

Fixes:

  • Fix: bug in shrink of async properties

0.0.9

JSON arbitraries and shrinker kill switch

Features:

  • noShrink method can remove shrink from existing arbitraries
  • Add jsonObject and unicodeJsonObject arbitraries
  • Support higher number of arbitraies in tuples and properties

0.0.8

Code and documentation alignment

Fixes:

  • Doc: align documentation with code
  • Doc: missing parts in the documentation

0.0.7

Going async/await

Features:

  • Support async/await properties
  • Add frequency, anything, object, json, dictionary arbitraries
  • Accept min and max length on array

Fixes:

  • Clean: Better integration with modern tests frameworks (throw Error not strings)

0.0.6

Force ready to be used version

Features:

  • Add option, float, double, boolean arbitraries
  • Add function to extract generated values fc.sample and fc.statitistics

Fixes:

  • Doc: creation of a documentation