veza/tests/e2e/SKIPPED_TESTS.md
senke 5349b80052 fix(e2e): stable upload-trigger testid, unskip v107-e2e-04 — rc1-day2 root cause #2
12 @critical failures on 27-upload + 43-upload-deep + the skipped
04-tracks:207 shared one root cause: the LibraryPageToolbar "New"
button (renders t('library.new'), localized to "New"/"Nouveau") was
targeted by regex `/upload|uploader/i` or `/upload|importer|
ajouter/i` — none matched the actual label. The 2026-04-08
console.log → expect conversion pinned assertions against a label
the UI never produced.

Fix: `data-testid="library-upload-cta"` on the toolbar CTA +
aria-label fallback ("Upload track"). Tests target by testid,
immune to future i18n/copy changes.

Results after fix:
  * 27-upload.spec.ts — 6/7 now pass. The remaining failure
    (test 54 "full upload flow") is a DIFFERENT root cause:
    dialog doesn't close after upload submit (60s timeout).
    Not a locator issue — tracked separately as #55 (upload
    backend hangs on submit, suspected ClamAV or validation
    silently failing in test env).
  * 04-tracks.spec.ts:207 — unskipped, passes (was #50, now
    closed; SKIPPED_TESTS.md updated with resolution note).
  * 43-upload-deep.spec.ts helper — migrated to the same testid
    so the "button not found" class of failure is gone.
    Remaining 43-upload-deep failures are same upload-flow
    class as 27-upload:54 (tracked in #55).

Gain: 8/12 upload-family tests recovered. Remaining 4 are a
separate investigation.

Post-fix validation: ran `27-upload + 04-tracks` under
Playwright — 7 passed, 2 failed, 1 skipped (skip unrelated).
The 2 failures are both the #55 submit-hang root cause, not
the locator one.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:38:28 +02:00

2.7 KiB

Currently skipped @critical E2E tests

Tests in this list are marked test.skip(...) with a detailed inline comment above each test.skip. This file is the index so a reviewer or future maintainer can see the skip decisions at a glance without grepping.

Skipping a @critical test is a deliberate escape hatch, not a norm. Each entry below carries the root cause, the date the skip was introduced, and the tracking task ID. If the list grows past ~5 entries, that's a signal the E2E baseline is eroding and a maintenance pass is overdue.

v1.0.7 skips (task #36)

All four were consistently failing (4/4 pre-push runs, not intermittent flakes) since commit 7338a9a63 (2026-04-08, test(e2e): convert all remaining 298 console.log to real expect()). The assertion-conversion landed without verifying every new expect() against the current UI, so the broken tests slipped in and were masked by SKIP_E2E=1 during the v1.0.7 sprint.

Root-cause investigation timeboxed at 4h on 2026-04-18. Outcome: causes identified, fixes scoped, skip + tickets instead of in-line patch to keep the v1.0.7 tag scope tight.

File:line Test Root cause Ticket
03-player.spec.ts:9 01. Clic sur play lance la lecture d'un track Regex ^Lire matches the bulk-play label, not the single-track play button. Fix: target TrackCard/TrackListRow play button directly. v107-e2e-01
03-player.spec.ts:262 Cycle repeat off -> track -> playlist -> off Repeat button exists in two components (PlayerControls.tsx EN, RepeatShuffleButtons.tsx FR). Test finds EN button, asserts FR text → fail. Fix: assert on aria-pressed + count indicator, not free-text. v107-e2e-02
03-player.spec.ts:299 Controle vitesse de lecture — changement visible Test clicks Track info to open expanded player but doesn't wait for overlay before querying speed control. Fix: replicate the open-and-wait from test 326. v107-e2e-03
04-tracks.spec.ts:207 09. Upload accessible pour un createur via la bibliotheque RESOLVED 2026-04-18 (rc1-day2): unskipped, now passes. Root cause was t('library.new') label → button says "New"/"Nouveau", regex `/upload importer

How to unskip

  1. Read the inline comment above the test.skip for the full investigation notes.
  2. Implement the fix suggested.
  3. Run npx playwright test --grep "<test name>" --repeat-each 100 locally. 100/100 green before re-enabling.
  4. Remove the .skip and the eslint-disable comment. Keep the tests/e2e/SKIPPED_TESTS.md entry in a "fixed" section for a release or two so the history is traceable.