Skip to content

feat!: port property tests to effect/unstable/arbitrary - #7

Open
BleedingDev wants to merge 1 commit into
Nsttt:mainfrom
BleedingDev:feat/effect-rc113-arbitrary
Open

BleedingDev wants to merge 1 commit into
Nsttt:mainfrom
BleedingDev:feat/effect-rc113-arbitrary

Conversation

@BleedingDev

@BleedingDev BleedingDev commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Effect migration | Existing port

Why the change

Effect removed effect/testing/FastCheck, so the property-test helpers must use effect/unstable/arbitrary to work with current Effect releases.

Special things to note

  • This breaks the fastCheck option in favor of arbitrary and raises the Effect peer floor to 4.0.0-rc.113.
  • Exact-head CI passes typechecking, 105 runtime tests with 6 skips, ESM/declaration builds, and 36 type tests with 64 assertions on TypeScript 5.9.3 and 6.0.3.
  • Release classification remains upstream's decision; the current release-please configuration proposes 1.0.0 for this breaking change.

Change outline

 property test
-  Schema.toArbitrary(input)(FC)
-  FC.tuple / FC.record / FC.assert
+  Arbitrary.schema(input)
+  Arbitrary.all / Arbitrary.checkEffect
+  formatCheckFailure for failed properties

 options
-  fastCheck: { numRuns: 5, seed: 1001 }
+  arbitrary: { runs: 5, seed: 1001 }

Effect 4.0.0-rc.113 removed effect/testing/FastCheck, so effect-rstest
0.1.x fails to import on current Effect releases. Build property inputs
with Arbitrary.schema/Arbitrary.all and run them through
Arbitrary.checkEffect, which keeps shrinking and lets the test timeout
interrupt generation and shrinking.

BREAKING CHANGE: requires effect >=4.0.0-rc.113. Property inputs are
Schema or Arbitrary values from effect/unstable/arbitrary, and the
`fastCheck` option is replaced by `arbitrary` (Arbitrary.CheckOptions).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant