| name | init-bun-test |
| description | Set up bun test in a project (with Effect support if applicable) |
Initialize Bun Test
Set up bun test for this project.
Steps
-
Detect if Effect project:
- Check package.json for
effect dependency
-
Create bunfig.toml:
Standard project:
[test]
root = "./src"
testMatch = ["**/*.test.ts"]
Effect project:
[test]
root = "./src"
testMatch = ["**/*.test.ts"]
-
Install test dependencies:
Standard project:
bun add -D @types/bun
Effect project:
bun add -D @types/bun @codeforbreakfast/bun-test-effect
-
Add scripts to package.json:
"test": "bun test",
"test:watch": "bun test --watch"
-
Create example test file (if no tests exist):
Standard (src/example.test.ts):
import { describe, expect, it } from 'bun:test'
describe('example', () => {
it('works', () => {
expect(1 + 1).toBe(2)
})
})
Effect (src/example.test.ts):
import { describe, expect, it } from '@codeforbreakfast/bun-test-effect'
import { Effect } from 'effect'
describe('example', () => {
it('works', () => {
expect(1 + 1).toBe(2)
})
it.effect('works with Effect', () =>
Effect.gen(function* () {
const result = yield* Effect.succeed(42)
expect(result).toBe(42)
})
)
})
-
Run tests to verify setup:
bun test
Ask before creating example test file if tests already exist.