test(connections): the reopened dismissed-dialog spec fails intermittently

Aperta
#448 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
nextjs, playwright, react, typescript
Ambito
frontend, testing

Direzione di ricerca

Run safe-e2e.sh <worktree> <port> -c playwright.config.ts e2e/connections.spec.ts:485 --repeat-each 20 first to see the flake and pull the trace. Then read the #367 tests around e2e/connections.spec.ts:485-531 alongside src/app/w/[workspace]/connections/[connectionId]/page.tsx and its not-found handling, checking whether the route refresh after the released action re-renders for a connection deleteConnectionRow already removed. Done means 20 guarded runs pass with the assertion unloosened, and a recorded verdict on whether the test or the page is wrong; the "workspace" wording in the not-found copy is a separate note.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area: connections bug priority: P3 size: S

Context

e2e/connections.spec.ts:485 "shows a failure beside the opener when its dialog was dismissed and reopened while working (#367)" failed once and passed on the next run, on branch 442-e2e-failures (#446), whose diff does not touch this test or the page it covers. It passed in the two runs before that too, so it is intermittent. Found while verifying #442.

Failure: locator.click: Test timeout of 30000ms exceeded at line 531 (await opener.click(), "Opening the dialog again starts fresh"), waiting for getByRole('main').getByRole('button', { name: 'Disconnect', exact: true }). The page snapshot at the timeout shows the connection page replaced by the not-found state:

- main:
    - paragraph: Not found
    - heading "We could not find that workspace" [level=1]
    - paragraph: The link may be mistyped, or you may not be a member of this workspace. ...

The test deletes the connection row (deleteConnectionRow) while the held server action is pending, then releases it. Hypothesis, not yet checked: once the action settles, the route refresh re-renders the page for a connection that no longer exists, so the opener goes away before the second opener.click(), depending on timing. The not-found copy also says "workspace" for what is a missing connection, which may be a separate copy bug.

The failure screenshot was overwritten by the passing rerun; the page snapshot above is from error-context.md of the failed run.

Plan

  1. Reproduce with repeated runs of this one test through safe-e2e.sh (--repeat-each), and capture the trace.
  2. Decide whether the test is wrong (it expects the page to stay after its connection is deleted) or the UI is (the page should keep the opener and show the failure, per #367), and record which on this issue.
  3. Fix accordingly, without loosening the assertion.

Acceptance criteria

  • The test passes on 20 repeated runs through the guarded runner
  • Playwright e2e: this spec is the coverage

Files and areas

e2e/connections.spec.ts (the #367 tests), src/app/w/[workspace]/connections/[connectionId]/page.tsx and its not-found handling. Non-goals: other connection specs.

Verification

safe-e2e.sh <worktree> <port> -c playwright.config.ts e2e/connections.spec.ts:485 --repeat-each 20 -> 0 failures.

Model: anthropic/claude-opus-5-5 | Reasoning effort: not reported by the harness

Lingua principale
TypeScript
Stelle
1
Fork
1
Merge medio
6h 56m
PR unite (30g)
136

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di eddiejaoude/StackDash

Tutte le issue di eddiejaoude/StackDash

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.