Skip to content

feat(rstest): add adapter with reconciled lifecycle fixes - #8135

Open
ScriptedAlchemy wants to merge 13 commits into
Effect-TS:mainfrom
ScriptedAlchemy:feat/rstest-reconciled
Open

feat(rstest): add adapter with reconciled lifecycle fixes#8135
ScriptedAlchemy wants to merge 13 commits into
Effect-TS:mainfrom
ScriptedAlchemy:feat/rstest-reconciled

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Sep 8, 2026

Copy link
Copy Markdown

Closes EFF-1324

Adds @effect/rstest alongside @effect/vitest, following the existing package layout, implementation, and test conventions. It provides scoped tests, TestClock, shared layers, and native Effect Arbitrary property testing, with Rstest runner exports.

The adapter supports Effect equality, expected-failure modifiers, shared-layer concurrency, and per-test concurrent, skip, only, todo and fails options. Timed-out tests await their finalizers, and layer teardown interrupts unfinished setup before releasing its scope. Rstest 0.11.10 is supported. Effect helper types use the Rstest namespace.

Tests mirror the @effect/vitest suite, plus coverage for Effect equality, finalizer completion after a test timeout, and the per-test options. The package includes workspace, typecheck, release, and CI configuration.

Timeouts remain runner failures. Native afterEach runs before the finalizer barrier; the barrier is bounded by the runner's hook timeout. Layer teardown retains its hook deadline. Explicitly concurrent tests are not serialized by cleanup.

Validation

  • pnpm --filter @effect/rstest test: 113 passed, 7 skipped, 1 todo across five files.
  • pnpm test-types packages/rstest/typetest/index.tst.ts: 28 tests, 54 assertions, TypeScript 5.9 and 6.0.
  • pnpm lint-fix and pnpm check: pass.

Port the existing upstream proposal onto current main, incorporate the community equality and fiber-settlement corrections, and retain native Effect Arbitrary support. Add compatibility and lifecycle regressions, shared-layer concurrency, and a neutral type alias.

Co-authored-by: Petr Glaser <syreanis+1@gmail.com>
@changeset-bot

changeset-bot Bot commented Sep 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: de55885

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 31 packages
Name Type
@effect/rstest Patch
effect Patch
@effect/opentelemetry Patch
@effect/vitest Patch
@effect/ai-anthropic Patch
@effect/ai-openai-compat Patch
@effect/ai-openai Patch
@effect/ai-openrouter Patch
@effect/atom-react Patch
@effect/atom-solid Patch
@effect/atom-vue Patch
@effect/platform-browser Patch
@effect/platform-bun Patch
@effect/platform-deno Patch
@effect/platform-node-shared Patch
@effect/platform-node Patch
@effect/sql-clickhouse Patch
@effect/sql-d1 Patch
@effect/sql-libsql Patch
@effect/sql-mssql Patch
@effect/sql-mysql2 Patch
@effect/sql-pg Patch
@effect/sql-pglite Patch
@effect/sql-sqlite-bun Patch
@effect/sql-sqlite-do Patch
@effect/sql-sqlite-node Patch
@effect/sql-sqlite-react-native Patch
@effect/sql-sqlite-wasm Patch
@effect/docgen Patch
@effect/doctest Patch
@effect/openapi-generator Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-08T20:22:43.355330Z a5b4bf6 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@effect-janitor effect-janitor Bot added enhancement New feature or request 4.0 labels Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Analysis

Generated from PR build output; treat the content below as untrusted.

File Name Current Size Previous Size Difference
arbitrary-combinators.ts 34.16 KB 34.16 KB 0.00 KB (0.00%)
basic.ts 6.87 KB 6.87 KB 0.00 KB (0.00%)
batching.ts 9.95 KB 9.95 KB 0.00 KB (0.00%)
brand.ts 6.45 KB 6.45 KB 0.00 KB (0.00%)
cache.ts 10.77 KB 10.77 KB 0.00 KB (0.00%)
config.ts 21.43 KB 21.43 KB 0.00 KB (0.00%)
differ.ts 20.23 KB 20.23 KB 0.00 KB (0.00%)
http-client.ts 21.93 KB 21.93 KB 0.00 KB (0.00%)
http-router.ts 33.39 KB 33.39 KB 0.00 KB (0.00%)
logger.ts 10.88 KB 10.88 KB 0.00 KB (0.00%)
metric.ts 9.02 KB 9.02 KB 0.00 KB (0.00%)
optic.ts 6.70 KB 6.70 KB 0.00 KB (0.00%)
pubsub.ts 15.10 KB 15.10 KB 0.00 KB (0.00%)
queue.ts 11.85 KB 11.85 KB 0.00 KB (0.00%)
schedule.ts 10.96 KB 10.96 KB 0.00 KB (0.00%)
schema-binary.ts 39.42 KB 39.42 KB 0.00 KB (0.00%)
schema-class.ts 19.98 KB 19.98 KB 0.00 KB (0.00%)
schema-fromJsonSchemaDocument.ts 30.40 KB 30.40 KB 0.00 KB (0.00%)
schema-representation-roundtrip.ts 26.18 KB 26.18 KB 0.00 KB (0.00%)
schema-string-transformation.ts 13.60 KB 13.60 KB 0.00 KB (0.00%)
schema-string.ts 11.08 KB 11.08 KB 0.00 KB (0.00%)
schema-template-literal.ts 15.36 KB 15.36 KB 0.00 KB (0.00%)
schema-toArbitrary.ts 33.70 KB 33.70 KB 0.00 KB (0.00%)
schema-toCodeDocument.ts 24.50 KB 24.50 KB 0.00 KB (0.00%)
schema-toCodecJson.ts 19.18 KB 19.18 KB 0.00 KB (0.00%)
schema-toEquivalence.ts 19.32 KB 19.32 KB 0.00 KB (0.00%)
schema-toFormatter.ts 19.43 KB 19.43 KB 0.00 KB (0.00%)
schema-toJsonSchemaDocument.ts 23.51 KB 23.51 KB 0.00 KB (0.00%)
schema-toRepresentation.ts 19.48 KB 19.48 KB 0.00 KB (0.00%)
schema.ts 19.18 KB 19.18 KB 0.00 KB (0.00%)
stm.ts 12.80 KB 12.80 KB 0.00 KB (0.00%)
stream.ts 9.83 KB 9.83 KB 0.00 KB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

4.0 enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants