refactor: migrate test runner from vitest to bun:test #602

Merged
xiaomo merged 1 commits from refactor/vitest-to-bun-test into main 2026-06-02 11:02:12 +00:00
Owner

What

Migrate all 8 packages from vitest to bun:test.

Why

vitest forks Node.js workers but @ocas/core uses bun:sqlite (Bun-only). 21 test suites failed on pre-push.

Changes

  • 47 test files: from vitest to bun:test
  • 3 files: vi.spyOn to spyOn, vi.restoreAllMocks to mock.restore
  • 8 vitest.config.ts deleted
  • vitest removed from devDependencies
  • New preload.ts for process.exit mock
  • Import ordering fixed by biome

Verification

bun run check + bun run test + pre-push all pass.

Closes #601

## What Migrate all 8 packages from vitest to bun:test. ## Why vitest forks Node.js workers but @ocas/core uses bun:sqlite (Bun-only). 21 test suites failed on pre-push. ## Changes - 47 test files: from vitest to bun:test - 3 files: vi.spyOn to spyOn, vi.restoreAllMocks to mock.restore - 8 vitest.config.ts deleted - vitest removed from devDependencies - New preload.ts for process.exit mock - Import ordering fixed by biome ## Verification bun run check + bun run test + pre-push all pass. Closes #601
xingyue added 2 commits 2026-06-02 10:56:25 +00:00
fix(e2e): cross-platform Docker isolation for e2e-walkthrough
CI / check (pull_request) Failing after 1m35s
008701ef46
Problems on macOS:
- `-v $HOME:$HOME` let container's bun install overwrite host bun
  binary (Linux ARM64 replaced macOS ARM64)
- Container couldn't reach host LLM endpoints (localhost != host)
- Hardcoded `~/repos/workflow` path didn't exist on all machines

Fixes:
- Mount source read-only (`-v $(pwd):/workspace:ro`) + copy inside
- Use container-local HOME (/root) to isolate bun/npm installs
- Add `--add-host=host.docker.internal:host-gateway` for Linux compat
- `docker cp` host config + sed localhost→host.docker.internal
- Use `debate.yaml` instead of `solve-issue.yaml` (no $SUSPEND dep)
- Fix cancel test: `--status cancelled` not `--status completed`

Verified: full 6-step walkthrough passes on macOS, host bun intact.
refactor: migrate test runner from vitest to bun:test
CI / check (pull_request) Failing after 8m0s
e65e2aec72
- Replace vitest with bun:test across all 8 packages (47 test files)
- vi.spyOn → spyOn, vi.restoreAllMocks() → mock.restore() (3 files)
- toHaveBeenCalledOnce → toHaveBeenCalledTimes(1) (bun:test compat)
- Delete all vitest.config.ts files
- Remove vitest from devDependencies
- Add preload.ts for process.exit mock (cli-workflow)
- Fix import ordering (biome check --write)

All tests pass. Closes #601
xiaomo approved these changes 2026-06-02 11:02:00 +00:00
xiaomo left a comment
Owner

LGTM

根因正确:vitest fork Node.js workers 但 @ocas/core 用 bun:sqlite,天然不兼容。

迁移干净:vi.spyOn → spyOn,vi.restoreAllMocks → mock.restore(),preload.ts mock process.exit,8 个 vitest.config.ts 清除。

注意合并顺序:#600 先。

LGTM ✅ 根因正确:vitest fork Node.js workers 但 @ocas/core 用 bun:sqlite,天然不兼容。 迁移干净:vi.spyOn → spyOn,vi.restoreAllMocks → mock.restore(),preload.ts mock process.exit,8 个 vitest.config.ts 清除。 注意合并顺序:#600 先。
xiaomo merged commit 4786a247ac into main 2026-06-02 11:02:12 +00:00
xiaomo deleted branch refactor/vitest-to-bun-test 2026-06-02 11:02:13 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#602