Skip to content
Effect Days 2026 Get your ticket

@effect/vitest

0.30.0

Patch Changes

  • Updated dependencies [fffdee0]:
    • effect@3.22.0

0.29.0

Patch Changes

0.28.0

Patch Changes

0.27.0

Patch Changes

0.26.0

Patch Changes

0.25.1

Patch Changes

  • #5386 fa0fa16 Thanks @dmaretskyi! - Correct error message when the test was interrupted

0.25.0

Patch Changes

0.24.1

Patch Changes

0.24.0

Minor Changes

  • #5205 90ec865 Thanks @schickling! - Modernize Vitest integration with AbortSignal support
    • Bump Vitest dependency from ^3.0.0 to ^3.2.0 to support latest features
    • Add support for Vitest 3.2’s AbortSignal API for proper test cancellation
    • Effect-based tests now respect AbortSignal for clean cancellation when tests timeout, fail with —bail flag, or are interrupted via Ctrl+C
    • Integrate AbortSignal at the Effect runtime level using Effect.runPromise(effect, { signal }) for native cancellation support
    • Add comprehensive test cases demonstrating AbortSignal integration and type safety

0.23.13

Patch Changes

0.23.12

Patch Changes

  • Updated dependencies [905da99]:
    • effect@3.16.12

0.23.11

Patch Changes

0.23.10

Patch Changes

  • Updated dependencies [faad30e]:
    • effect@3.16.10

0.23.9

Patch Changes

0.23.8

Patch Changes

0.23.7

Patch Changes

  • Updated dependencies [1bb0d8a]:
    • effect@3.16.7

0.23.6

Patch Changes

0.23.5

Patch Changes

  • Updated dependencies [bf418ef]:
    • effect@3.16.5

0.23.4

Patch Changes

0.23.3

Patch Changes

0.23.2

Patch Changes

  • Updated dependencies [0ddf148]:
    • effect@3.16.2

0.23.1

Patch Changes

0.23.0

Patch Changes

0.22.5

Patch Changes

  • Updated dependencies [cc5bb2b]:
    • effect@3.15.5

0.22.4

Patch Changes

0.22.3

Patch Changes

  • Updated dependencies [4577f54]:
    • effect@3.15.3

0.22.2

Patch Changes

  • Updated dependencies [b8722b8]:
    • effect@3.15.2

0.22.1

Patch Changes

0.22.0

Patch Changes

0.21.5

Patch Changes

  • Updated dependencies [24a9ebb]:
    • effect@3.14.22

0.21.4

Patch Changes

  • Updated dependencies [2f3b7d4]:
    • effect@3.14.21

0.21.3

Patch Changes

  • Updated dependencies [17e2f30]:
    • effect@3.14.20

0.21.2

Patch Changes

0.21.1

Patch Changes

  • Updated dependencies [b1164d4]:
    • effect@3.14.18

0.21.0

Minor Changes

Patch Changes

0.20.17

Patch Changes

  • Updated dependencies [ee14444]:
    • effect@3.14.16

0.20.16

Patch Changes

0.20.15

Patch Changes

  • #4791 a7ef0e6 Thanks @tim-smart! - add excludeTestServices option to it.layer

0.20.14

Patch Changes

  • Updated dependencies [6ed8d15]:
    • effect@3.14.14

0.20.13

Patch Changes

0.20.12

Patch Changes

0.20.11

Patch Changes

  • Updated dependencies [e536127]:
    • effect@3.14.11

0.20.10

Patch Changes

  • Updated dependencies [bc7efa3]:
    • effect@3.14.10

0.20.9

Patch Changes

  • Updated dependencies [d78249f]:
    • effect@3.14.9

0.20.8

Patch Changes

  • Updated dependencies [b3a2d32]:
    • effect@3.14.8

0.20.7

Patch Changes

  • Updated dependencies [b542a4b]:
    • effect@3.14.7

0.20.6

Patch Changes

0.20.5

Patch Changes

0.20.4

Patch Changes

  • Updated dependencies [e4ba2c6]:
    • effect@3.14.4

0.20.3

Patch Changes

0.20.2

Patch Changes

0.20.1

Patch Changes

  • Updated dependencies [4a274fe]:
    • effect@3.14.1

0.20.0

Patch Changes

0.19.10

Patch Changes

0.19.9

Patch Changes

0.19.8

