Better e2e testing story for Custom UI / Playwright
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
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.jsonor 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.tswebServer →forge-sim dev, fixture seeding, example spec - Works headless in CI (note: existing custom-field iframe e2e hits
ERR_INSUFFICIENT_RESOURCESheadless 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ryanackley/forge-sim
-
upstream-changelog
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
ryanackley/forge-sim#36 ·
-
upstream-changelog
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
ryanackley/forge-sim#34 ·
-
upstream-changelog
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
ryanackley/forge-sim#21 ·
-
upstream-changelog
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
ryanackley/forge-sim#18 ·
-
upstream-changelog
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
ryanackley/forge-sim#12 ·
All issues in ryanackley/forge-sim
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
vercel/react-tweet#225 ·