Skip to content

Add Playwright production-build end-to-end coverage - #29

Merged
davidtaing merged 4 commits into
codesydney:mainfrom
XonkelX:codex/issue-6-playwright-e2e
Aug 14, 2026
Merged

Add Playwright production-build end-to-end coverage#29
davidtaing merged 4 commits into
codesydney:mainfrom
XonkelX:codex/issue-6-playwright-e2e

Conversation

@XonkelX

@XonkelX XonkelX commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Closes #6

What changed

  • configure Playwright to build and serve the production Next.js app
  • run the suite in desktop and mobile Chromium projects
  • smoke-test /, /contact, and the generated 404 route
  • cover menu focus containment and restoration, hash navigation, header fade behavior, and contact-form submission
  • run structural WCAG checks with @axe-core/playwright; existing palette contrast debt remains outside this harness change
  • add a standalone GitHub Actions workflow that installs Chromium and runs pnpm test:e2e

Why

Most routes are Server Components, so they need browser-level coverage. This gives the project a production-build smoke gate without overlapping the general build/lint workflow in #26.

Verification

  • pnpm lint
  • pnpm build
  • pnpm test:e2e — 18 passed across desktop and mobile Chromium
  • pnpm install --frozen-lockfile --lockfile-only
  • git diff --check

@XonkelX
XonkelX marked this pull request as ready for review August 14, 2026 04:48
@davidtaing

Copy link
Copy Markdown
Collaborator

Hi @XonkelX, thanks, had a quick look and it looks good so far. The actions SHA versions should be updated to the latest release versions though. Can you please look into that?

Did you use Codex for this? I might do a Claude Code + Human review on this after I finish work.

@XonkelX

XonkelX commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Yes! I used Codex as a coding assistant for the implementation and testing, and I reviewed the changes before submitting. The branch name probably gave it away. I'll update the three pinned actions to their latest release SHAs. Thanks for taking a look.

@XonkelX

XonkelX commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Updated the three pins in c26f6cf: actions/checkout v7.0.1, pnpm/action-setup v6.0.10, and actions/setup-node v7.0.0. I also reran lint and the Playwright suite; all 18 tests pass. I kept the update scoped to the new E2E workflow.

@davidtaing

Copy link
Copy Markdown
Collaborator

Yes! I used Codex as a coding assistant for the implementation and testing, and I reviewed the changes before submitting. The branch name probably gave it away. I'll update the three pinned actions to their latest release SHAs. Thanks for taking a look.

Cool cool, will take a look in an hour or two. If you use the same model family to do reviews, the biases can carry through each step. Like a mistake in the generation might not be flagged by the model since it would make the same mistake.

I use claude code mainly and use codex to review. Will use Claude instead for this PR.

@davidtaing davidtaing left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Playwright end-to-end coverage

Worth landing. Right targets — the menu overlay's focus management and the contact form
are the only real behaviour on this site — and role-based locators that won't break on
styling changes.

Five comments, all small. The two worth real attention are the focus-containment loop and
the contact-form assertion: both currently pass for reasons unrelated to what they check.

Before merge: the suite has never actually run in CI — both End-to-end tests runs are
action_required at 0s, held by the approval gate. It's confirmed passing locally against
the production build, so approving one runner pass is worth more than this review.

Optional later: upload the traces the config already generates on failure, and give the 404
test a real not-found.tsx to assert against.


Review by Claude Code (Opus 5); Codex did not see these changes.

Comment thread e2e/interactions.spec.ts Outdated
Comment thread playwright.config.ts Outdated
Comment thread e2e/interactions.spec.ts
Comment thread README.md
davidtaing added a commit that referenced this pull request Aug 14, 2026
…30)

Came out of running `/pr-review` on #29, which produced eight inline
comments and a
several-hundred-word summary that mostly restated them. The skill had no
length guidance
anywhere, and no way to tell a defect from a preference — so everything
arrived at the
same weight, and trimming meant dropping real findings rather than
ranking them.

Three changes to `SKILL.md`:

**Severity labels.** Every inline comment now opens with `**major**`,
`**minor**` or
`**nit**` before the claim, each defined by what the author is expected
to do about it.
Ranking is what earns the right to raise everything: a nit labelled as a
nit costs two
seconds, while the same nit sitting unlabelled beside a real defect
makes the author weigh
both equally. Includes a warning against inflating a nit to get it
fixed, which is how the
labels stop being believed.

**Length, on the summary only.** Inline comments are explicitly
unbounded — a finding
needs enough words to be verifiable, or the author has to re-derive it.
The ~150-word
budget applies to the summary, reframed as a landing page rather than a
recap, with an
ordered list of what to cut first that starts with anything the inline
comments already say.

**Attribution is now required, and leads the summary.** It was
previously described as
"fine and useful". Position matters: knowing a model produced a finding
changes how it is
weighed, so it has to arrive before the findings, not as a footnote. The
section also
spells out the contrast with commit messages — which carry no tool
attribution at all per
`AGENTS.md` — because the two rules point opposite ways and are easy to
conflate.

Docs only; no code or workflow changes.
@XonkelX
XonkelX force-pushed the codex/issue-6-playwright-e2e branch from c26f6cf to 483e2cb Compare August 14, 2026 16:22
@davidtaing

Copy link
Copy Markdown
Collaborator

Approving @XonkelX. Thank you for your contribution. I look forward to getting more.

@davidtaing
davidtaing merged commit fae2ffb into codesydney:main Aug 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set up Playwright for end-to-end tests

2 participants