From 3059475ab7ca10cf99a56e7d8a8d089f679cdb62 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Sun, 8 Mar 2026 21:13:38 +0100 Subject: [PATCH] docs: update meta files for E2E testing session --- CHANGELOG.md | 1 + TODO.md | 2 +- docs/v3-progress.md | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf933a6..0be3d88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - All ~100 px layout values converted to rem across 10 components per rule 18: AgentPane, ToastContainer, CommandPalette, SettingsTab, TeamAgentsPanel, AgentCard, StatusBar, AgentTree, TerminalPane, AgentPreviewPane (1rem = 16px base, icon/dot dimensions kept as px) ### Added +- E2E testing infrastructure: WebdriverIO v9.24 + tauri-driver setup with `wdio.conf.js` (lifecycle hooks for tauri-driver spawn/kill, debug binary build), 6 smoke tests (`smoke.test.ts`), TypeScript config, `test:e2e` npm script, 4 new devDeps (@wdio/cli, @wdio/local-runner, @wdio/mocha-framework, @wdio/spec-reporter) - `waitForPendingPersistence()` export in agent-dispatcher.ts: counter-based fence that resolves when all in-flight `persistSessionForProject()` calls complete - OpenTelemetry instrumentation: `telemetry.rs` module with TelemetryGuard (Drop-based shutdown), tracing + optional OTLP/HTTP export to Tempo, controlled by `BTERMINAL_OTLP_ENDPOINT` env var (absent = console-only fallback) - `#[tracing::instrument]` on 10 key Tauri commands: pty_spawn, pty_kill, agent_query, agent_stop, agent_restart, remote_connect, remote_disconnect, remote_agent_query, remote_agent_stop, remote_pty_spawn diff --git a/TODO.md b/TODO.md index 401db90..a23dbae 100644 --- a/TODO.md +++ b/TODO.md @@ -3,7 +3,7 @@ ## Active ### v2/v3 Remaining -- [ ] **E2E testing (Playwright/WebDriver)** -- Scaffold at v2/tests/e2e/README.md. Needs display server. +- [ ] **E2E testing — run & expand** -- Infrastructure scaffolded (WebdriverIO + tauri-driver). Needs: `cargo install tauri-driver`, `apt install webkit2gtk-driver`, display server. Then run `npm run test:e2e`. - [ ] **Multi-machine real-world testing** -- Test bterminal-relay with 2 machines. - [ ] **Multi-machine TLS/certificate pinning** -- TLS support for bterminal-relay + certificate pinning in RemoteManager. - [ ] **Agent Teams real-world testing** -- Test with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1. diff --git a/docs/v3-progress.md b/docs/v3-progress.md index 011bc75..6e41ff7 100644 --- a/docs/v3-progress.md +++ b/docs/v3-progress.md @@ -415,3 +415,15 @@ All editor themes map to the same `--ctp-*` CSS custom property names (26 vars). - [x] StatusBar.svelte, AgentTree.svelte, TerminalPane.svelte, AgentPreviewPane.svelte, SettingsTab.svelte - [x] Icon/decorative dot dimensions kept as px per rule 18 - [x] 139 vitest + 34 cargo tests pass, vite build succeeds + +### Session: 2026-03-08 — E2E Testing Infrastructure + +#### WebdriverIO + tauri-driver Setup +- [x] Installed @wdio/cli, @wdio/local-runner, @wdio/mocha-framework, @wdio/spec-reporter (v9.24.0) +- [x] Created wdio.conf.js with tauri-driver lifecycle hooks (onPrepare builds debug binary, beforeSession/afterSession spawns/kills tauri-driver) +- [x] Created tsconfig.json for e2e test TypeScript compilation +- [x] Created smoke.test.ts with 6 tests: app title, status bar, version text, sidebar rail, workspace area, sidebar toggle +- [x] Added `test:e2e` npm script (`wdio run tests/e2e/wdio.conf.js`) +- [x] Updated README.md with complete setup instructions and CI guide +- [x] Key decision: WebdriverIO over Playwright (Playwright cannot control Tauri/WebKit2GTK apps) +- [x] Prerequisites: tauri-driver (cargo install), webkit2gtk-driver (apt), display server or xvfb-run