1.4 KiB
1.4 KiB
description
| description |
|---|
| Isolation and credential tests need root and use test.skipIf(!IS_ROOT); locally 5 skip, CI runs as root so all 66 run; verify isolation changes in node:24-bookworm as root |
Some tests exercise real UID isolation, process cleanup, and prepare.ts
credential cleanup. They need root and are written as
test.skipIf(!IS_ROOT)(...) (IS_ROOT from #testing), so they show
as skipped instead of silently passing.
- As a normal user
vp testpasses 61 and skips 5. In CI (self-hosted runner, root) all 66 run. - When changing
isolation.ts,runtime.ts,credentials.ts,prepare.ts, orchild.ts, run the suite as root innode:24-bookworm(e.g. a container with the repo mounted) before pushing; a green non-root run proves nothing about those paths. - The migration also ran an end-to-end smoke as root with fake
codex/claude/npxbinaries and a fake Gitea throughprotect-source.sh->prepare.ts->run.ts->post.ts; repeat that for changes to the phase flow (bot-agents-runtime-no-build). src/testing/index.tsholds the shared test helpers (user IDs, temp dirs,runCommand) behind the#testingalias. Every test imports it as#testing. It imports no source module, sotests/(which may not use../) never reaches internals. Tests follow tests-layout-vitest (unit tests insrc/*.test.ts, repo-level ones intests/).