docs: update all documentation for agor rebrand and dual-repo structure
This commit is contained in:
parent
5fadd1c022
commit
421c38cd8c
21 changed files with 225 additions and 207 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# E2E Testing Facility
|
||||
|
||||
BTerminal's end-to-end testing uses **WebDriverIO + tauri-driver** to drive the real Tauri application through WebKit2GTK's inspector protocol. The facility has three pillars:
|
||||
Agents Orchestrator's end-to-end testing uses **WebDriverIO + tauri-driver** to drive the real Tauri application through WebKit2GTK's inspector protocol. The facility has three pillars:
|
||||
|
||||
1. **Test Fixtures** — isolated fake environments with dummy projects
|
||||
2. **Test Mode** — app-level env vars that disable watchers and redirect data/config paths
|
||||
|
|
@ -47,10 +47,10 @@ LLM_JUDGE_BACKEND=api ANTHROPIC_API_KEY=sk-... npm run test:e2e
|
|||
│ tauri-driver (port 4444) │
|
||||
│ WebDriver protocol ↔ WebKit2GTK inspector │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ BTerminal debug binary │
|
||||
│ BTERMINAL_TEST=1 (disables watchers, wake scheduler) │
|
||||
│ BTERMINAL_TEST_DATA_DIR → isolated SQLite DBs │
|
||||
│ BTERMINAL_TEST_CONFIG_DIR → test groups.json │
|
||||
│ Agents Orchestrator debug binary │
|
||||
│ AGOR_TEST=1 (disables watchers, wake scheduler) │
|
||||
│ AGOR_TEST_DATA_DIR → isolated SQLite DBs │
|
||||
│ AGOR_TEST_CONFIG_DIR → test groups.json │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ LLM_JUDGE_BACKEND=api ANTHROPIC_API_KEY=sk-... npm run test:e2e
|
|||
|
||||
The fixture generator creates isolated temporary environments so tests never touch real user data. Each fixture includes:
|
||||
|
||||
- **Temp root dir** under `/tmp/bterminal-e2e-{timestamp}/`
|
||||
- **Temp root dir** under `/tmp/agor-e2e-{timestamp}/`
|
||||
- **Data dir** — empty, SQLite databases created at runtime
|
||||
- **Config dir** — contains a generated `groups.json` with test projects
|
||||
- **Project dir** — a real git repo with `README.md` and `hello.py` (for agent testing)
|
||||
|
|
@ -74,10 +74,10 @@ const fixture = createTestFixture('my-test');
|
|||
// fixture.dataDir → /tmp/my-test-1710234567890/data/
|
||||
// fixture.configDir → /tmp/my-test-1710234567890/config/
|
||||
// fixture.projectDir → /tmp/my-test-1710234567890/test-project/
|
||||
// fixture.env → { BTERMINAL_TEST: '1', BTERMINAL_TEST_DATA_DIR: '...', BTERMINAL_TEST_CONFIG_DIR: '...' }
|
||||
// fixture.env → { AGOR_TEST: '1', AGOR_TEST_DATA_DIR: '...', AGOR_TEST_CONFIG_DIR: '...' }
|
||||
|
||||
// The test project is a git repo with:
|
||||
// README.md — "# Test Project\n\nA simple test project for BTerminal E2E tests."
|
||||
// README.md — "# Test Project\n\nA simple test project for Agents Orchestrator E2E tests."
|
||||
// hello.py — "def greet(name: str) -> str:\n return f\"Hello, {name}!\""
|
||||
// Both committed as "initial commit"
|
||||
|
||||
|
|
@ -105,17 +105,17 @@ Pass `fixture.env` to the app to redirect all data/config paths:
|
|||
|
||||
| Variable | Effect |
|
||||
|----------|--------|
|
||||
| `BTERMINAL_TEST=1` | Disables file watchers, wake scheduler, enables `is_test_mode` |
|
||||
| `BTERMINAL_TEST_DATA_DIR` | Redirects `sessions.db` and `btmsg.db` storage |
|
||||
| `BTERMINAL_TEST_CONFIG_DIR` | Redirects `groups.json` config loading |
|
||||
| `AGOR_TEST=1` | Disables file watchers, wake scheduler, enables `is_test_mode` |
|
||||
| `AGOR_TEST_DATA_DIR` | Redirects `sessions.db` and `btmsg.db` storage |
|
||||
| `AGOR_TEST_CONFIG_DIR` | Redirects `groups.json` config loading |
|
||||
|
||||
## Pillar 2: Test Mode
|
||||
|
||||
When `BTERMINAL_TEST=1` is set:
|
||||
When `AGOR_TEST=1` is set:
|
||||
|
||||
- **Rust backend**: `watcher.rs` and `fs_watcher.rs` skip file watchers
|
||||
- **Frontend**: `is_test_mode` Tauri command returns true, wake scheduler disabled via `disableWakeScheduler()`
|
||||
- **Data isolation**: `BTERMINAL_TEST_DATA_DIR` / `BTERMINAL_TEST_CONFIG_DIR` override default paths
|
||||
- **Data isolation**: `AGOR_TEST_DATA_DIR` / `AGOR_TEST_CONFIG_DIR` override default paths
|
||||
|
||||
The WebDriverIO config (`wdio.conf.js`) passes these env vars via `tauri:options.env` in capabilities.
|
||||
|
||||
|
|
@ -176,7 +176,7 @@ The CLI backend unsets `CLAUDECODE` env var to avoid nested session errors when
|
|||
|
||||
| File | Phase | Tests | Focus |
|
||||
|------|-------|-------|-------|
|
||||
| `bterminal.test.ts` | Smoke | ~50 | Basic UI rendering, CSS class selectors |
|
||||
| `agor.test.ts` | Smoke | ~50 | Basic UI rendering, CSS class selectors |
|
||||
| `agent-scenarios.test.ts` | A | 22 | `data-testid` selectors, 7 deterministic scenarios |
|
||||
| `phase-b.test.ts` | B | ~15 | Multi-project grid, LLM-judged agent responses |
|
||||
| `phase-c.test.ts` | C | 27 | Hardening features (palette, search, notifications, keyboard, settings, health, metrics, context, files) |
|
||||
|
|
@ -221,7 +221,7 @@ db.finishRun('run-001', 'passed', 45000);
|
|||
The CI pipeline runs on push/PR with path-filtered triggers:
|
||||
|
||||
1. **Unit tests** — `npm run test` (vitest)
|
||||
2. **Cargo tests** — `cargo test` (with `env -u BTERMINAL_TEST` to prevent env leakage)
|
||||
2. **Cargo tests** — `cargo test` (with `env -u AGOR_TEST` to prevent env leakage)
|
||||
3. **E2E tests** — `xvfb-run npm run test:e2e` (virtual framebuffer for headless WebKit2GTK)
|
||||
|
||||
LLM-judged tests are gated on the `ANTHROPIC_API_KEY` secret — they skip gracefully in forks or when the secret is absent.
|
||||
|
|
@ -278,5 +278,5 @@ Key settings:
|
|||
| Tests hang on startup | Kill stale `tauri-driver` processes: `pkill -f tauri-driver` |
|
||||
| All tests skip LLM judge | Install Claude CLI or set `ANTHROPIC_API_KEY` |
|
||||
| SIGUSR2 / exit code 144 | Stale tauri-driver on port 4444 — kill and retry |
|
||||
| `BTERMINAL_TEST` leaking to cargo | Run cargo tests with `env -u BTERMINAL_TEST cargo test` |
|
||||
| `AGOR_TEST` leaking to cargo | Run cargo tests with `env -u AGOR_TEST cargo test` |
|
||||
| No display available | Use `xvfb-run` or ensure X11/Wayland display is set |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue