Two e2e tests time out on the first request to a cold dev server

Abierto
#360 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
62/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
nextjs, playwright, typescript
Área
testing

Línea de trabajo

Start by reproducing: delete .next and run safe-e2e.sh <worktree> 3207 against e2e/alert-rules.spec.ts and e2e/command-palette.spec.ts alone, so the first request to each route or server action is cold. Read the Playwright config for webServer and any existing warm-up or readiness helper other specs use, then look at how e2e/alert-rules.spec.ts:62 waits for the status message and how e2e/command-palette.spec.ts:201 waits on the dashboard. Done means both wait on an observable readiness signal (no sleeps, no retries) and pass 10 consecutive fresh runs, with the confirmed cause written into the issue.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area: ci bug impact: low priority: P3 size: S

Summary

Two e2e tests failed once in a local Chromium run of PR #352 (#342) at bf8cfda and passed in the next run at b54b7cb, where nothing they exercise had changed. Both failures were the first request to a route or server action in a freshly started next dev, so the likely cause is on-demand compilation outlasting the assertion timeout. Per the house rules a flaky test is a bug of its own.

Evidence

Run at bf8cfda through the guarded runner (safe-e2e.sh <worktree> 3207 -c <throwaway config> e2e/pr342-evidence.spec.ts e2e/alert-rules.spec.ts e2e/alert-channels.spec.ts e2e/projects.spec.ts e2e/api.spec.ts e2e/connections.spec.ts e2e/command-palette.spec.ts, one worker, no retries, .next deleted first): 60 passed, 3 failed. One failure was a real bug fixed in that branch; these two were not:

  1. e2e/alert-rules.spec.ts:62 ("creates a percent rule from a preset, then pauses, resumes, and deletes it"):

    Error: expect(locator).toBeVisible() failed
    Locator: getByRole('form', { name: 'Add an alert rule' }).getByRole('status').filter({ hasText: 'Alert rule added.' })
    Timeout: 5000ms
    

    The page snapshot at failure shows the submit button still reading "Saving" and disabled after 5 seconds, so the add rule action had not returned yet. It was the first call to that server action in the run.

  2. e2e/command-palette.spec.ts:201 ("opens from the shell button, filters, and opens the chosen result"): Test timeout of 30000ms exceeded. The page snapshot shows the dashboard still at its "Loading the dashboard" status. It was the first visit to /w/<workspace>/dashboard in the run.

Run at b54b7cb with the same runner and the same spec list: 67 passed, including both tests (1.6s and 2.4s).

Acceptance criteria

  • The cause is confirmed and stated here (cold compilation in next dev, or something else).
  • Both tests wait on an observable condition that covers the first, cold request (or the run warms the routes they use first), with no added sleep and no retry, and each passes in 10 consecutive fresh local runs.

Model: anthropic/claude-opus-5-5 | Reasoning effort: low

Lenguaje dominante
TypeScript
Estrellas
1
Forks
1
Merge medio
6 h 56 min
PR fusionados (30 d)
136

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de eddiejaoude/StackDash

Todos los issues de eddiejaoude/StackDash

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.