Patch Changes

  • Updated dependencies [527c964]:
    • effect@3.13.10

0.19.7

Patch Changes

  • Updated dependencies [2976e52]:
    • effect@3.13.9

0.19.6

Patch Changes

0.19.5

Patch Changes

0.19.4

Patch Changes

  • Updated dependencies [3154ce4]:
    • effect@3.13.6

0.19.3

Patch Changes

0.19.2

Patch Changes

  • Updated dependencies [17d9e89]:
    • effect@3.13.4

0.19.1

Patch Changes

0.19.0

Minor Changes

  • #4376 aa39549 Thanks @FedericoBiccheddu! - updated vitest to 3.0

Patch Changes

  • Updated dependencies [31be72a]:
    • effect@3.13.2

0.18.1

Patch Changes

  • Updated dependencies [b56a211]:
    • effect@3.13.1

0.18.0

Patch Changes

0.17.8

Patch Changes

0.17.7

Patch Changes

0.17.6

Patch Changes

0.17.5

Patch Changes

  • Updated dependencies [1b4a4e9]:
    • effect@3.12.9

0.17.4

Patch Changes

0.17.3

Patch Changes

  • Updated dependencies [8dff1d1]:
    • effect@3.12.7

0.17.2

Patch Changes

0.17.1

Patch Changes

0.17.0

Minor Changes

  • #4254 bcc600b Thanks @tim-smart! - prevent use of .live with .layer api

Patch Changes

0.16.3

Patch Changes

0.16.2

Patch Changes

0.16.1

Patch Changes

0.16.0

Patch Changes

0.15.0

Minor Changes

  • #4173 62f12d8 Thanks @thewilkybarkid! - Support native arbitraries in @effect/vitest

Patch Changes

0.14.9

Patch Changes

0.14.8

Patch Changes

  • Updated dependencies [1a6b52d]:
    • effect@3.11.8

0.14.7

Patch Changes

0.14.6

Patch Changes

0.14.5

Patch Changes

0.14.4

Patch Changes

0.14.3

Patch Changes

0.14.2

Patch Changes

  • Updated dependencies [01cee56]:
    • effect@3.11.2

0.14.1

Patch Changes

0.14.0

Patch Changes

0.13.20

Patch Changes

0.13.19

Patch Changes

0.13.18

Patch Changes

  • Updated dependencies [af409cf]:
    • effect@3.10.18

0.13.17

Patch Changes

  • Updated dependencies [42c4ce6]:
    • effect@3.10.17

0.13.16

Patch Changes

0.13.15

Patch Changes

0.13.14

Patch Changes

0.13.13

Patch Changes

  • Updated dependencies [995bbdf]:
    • effect@3.10.13

0.13.12

Patch Changes

  • Updated dependencies [dd14efe]:
    • effect@3.10.12

0.13.11

Patch Changes

  • Updated dependencies [5eef499]:
    • effect@3.10.11

0.13.10

Patch Changes

0.13.9

Patch Changes

0.13.8

Patch Changes

0.13.7

Patch Changes

0.13.6

Patch Changes

  • Updated dependencies [ce1c21f]:
    • effect@3.10.6

0.13.5

Patch Changes

0.13.4

Patch Changes

  • Updated dependencies [2367708]:
    • effect@3.10.4

0.13.3

Patch Changes

  • Updated dependencies [b9423d8]:
    • effect@3.10.3

0.13.2

Patch Changes

0.13.1

Patch Changes

  • Updated dependencies [9604d6b]:
    • effect@3.10.1

0.13.0

Patch Changes

  • #3764 685a460 Thanks @jessekelly881! - Adds property testing to @effect/vitest

    import { Schema } from "effect"
    import { it } from "@effect/vitest"
    const realNumber = Schema.Finite.pipe(Schema.nonNaN())
    it.prop("symmetry", [realNumber, realNumber], ([a, b]) => a + b === b + a)
    it.effect.prop("symmetry", [realNumber, realNumber], ([a, b]) =>
    Effect.gen(function* () {
    yield* Effect.void
    return a + b === b + a
    })
    )
    it.scoped.prop(
    "should detect the substring",
    { a: Schema.String, b: Schema.String, c: Schema.String },
    ({ a, b, c }) =>
    Effect.gen(function* () {
    yield* Effect.scope
    return (a + b + c).includes(b)
    })
    )
  • Updated dependencies [4a01828, 4a01828, c79c4c1, 38d30f0, 5821ce3]:

    • effect@3.10.0

