Bun test
Use when creating, modifying, debugging, or running Bun tests with bun:test, including package-local test commands, async tests, mocks, spies, snapshots, and Effect.runPromise test boundaries.From its SKILL.md
npx -y skills add theseus-run/theseus --skill bun-testAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `bun run test` and 2 more.
SKILL.md
2.0 KB, 423 tokens by cl100k_base, as published. Nobody here has run it
Bun Test
Use this skill for tests run by bun test.
Repo Facts
- Root test command:
bun run test->bun test. packages/theseus-toolshasbun test src/.packages/jsx-mdandpackages/jsx-md-beautiful-mermaiduse package-localbun test.- Tests live beside source or under
src/__tests__/.
Imports
import { describe, expect, test, beforeEach, afterEach, mock, spyOn } from "bun:test";
Use only the APIs needed by the test. Keep setup close to the tests unless it is reused across files.
Test Shape
- Test behavior through public exports where practical.
- Use narrow tests for boundary behavior: schema failures, typed failures, serialization, stream completion, and runtime lifecycle.
- For Effect code, run effects at the test boundary with
Effect.runPromise. - Assert typed failures by
_tagand fields, not by brittle stringified output. - For streams, assert both emitted values and completion behavior.
- For background fibers, assert interruption, shutdown, or result handoff.
Mocks And Spies
- Use
mockfor small injected functions. - Use
spyOnwhen observing object methods. - Restore mocks in
afterEachwhen they can leak state. - Prefer dependency injection or test layers over module mocking for Effect services.
Commands
- Whole repo:
bun run test. - Specific file:
bun test path/to/file.test.ts. - Package scope: run the package script if present.
- Name filter:
bun test -t "pattern". - Watch mode is for local iteration, not final verification.
Anti-Patterns
- Do not leave
test.onlyor focus filters in committed tests. - Do not use sleeps to paper over async lifecycle bugs.
- Do not assert implementation details when public behavior is available.
- Do not update snapshots unless the output change is intentional and reviewed.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.