diff --git a/e2e-tests/local_agent_auto.spec.ts b/e2e-tests/local_agent_auto.spec.ts index c815f41e5..e66de233a 100644 --- a/e2e-tests/local_agent_auto.spec.ts +++ b/e2e-tests/local_agent_auto.spec.ts @@ -1,7 +1,17 @@ +import { expect } from "@playwright/test"; import { testSkipIfWindows } from "./helpers/test_helper"; testSkipIfWindows("local-agent - auto model", async ({ po }) => { await po.setUpDyadPro({ localAgent: true, localAgentUseAutoModel: true }); + await po.page.evaluate(async () => { + await (window as any).electron.ipcRenderer.invoke("set-user-settings", { + enableCodeExplorer: false, + }); + }); + await expect + .poll(() => po.settings.recordSettings().enableCodeExplorer) + .toBe(false); + await po.importApp("minimal"); await po.sendPrompt("[dump]"); diff --git a/rules/e2e-testing.md b/rules/e2e-testing.md index 1ed51e05a..8f535496f 100644 --- a/rules/e2e-testing.md +++ b/rules/e2e-testing.md @@ -196,6 +196,7 @@ If `npm run build` / Electron Forge packaging fails with `Failed to locate modul - **Filesystem-heavy IPC assertions**: Operations that delete or copy whole app directories (e.g. bulk app delete) can exceed the 5s default expect timeout on CI runners. Give the post-operation assertion an explicit `{ timeout: 30_000 }`. - **Fake Anthropic engine routes**: When app code uses Anthropic direct passthrough, the fake LLM server must handle `/v1/messages` (and provider-prefixed variants like `/engine/v1/messages`), not just `/chat/completions`. Anthropic tool results come back as user messages with `tool_result` content blocks, so fixture turn counting must skip those as user prompts. - **Legacy local-agent `code_search` coverage**: `code_search` is hidden when code explorer is enabled and ready, so specs that explicitly test `code_search` should set `enableCodeExplorer: false` and poll persisted settings before sending the fixture prompt. Otherwise local and CI can render different snapshots depending on code-explorer readiness. +- **Local-agent request-dump snapshots and code explorer**: If a request-dump spec is not testing `explore_code`, pin `enableCodeExplorer: false` and poll `po.settings.recordSettings().enableCodeExplorer` before sending the prompt. Otherwise the serialized prompt/tool list can flip between `code_search` and `explore_code` depending on whether indexing finished first. - **Supabase destructive SQL migration proposals**: Auto-approve does not apply destructive SQL changes. If an E2E prompt returns a destructive SQL proposal (for example `DROP TABLE`), call `po.approveProposal()` before asserting that a migration file or app-file change exists. ## Triaging failures from a CI run's html-report