0.12.1

Patch Changes

  • Updated dependencies [61a99b2]:
    • effect@3.9.2

0.12.0

Minor Changes

  • #3744 9fef880 Thanks @tim-smart! - expose hook timeout option to vitest layer api

0.11.1

Patch Changes

  • Updated dependencies [3b2ad1d]:
    • effect@3.9.1

0.11.0

Patch Changes

0.10.6

Patch Changes

0.10.5

Patch Changes

  • #3689 4d91f41 Thanks @tim-smart! - add layer api to @effect/vitest

    This allows you to share a Layer between multiple tests, optionally wrapping the tests in a describe block.

    import { expect, layer } from "@effect/vitest"
    import { Context, Effect, Layer } from "effect"
    class Foo extends Context.Tag("Foo")<Foo, "foo">() {
    static Live = Layer.succeed(Foo, "foo")
    }
    class Bar extends Context.Tag("Bar")<Bar, "bar">() {
    static Live = Layer.effect(
    Bar,
    Effect.map(Foo, () => "bar" as const)
    )
    }
    layer(Foo.Live)("layer", (it) => {
    it.effect("adds context", () =>
    Effect.gen(function* () {
    const foo = yield* Foo
    expect(foo).toEqual("foo")
    })
    )
    it.layer(Bar.Live)("nested", (it) => {
    it.effect("adds context", () =>
    Effect.gen(function* () {
    const foo = yield* Foo
    const bar = yield* Bar
    expect(foo).toEqual("foo")
    expect(bar).toEqual("bar")
    })
    )
    })
    })

0.10.4

Patch Changes

  • Updated dependencies [4509656]:
    • effect@3.8.4

0.10.3

Patch Changes

  • Updated dependencies [bb5ec6b]:
    • effect@3.8.3

0.10.2

Patch Changes

  • Updated dependencies [f0d8ef1]:
    • effect@3.8.2

0.10.1

Patch Changes

0.10.0

Patch Changes

0.9.3

Patch Changes

  • Updated dependencies [35a0f81]:
    • effect@3.7.3

0.9.2

Patch Changes

0.9.1

Patch Changes

0.9.0

Patch Changes

0.8.9

Patch Changes

  • Updated dependencies [e809286]:
    • effect@3.6.8

0.8.8

Patch Changes

  • Updated dependencies [50ec889]:
    • effect@3.6.7

0.8.7

Patch Changes

0.8.6

Patch Changes

0.8.5

Patch Changes

0.8.4

Patch Changes

  • Updated dependencies [04adcac]:
    • effect@3.6.3

0.8.3

Patch Changes

  • Updated dependencies [fd4b2f6]:
    • effect@3.6.2

0.8.2

Patch Changes

  • #3416 8cc1517 Thanks @sukovanej! - Interrupt an effect when a test finishes. This ensures allocated resources will be correctly released even if the test times out.

    import { it } from "@effect/vitest"
    import { Console, Effect, Layer } from "effect"
    class Database extends Effect.Tag("Database")<Database, {}>() {
    static readonly test = Layer.scoped(
    Database,
    Effect.acquireRelease(
    Effect.as(Console.log("database setup"), Database.of({})),
    () => Console.log("database teardown")
    )
    )
    }
    it.live(
    "testing with closable resources",
    () =>
    Effect.gen(function* () {
    const database = yield* Database
    // performing some time consuming operations
    yield* Effect.sleep("500 millis")
    }).pipe(Effect.provide(Database.test)),
    { timeout: 100 }
    )

0.8.1

Patch Changes

0.8.0

Patch Changes

0.7.0

Minor Changes

Patch Changes

0.6.12

Patch Changes

0.6.11

Patch Changes

  • #3310 99bddcf Thanks @fubhy! - Added additional pure annotations to improve tree-shakeability

  • Updated dependencies [3afcc93, 99bddcf]:

    • effect@3.5.7

0.6.10

Patch Changes

0.6.9

Patch Changes

  • Updated dependencies [a9d7800]:
    • effect@3.5.5

0.6.8

Patch Changes

0.6.7

Patch Changes

0.6.6

Patch Changes

0.6.5

Patch Changes

  • Updated dependencies [55fdd76]:
    • effect@3.5.1

