Skip to content

Add @effect/bun-test package for native Bun test runner support #5964

@mikecfisher

Description

@mikecfisher

What is the problem this feature would solve?

I'm migrating an app to Effect and want to use @effect/vitest for testing Effect code, but Bun's test runner is significantly faster than Vitest in my experience. Issue #3406 was closed waiting on Bun to fully support Vitest, but that's been stalled for a while.

Looking at the @effect/vitest source, the Vitest dependency is pretty thin it's mostly just wrapping it() and providing the TestContext layer. The actual Effect testing machinery (TestClock, etc.) doesn't depend on Vitest at all.

What is the feature you are proposing to solve the problem?

A new @effect/bun-test package that provides the same API as @effect/vitest (it.effect, it.scoped, it.live, etc.) but uses Bun's native bun:test instead of Vitest.

I'd be happy to implement this, it looks like it would mostly be adapting packages/vitest to use Bun's test primitives. The core Effect test infrastructure stays the same.

What alternatives have you considered?

Waiting for Bun to fully support Vitest (oven-sh/bun#4145) - still blocked
Writing my own wrapper locally, would rather contribute upstream so everyone benefits
Using Vitest anyway, works but slower, and I'd rather use Bun's native runner

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions