feat!: port property tests to effect/unstable/arbitrary - #7
Open
BleedingDev wants to merge 1 commit into
Open
BleedingDev wants to merge 1 commit into
BleedingDev wants to merge 1 commit into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Effect-TS/effect#7254 | ScriptedAlchemy/effect-rstest#5
Why the change
Effect
4.0.0-rc.113removedeffect/testing/FastCheck, soeffect-rstest@0.1.5fails to import on current Effect, so this PR moves the property-test helpers toeffect/unstable/arbitrary, as upstream@effect/vitestdid.Special things to note
feat!): thefastCheckoption is nowarbitrary(Arbitrary.CheckOptions), and theeffectpeer range is now>=4.0.0-rc.113 <5.0.0.1.0.0. To ship0.2.0instead, add"bump-minor-pre-major": trueor aRelease-As: 0.2.0footer when merging.Change outline
Files changed:
package.json ~ effect peer >=4.0.0-rc.113, dev pin 4.0.0-rc.117 pnpm-lock.yaml - fast-check removed src/ index.ts ~ option types: fastCheck -> arbitrary internal/internal.ts ~ FC.* -> Arbitrary.* test/ + typetest/ ~ updated to the new API, plus a test for a property that returns false README.md ~ migration notesHow a property test runs now:
it.prop(name, inputs, property, options) inputs (Schema | Arbitrary, as a tuple or a record) - Schema.toArbitrary(input)(FC) -> FC.tuple / FC.record + Arbitrary.schema(input) -> Arbitrary.all(...) - FC.assert(FC.asyncProperty(...), options.fastCheck) + runTest(ctx)(Arbitrary.checkEffect(arbitrary, property, options.arbitrary)) + failure -> Effect.die(new Error(Arbitrary.formatCheckFailure(result)))Failing properties still shrink. The test timeout now also interrupts generation and shrinking.
What changes for users:
Test plan
pnpm check,pnpm test(105 passed),pnpm build,pnpm test:types(TS 5.9 and 6.0)🤖 Generated with Claude Code