All Versions
113
Latest Version
Avg Release Cycle
20 days
Latest Release
-

Changelog History
Page 1

  • v2.17.0 Changes

    ๐Ÿ‘ Better typings for constantFrom and better support for Promises in stringify [Code][Diff]

    ๐Ÿ”‹ Features

    • โœจ (PR#1969) Enhance typings of constantFrom
    • (PR#1953) Speed-up random by using unsafe methods of pure-rand
    • (PR#1996) Fork paths of array/set in ArrayArbitrary::generate
    • (PR#1984) Async reporters can enrich the output with async data
    • โœจ (PR#1972) Enhance stringify on Promise
    • (PR#2006) Support custom* async serializer in stringify (*via internal symbol)
    • (PR#2015) Forward the custom toString methods of the underlying commands
    • ๐Ÿ‘ (PR#2014) Better stringified value for func producing async values
    • โœ… (PR#2018) Better stringified value for infiniteStream producing async values
    • (PR#2019) Expose custom to string methods

    ๐Ÿ›  Fixes

    • 0๏ธโƒฃ (PR#1997) Bug: Default reporter performed side-effects on the output
    • ๐Ÿ‘ฏ (PR#2017) Bug: Better detection for objects that could define cloneMethod in map
    • ๐Ÿ‘ฏ (PR#2016) Bug: Safer check for cloneMethod to also support prototype-less objects
    • (PR#1954) CI: Rewrite reaction to comment action using github-script
    • ๐Ÿ‘ท (PR#1981) CI: Drop Node 10 from CI tool-chain
    • ๐Ÿ‘ท (PR#1982) CI: Drop Node 10 from CI tool-chain
    • 0๏ธโƒฃ (PR#1983) CI: Override default version of node in codesandbox with node 14
    • ๐ŸŽ (PR#1951) Doc: Add "Performance" category into the PR template
    • ๐Ÿ‘• (PR#1970) Doc: Fix wrong format command and add lint fixing command
    • (PR#2005) Doc: Fix typo barely -> nearly
    • (PR#2007) Doc: Prefer more explicit async/await properties in examples/
    • โ™ป๏ธ (PR#2001) Refactor: No more use of window for global configuration
    • โ™ป๏ธ (PR#2002) Refactor: Build context when building the item itself in ArrayArbitrary

  • v2.16.0 Changes

    ๐ŸŽ Performance improvements (+50% in avg compared to 2.14.0, +150% in avg compared to 2.15.0) [Code][Diff]

    ๐Ÿ”‹ Features

    • โšก๏ธ (PR#1943) Try to optimize conversions from/to NextValue
    • (PR#1944) Call generate on the NextArbitrary from Property
    • (PR#1945) Faster generate for constant and constantFrom
    • (PR#1946) Speed-up conversions from/to NextValue
    • ๐Ÿ‘ฏ (PR#1948) More performant non-cloneable values in NextValue

    ๐Ÿ›  Fixes

    • โœ… (PR#1947) Test: Escape strings passed to userEvent.type in examples

  • v2.15.0 Changes

    ๐Ÿ†• New logo, new way to define fully custom arbitraries using NextArbitrary [Code][Diff]

    ๐Ÿ”‹ Features

    • (PR#1678) Introduce NextArbitrary, new way to define arbitraries
    • ๐Ÿ‘ฏ (PR#1690) Document and expose clone related methods
    • (PR#1730) Ensure bigint are always instanciated with valid ranges
    • ๐Ÿ‘ฏ (PR#1750) Add support for cloneable instances in fc.constant and fc.constantFrom
    • ๐Ÿ‘ฏ (PR#1756) Add support for bias in clone (and dedup)
    • ๐Ÿ‘ (PR#1758) Add support for bias in mixedCase
    • ๐Ÿ‘ (PR#1794) Support canGenerate and shrink of user-defined values on map
    • (PR#1799) Implement unmappers for char arbitraries
    • ๐Ÿ‘ (PR#1632) New logo supports dark mode and fits better within README
    • (PR#1812) Add unmappers for built-in arbitraries on strings
    • ๐Ÿ‘ (PR#1836) Add built-in unmapper support onto mapToConstant
    • ๐Ÿ‘ (PR#1838) Add built-in unmapper support onto lorem
    • ๐Ÿ‘ (PR#1857) Add built-in unmapper support onto dictionary
    • ๐Ÿ‘ (PR#1866) Add built-in unmapper support onto date
    • ๐Ÿ‘ (PR#1888) Add built-in unmapper support onto ip
    • ๐Ÿ‘ (PR#1912) Add built-in unmapper support onto record

    ๐Ÿ›  Fixes

    • ๐Ÿ‘ฏ (PR#1693) Bug: Apply cloneMethod on map/filter instances of Shrinkable
    • (PR#1712) Bug: Shrinker on integers was possibly generating out-of-range values
    • (PR#1713) Bug: canGenerate method on integer should reject -0
    • (PR#1736) Bug: canGenerate of FrequencyArbitrary was not using depth properly
    • (PR#1737) Bug: freq of 0 not considered the same way in constraints-based and simple arg
    • โœ… (PR#1755) Bug: infiniteStream was not properly cloning cloneable instances
    • (PR#1759) Bug: Not properly biased mixedCase
    • (PR#1776) Bug: ConstantArbitrary must not shrink towards the first if it is already the first
    • ๐Ÿ‘ฏ (PR#1780) Bug: clone must use Object.is and check values on canGenerate
    • ๐Ÿ–จ (PR#1783) Bug: StreamArbitrary should print any value that have been pulled
    • (PR#1784) Bug: Stream.take pull one unneeded value from the source
    • โฑ (PR#1787) Bug: SchedulerArbitrary is wrongly cloning the passed Random
    • (PR#1822) Bug: .map should check canGenerate on source before calling shrink
    • (PR#1821) Bug: mixedCase should only call context-based shrinkers for the string
    • (PR#1837) Bug: maxCount of 0 was overriden to 5 in lorem instead of being rejected
    • ๐Ÿ— (PR#1856) Bug: Build reverse-mapping built by mapToConstant for node 10
    • (PR#1910) Bug: Stricter unmapper for dictionary to prevent unmapping unrelated values
    • (PR#1914) Bug: option can now properly shrink without any context (incl. to nil)
    • (PR#1647) CI: Stricter conditions to trigger workflow on push
    • (PR#1663) CI: Stricter conditions to trigger workflow on push
    • ๐Ÿ— (PR#1830) CI: Build against Node 16.x
    • ๐Ÿšš (PR#1760) Clean: Remove duplicated tests for letrec
    • ๐Ÿšš (PR#1892) Clean: Remove unneeded map in record for required keys
    • ๐Ÿšš (PR#1917) Clean: Remove unneeded checks in map for context-less shrink
    • (PR#1664) Doc: Only mark relevant titles as H* in the Readme
    • ๐Ÿšš (PR#1665) Doc: Move back to H2 for titles in the Readme
    • (PR#1697) Doc: Fic grammar
    • (PR#1883) Doc: Rework PR template
    • โœ๏ธ (PR#1907) Doc: Fix typos in naming for describe on nat
    • โšก๏ธ (PR#1906) Doc: Update mug.svg to be aligned with logo.svg
    • (PR#1911) Doc: Fit svg to mug.svg
    • (PR#1919) Doc: Fix typo in PR template
    • (PR#1915) Doc: Document how to extend fast-check with NextArbitrary
    • โšก๏ธ (PR#1920) Doc: Update outdated links in AdvancedArbitraries.md
    • ๐Ÿšš (PR#1709) Move: Move integer arbitraries into /arbitrary
    • ๐Ÿšš (PR#1715) Move: Move bigint arbitraries into /arbitrary
    • ๐Ÿšš (PR#1716) Move: Move array arbitraries into /arbitrary
    • ๐Ÿšš (PR#1727) Move: Move frequency arbitraries into /arbitrary
    • ๐Ÿšš (PR#1739) Move: Move tuple arbitraries into /arbitrary
    • ๐Ÿšš (PR#1743) Move: Move letrec arbitrary into /arbitrary
    • ๐Ÿšš (PR#1744) Move: Move memo arbitrary into /arbitrary
    • ๐Ÿšš (PR#1748) Move: Move constant arbitraries into /arbitrary
    • ๐Ÿšš (PR#1763) Move: Move clone arbitraries into /arbitrary
    • ๐Ÿšš (PR#1761) Move: Move stream arbitraries into /arbitrary
    • ๐Ÿšš (PR#1779) Move: Move mixedCase arbitrary into /arbitrary
    • โฑ (PR#1786) Move: Move scheduler arbitrary into /arbitrary
    • ๐Ÿšš (PR#1798) Move: Move char arbitraries into /arbitrary
    • ๐Ÿšš (PR#1801) Move: Move boolean arbitrary into /arbitrary
    • ๐Ÿšš (PR#1802) Move: Move string arbitraries into /arbitrary
    • ๐Ÿšš (PR#1831) Move: Move date arbitrary into /arbitrary
    • ๐Ÿšš (PR#1832) Move: Extract internal mapper into its own file
    • ๐Ÿšš (PR#1834) Move: Move mapToConstant arbitrary into /arbitrary
    • ๐Ÿšš (PR#1835) Move: Move lorem arbitrary into /arbitrary
    • ๐Ÿšš (PR#1839) Move: Move ip arbitraries into /arbitrary
    • ๐Ÿšš (PR#1840) Move: Move dictionary arbitraries into /arbitrary
    • ๐Ÿšš (PR#1887) Move: Move ip arbitraries into /arbitrary
    • ๐Ÿšš (PR#1889) Move: Move typed-arrays arbitraries into /arbitrary
    • ๐Ÿšš (PR#1890) Move: Move record arbitrary into /arbitrary
    • โ™ป๏ธ (PR#1691) Refactor: Migrate tuple to NextArbitrary
    • โ™ป๏ธ (PR#1701) Refactor: Migrate memo to NextArbitrary
    • โ™ป๏ธ (PR#1702) Refactor: Migrate letrec to NextArbitrary
    • โ™ป๏ธ (PR#1704) Refactor: Simplify letrec initial construction
    • โ™ป๏ธ (PR#1705) Refactor: Migrate integer/bigint/double to NextArbitrary
    • โ™ป๏ธ (PR#1706) Refactor: Migrate array/set to NextArbitrary
    • โ™ป๏ธ (PR#1707) Refactor: Migrate frequency to NextArbitrary
    • โ™ป๏ธ (PR#1714) Refactor: Remove unneeded if-branch in shrinker for integer
    • โ™ป๏ธ (PR#1728) Refactor: Remove unneeded if-branch in shrinker for bigint
    • โ™ป๏ธ (PR#1740) Refactor: Migrate missing snippets to our new APIs
    • โ™ป๏ธ (PR#1742) Refactor: Simplify internal implementation of memo
    • โ™ป๏ธ (PR#1746) Refactor: Migrate constant to NextArbitrary
    • โ™ป๏ธ (PR#1747) Refactor: Migrate clone to NextArbitrary
    • โ™ป๏ธ (PR#1757) Refactor: Migrate infiniteStream to NextArbitrary
    • โ™ป๏ธ (PR#1762) Refactor: Migrate scheduler to NextArbitrary
    • โ™ป๏ธ (PR#1764) Refactor: Migrate mixedCase to NextArbitrary
    • โ™ป๏ธ (PR#1891) Refactor: Always use shared-partial record implementation for record
    • โ™ป๏ธ (PR#1918) Refactor: Enforce explicit context-passing for NextArbitrary and related
    • ๐Ÿš€ (PR#1916) Rename: Rename canGenerate into canShrinkWithoutContext before 1st release
    • โœ… (PR#1668) Test: Add non-regression for filter/map/chain
    • โœ… (PR#1669) Test: Add non-regression for context
    • โœ… (PR#1694) Test: Add more non-regression tests on recursive structures
    • โœ… (PR#1695) Test: Rework testFunc for non-regression tests
    • โšก๏ธ (PR#1700) Test: Update snapshots for letrec due to migration of tuple
    • โœ… (PR#1711) Test: Rewrite tests dealing with integer
    • โœ… (PR#1729) Test: Rewrite tests dealing with bigInt
    • โœ… (PR#1735) Test: Rewrite tests dealing with frequency
    • โœ… (PR#1741) Test: Rewrite tests dealing with tuple
    • โœ… (PR#1745) Test: Rewrite tests dealing with letrec
    • โœ… (PR#1751) Test: Rewrite tests dealing with constant
    • โœ… (PR#1775) Test: FIX Assumptions in tests related to ConstantArbitrary
    • โœ… (PR#1781) Test: Rewrite tests dealing with clone
    • โœ… (PR#1782) Test: Rewrite tests dealing with infiniteStream
    • โฑ (PR#1788) Test: Rewrite tests dealing with scheduler
    • โœ… (PR#1881) Test: Adapt inputs for wrongly defined property on date
    • โœ… (PR#1886) Test: Fix wrongly written isCorrect in tests on dictionary
    • โœ… (PR#1923) Test: Integer spec was asking if integer can produce -0
    • โœ… (PR#1922) Test: Reduce duplication of assertions on NextArbitrary

  • v2.14.0 Changes

    ๐Ÿ‘€ Easier recursive strcutures and ability discard already seen runs [Code][Diff]

    ๐Ÿ”‹ Features

    • (PR#1581) Reject invalid weights on fc.frequency
    • (PR#1598) Add withCrossShrink constraint on fc.frequency
    • (PR#1586) Add a way to ignore already covered cases
    • (PR#1601) Add maxDepth constraint on fc.frequency
    • (PR#1602) Stricter checks on args of fc.frequency
    • (PR#1603) Add depthFactor constraint on fc.frequency
    • (PR#1606) Adopt variadic tuples for signatures of tuple
    • (PR#1607) Ability to share depth accross instances
    • (PR#1609) Add recursive constraints on fc.option
    • (PR#1611) Add recursive constraints on fc.oneof
    • ๐Ÿ—„ (PR#1624) Mark fc.genericTuple as deprecated
    • (PR#1629) Introduce a way to mark equal values as skipped

    ๐Ÿ›  Fixes

    • (PR#1493) Bug: add64 is not supposed to produce negative zeros
    • ๐Ÿ— (PR#1514) Doc: Build status should open actions page filtered on main
    • ๐Ÿ— (PR#1515) Doc: Build status should open builds page filtered on main
    • (PR#1521) Tooling: Enable strict mode in tsconfig
    • โœ… (PR#1524) Test: Add CJS/ESM tests using esbuild
    • ๐Ÿ‘€ (PR#1525) CI: Relax check ensuring default seed defined in CI
    • โœ… (PR#1534) Test: Fix coverage flakiness on add64(0, 0)
    • โœ… (PR#1555) Test: Run ESM tests against node 13
    • โ™ป๏ธ (PR#1578) Refactor: Rework initialisation phase of fc.frequency
    • โ™ป๏ธ (PR#1577) Refactor: Rework initialisation phase of fc.oneof
    • โœ… (PR#1597) Test: Rework tests on frequency
    • ๐Ÿ“š (PR#1600) CI: Checkout code before publishing the documentation
    • โ™ป๏ธ (PR#1604) Refactor: Re-use fc.frequency for fc.oneof
    • โ™ป๏ธ (PR#1605) Refactor: Re-use fc.frequency for fc.option
    • โœ… (PR#1608) Test: Better errors for isValidValue in helpers
    • (PR#1610) Doc: Add missing annotations and jsdoc
    • ๐Ÿ“š (PR#1612) Doc: Better documentation for fc.letrec
    • โšก๏ธ (PR#1613) Doc: Update some fc.memo to fc.letrec
    • (PR#1625) Fix: Add missing export for OneOfConstraints

  • v2.13.0 Changes

    ๐Ÿ“œ Built-in arbitrary for sparse arrays [Code][Diff]

    ๐Ÿ”‹ Features

    • ๐Ÿ“œ (PR#1443) Support sparse arrays in stringify
    • ๐Ÿ“œ (PR#1447) Add a new arbitrary for sparse arrays
    • ๐Ÿ“œ (PR#1451) Add support for sparse arrays in fc.object

    ๐Ÿ›  Fixes

    • (PR#1452) Bug: Reduce bias towards typed arrays in fc.object
    • (PR#1429) CI: Action to publish to Netlify on comment
    • ๐Ÿš€ (PR#1430) CI: Rework workflow "Request Deploy Netlify"
    • ๐Ÿ‘ท (PR#1431) CI: Clean old netlify job
    • ๐Ÿš€ (PR#1432) CI: Fix skip check for 'Deploy to Netlify'
    • ๐Ÿ‘ท (PR#1433) CI: Fix API calls for octokit in Netlify job
    • (PR#1434) CI: Post reactions for netlify on issue comment
    • ๐Ÿš€ (PR#1435) CI: Do not add new lines when adding comit hash in deploy message
    • ๐Ÿš€ (PR#1436) CI: Do not add new lines when adding comit hash in deploy message
    • โœ… (PR#1441) CI: Add --strict option for tests on types
    • (PR#1466) CI: Check typings against more versions of TS
    • (PR#1471) CI: Stop sending e2e coverage into codecov
    • ๐Ÿ‘• (PR#1214) Clean: Reduce the number of lint warnings
    • (PR#1440) Doc: Add tip regarding "Value depending on another one"
    • ๐Ÿš€ (PR#1475) Doc: Document when each feature has been released (jsdoc)
    • (PR#1479) Misc: Rename master into main
    • (PR#1490) Misc: Split changelog by major
    • โ™ป๏ธ (PR#1464) Refactor: No special case for sparse arrays without trailing holes and no elements
    • โœ… (PR#1442) Test: Add --strict option for tests on types
    • โœ… (PR#1444) Test: Better coverage for stringify of sparse arrays
    • โœ… (PR#1474) Test: Increase numRuns for bias e2e to limit flakiness
    • (PR#1465) Typing: Regression introduced in typings for record
    • (PR#1478) Typing: Add missing export for double constraints

  • v2.12.2 Changes

    ๐Ÿ›  Fix regression in typings of record [Code][Diff]

    ๐Ÿ›  Fixes

    • (PR#1478) Typing: Add missing export for double constraints
    • (PR#1465) Typing: Regression introduced in typings for record
  • v2.12.1 Changes

    Avoid unsafe eval [Code][Diff]

    ๐Ÿ›  Fixes

    • ๐Ÿ”’ (PR#1408) Bug/Security: Avoid using unsafe-eval in implementation of getGlobal
    • ๐Ÿ“ฆ (PR#1389) Doc: Add badge from packagequality.com
    • ๐Ÿ”’ (PR#1391) Doc: Setup a security policy
    • (PR#1392) Doc: Add a code of conduct
    • ๐Ÿ“ฆ (PR#1390) Doc: Add Snyk badge for package quality
    • (PR#1393) Doc: Add semver stability badge
    • ๐Ÿšš (PR#1394) Doc: Remove dependencies related badges
    • (PR#1395) Doc: Correct misspellings & other errors in English
  • v2.12.0 Changes

    More efficient shrinkers [Code][Diff]

    ๐Ÿ”‹ Features

    • ๐ŸŽ (PR#1354) Split internal shrinkNumeric for better performances
    • (PR#1355) Introduce new helper ArbitraryWithContextualShrink
    • (PR#1358) More efficient shrinker for integer
    • (PR#1372) More efficient shrinker for bigint
    • (PR#1377) More efficient shrinker for array
    • (PR#1382) More efficient shrinker for subarray
    • (PR#1383) More efficient shrinker for mixedCase
    • (PR#1384) More efficient shrinker for double

    ๐Ÿ›  Fixes

    • (PR#1347) Bug: Legacy float/double should never reach the max specified value
    • (PR#1359) Bug: Calling shrinkableFor should never apply contextual shrinker
    • ๐Ÿ”’ (PR#1350) Clean: Re-generate yarn.lock files
    • ๐Ÿ“š (PR#1331) Doc: Deploy temporary documentation and package to Netlify
    • ๐ŸŽ (PR#1352) Doc: Performance impacts of filter
    • (PR#1379) Doc: Only specify a single entryPoint in TypeDoc
    • โ™ป๏ธ (PR#1357) Refactor: Re-implement shrinker for integer based on contextual shrinker
    • โ™ป๏ธ (PR#1373) Refactor: Re-use contextual shrinker of integer in array
    • โ™ป๏ธ (PR#1376) Refactor: Re-use contextual shrinker of integer in commands
    • โ™ป๏ธ (PR#1385) Refactor: Extract Stream.of logic for re-use
    • โ™ป๏ธ (PR#1387) Refactor: Restructure implementations of ArbitraryWithContextualShrink
    • โœ… (PR#1353) Test: Add unit tests for stringify on Regex
    • โœ… (PR#1368) Test: Add non-regression tests on shrinking quality
    • โœ… (PR#1375) Test: Typings of ArbitraryWithContextualShrink
    • โœ… (PR#1380) Test: Typings of constantFrom and chain
    • โœ… (PR#1381) Test: Tests on typings should fail with explicit errors
    • โœ… (PR#1386) Test: Add tests for ArbitraryWithContextualShrink
    • โœ… (PR#1388) Test: Add snapshot tests for new core shrinkers: integer, bigint, arrayInt64

  • v2.11.1 Changes

    Avoid unsafe eval and fix regression in typings of record [Code][Diff]

    ๐Ÿ›  Fixes

    • ๐Ÿ”’ (PR#1408) Bug/Security: Avoid using unsafe-eval in implementation of getGlobal
    • (PR#1478) Typing: Add missing export for double constraints
    • (PR#1465) Typing: Regression introduced in typings for record
  • v2.11.0 Changes

    โž• Add support for Symbol properties and ability to mark keys as required in fc.record [Code][Diff]

    ๐Ÿ”‹ Features

    • โช (PR#1265) Switch from Object.keys to for..in in record [reverted]
    • (PR#1266) Arbitrary records with optional fields
    • โš  (PR#1306) Prefer unique symbols over Symbol.for :warning:
    • ๐Ÿ‘ (PR#1328) Better handling of known symbols with fc.stringify
    • ๐Ÿ‘ (PR#1321) Add support for Symbol keys in record
    • (PR#1327) Properly handle objects with symbols as keys in fc.stringify
    • (PR#1329) Throw if non enumerable keys declared in requiredKeys of record

    ๐Ÿ›  Fixes

    • (PR#1286) CI: Basic setup for codecov
    • (PR#1287) CI: Only take into account files from src/ in coverage
    • ๐Ÿšš (PR#1289) CI: Remove coveralls from the CI
    • ๐Ÿšš (PR#1290) CI: Remove unused flags in coverage
    • ๐Ÿ“ฆ (PR#1296) CI: Comment with links to install the package defined by the PR
    • ๐Ÿ‘ (PR#1304) CI: Better message for automatic comments
    • ๐Ÿ‘€ (PR#1307) CI: Randomly seed runs in CI (by default)
    • (PR#1269) Doc: Fix typo in AdvancedArbitraries.md
    • (PR#1288) Doc: Switch to codecov in README
    • (PR#1291) Doc: Prefer spaces over tabs in the README (easier to fit in screen)
    • โœ… (PR#1268) Test: Switch from (deprecated) tsd to tsc for type checking
    • โœ… (PR#1280) Test: Reduce flakiness of array e2e