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

Đang mở
#360 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
62/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
nextjs, playwright, typescript
Lĩnh vực
testing

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Ngôn ngữ chính
TypeScript
Star
1
Fork
1
Merge trung bình
6 giờ 56 phút
Pull request đã merge (30 ngày)
136

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của eddiejaoude/StackDash

Tất cả issue của eddiejaoude/StackDash

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.