0.6.4

Patch Changes

0.6.3

Patch Changes

0.6.2

Patch Changes

0.6.1

Patch Changes

  • Updated dependencies [a5737d6]:
    • effect@3.4.7

0.6.0

Minor Changes

  • #3122 489d20a Thanks @sukovanej! - Refactor @effect/vitest package.

    • Clear separation of the public API and internals.
    • Fix type of scoped, live, scopedLive and effect objects. Make sure skip and only are available.
    • Add each method to scoped, live, scopedLive and effect objects.

    Example usage

    import { expect, it } from "@effect/vitest"
    import { Effect } from "effect"
    it.scoped.skip("test skipped", () =>
    Effect.acquireRelease(Effect.die("skipped anyway"), () => Effect.void)
    )
    it.effect.each([1, 2, 3])("effect each %s", (n) =>
    Effect.sync(() => expect(n).toEqual(n))
    )

Patch Changes

0.5.21

Patch Changes

  • Updated dependencies [a047af9]:
    • effect@3.4.5

0.5.20

Patch Changes

0.5.19

Patch Changes

0.5.18

Patch Changes

  • Updated dependencies [3da1497]:
    • effect@3.4.2

0.5.17

Patch Changes

  • Updated dependencies [66a1910]:
    • effect@3.4.1

0.5.16

Patch Changes

0.5.15

Patch Changes

  • Updated dependencies [6c89408]:
    • effect@3.3.5

0.5.14

Patch Changes

  • Updated dependencies [a67b8fe]:
    • effect@3.3.4

0.5.13

Patch Changes

0.5.12

Patch Changes

0.5.11

Patch Changes

0.5.10

Patch Changes

0.5.9

Patch Changes

0.5.8

Patch Changes

  • Updated dependencies [fb91f17]:
    • effect@3.2.8

0.5.7

Patch Changes

  • Updated dependencies [6801fca]:
    • effect@3.2.7

0.5.6

Patch Changes

  • #2869 7348505 Thanks @gcanti! - Update timeout parameter type in flakyTest function to accept DurationInput

  • Updated dependencies [cc8ac50]:

    • effect@3.2.6

0.5.5

Patch Changes

0.5.4

Patch Changes

0.5.3

Patch Changes

  • Updated dependencies [45578e8]:
    • effect@3.2.3

0.5.2

Patch Changes

0.5.1

Patch Changes

  • Updated dependencies [c1e991d]:
    • effect@3.2.1

0.5.0

Minor Changes

Patch Changes

0.4.5

Patch Changes

0.4.4

Patch Changes

  • Updated dependencies [6ac4847]:
    • effect@3.1.5

0.4.3

Patch Changes

0.4.2

Patch Changes

  • Updated dependencies [1f6dc96]:
    • effect@3.1.3

0.4.1

Patch Changes

  • Updated dependencies [2e1cdf6]:
    • effect@3.1.2

0.4.0

Minor Changes

Patch Changes

  • Updated dependencies [e5e56d1]:
    • effect@3.1.1

0.3.9

Patch Changes

0.3.8

Patch Changes

0.3.7

Patch Changes

  • Updated dependencies [18de56b]:
    • effect@3.0.7

0.3.6

Patch Changes

0.3.5

Patch Changes

0.3.4

Patch Changes

  • Updated dependencies [9a24667]:
    • effect@3.0.4

0.3.3

Patch Changes

  • Updated dependencies [a7b4b84]:
    • effect@3.0.3

0.3.2

Patch Changes

0.3.1

Patch Changes

0.3.0

Minor Changes

Patch Changes

0.2.7

Patch Changes

0.2.6

Patch Changes

  • Updated dependencies [dadc690]:
    • effect@2.4.18

0.2.5

Patch Changes

0.2.4

Patch Changes

  • Updated dependencies [5170ce7]:
    • effect@2.4.16

0.2.3

Patch Changes

0.2.2

Patch Changes

  • Updated dependencies [6180c0c]:
    • effect@2.4.14

0.2.1

Patch Changes

0.2.0

Minor Changes

  • #2394 b6ee13b Thanks @mikearnaldi! - Fix helper signatures removing support for passing effects as discriminating between effects and functions is not safe

    Re-export vitest with patched “it”

Patch Changes

0.1.1

Patch Changes

0.1.0

Minor Changes

Patch Changes