Better e2e testing story for Custom UI / Playwright

Open
#8 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
playwright, typescript
Domain
devtools, testing

Research direction

Start with the dev-mode mocking work in issue #7 and the forge-sim dev entry point. Review the proposed .forge-sim/mocks.json or Playwright setup approach, including playwright.config.ts and the existing custom-field iframe e2e coverage. Done means seeded deterministic mocks and state resets work without restarting, with a documented headless CI example.

Written by the indexing model from the issue text.

Description

User story

A developer with a Custom UI app wants to write Playwright e2e tests against forge-sim dev — real browser, real iframe, real bridge — running fully mocked: no PAT, no connected site, deterministic data, CI-friendly.

Today this half-works: the dev server serves the Custom UI and the bridge, but any requestJira/product API call from the app hits the connected site or 501s, because mock routes only exist on the test-library and MCP surfaces. So e2e tests are either coupled to a live Atlassian site (flaky, authed, mutating real data) or impossible for API-driven UIs.

What "good" looks like

  • Seed mock routes + context for a dev-mode session (programmatic and/or file-based fixture, e.g. .forge-sim/mocks.json or a setup endpoint Playwright can hit)
  • Deterministic state per test: reset KVS/SQL/mocks between specs without restarting the dev server
  • A documented recipe: playwright.config.ts webServer → forge-sim dev, fixture seeding, example spec
  • Works headless in CI (note: existing custom-field iframe e2e hits ERR_INSUFFICIENT_RESOURCES headless with Atlaskit ESM in iframes — worth revisiting as part of this)

Dependencies

Depends on dev-mode mocking from #7 — that's the enabling layer. Filing separately so the user story doesn't get lost once the mocking plumbing lands.

Dominant language
TypeScript
Stars
5
Forks
2
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ryanackley/forge-sim

All issues in ryanackley/forge-sim

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.