Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 2.12 KB

File metadata and controls

42 lines (35 loc) · 2.12 KB

E2E policy

Detailed target setup, commands, ports, desktop VM operation, endpoint discovery, viewer usage, and recording workflows live in RUNNING.md. Read only the relevant section for the task.

Scenario structure

  • Put cross-target scenarios in scenarios/*.test.ts; target-specific suites stay under their target directory.
  • Declare capabilities by yielding services from src/services.ts (Target, Api, Browser, Mcp, Billing, Cli, Telemetry, and others). Do not add a separate capability list. Unsupported targets skip and record why.
  • Create fresh identities and organizations through Target. Never depend on shared state or customer-derived fixtures.
  • Clean up created resources with Effect.ensuring; trailing cleanup statements are insufficient because mid-test failures must not leak state.
  • Assert through the real typed API, browser, MCP, CLI, emulator ledger, or exported telemetry surface. Do not reach into implementation internals to make a scenario pass.

Browser and telemetry

  • Wrap browser work in browser.session(identity, ...) and use step labels phrased as user actions. Prefer role-based locators and wait for navigation or network settling after actions that change pages.
  • Browser sessions produce screenshots, video, and a Playwright trace. Do not add separate recording machinery for ordinary scenarios.
  • Telemetry assertions target spans that reached the motel store, not values stamped only inside application memory. Export is eventually consistent, so use the provided polling helpers.

Isolation and quality

  • Never hardcode ports or attach to an arbitrary existing server. Use the checkout's claimed port block or explicit E2E_<TARGET>_URL attachment.
  • Test the user-visible contract and important failure path, not selectors or implementation details alone.
  • Run the narrowest relevant target while iterating. Before handoff, provide the viewer/run URL, recording or trace, and the exact outcome to inspect.
  • Do not weaken, skip, or rewrite a failing assertion merely to make the suite green. Fix the product, fixture, or scenario contract.