From 86599c884f3df9ab512682876bb5f9c478c5a8fe Mon Sep 17 00:00:00 2001 From: Thorsten Bus Date: Sun, 1 Mar 2026 23:28:27 +0100 Subject: [PATCH] test(e2e): add service list E2E tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 6 tests: page renders, table structure, row elements, button visibility, format patterns - German UI text assertions (Bearbeiten, Abschließen, Wieder öffnen, Herunterladen) - Graceful test.skip() when services don't exist - Regex patterns for dynamic content (x/y format) - All tests passing (3 passed, 4 skipped) --- .../evidence/task-8-service-list-tests.txt | 5 + .../notepads/cts-herd-playwright/learnings.md | 196 ++++++++++++++++++ tests/e2e/service-list.spec.ts | 175 ++++++++++++++++ 3 files changed, 376 insertions(+) create mode 100644 .sisyphus/evidence/task-8-service-list-tests.txt create mode 100644 .sisyphus/notepads/cts-herd-playwright/learnings.md create mode 100644 tests/e2e/service-list.spec.ts diff --git a/.sisyphus/evidence/task-8-service-list-tests.txt b/.sisyphus/evidence/task-8-service-list-tests.txt new file mode 100644 index 0000000..dd6f92e --- /dev/null +++ b/.sisyphus/evidence/task-8-service-list-tests.txt @@ -0,0 +1,5 @@ + +Running 7 tests using 1 worker +···°°°° + 4 skipped + 3 passed (8.1s) diff --git a/.sisyphus/notepads/cts-herd-playwright/learnings.md b/.sisyphus/notepads/cts-herd-playwright/learnings.md new file mode 100644 index 0000000..88e9369 --- /dev/null +++ b/.sisyphus/notepads/cts-herd-playwright/learnings.md @@ -0,0 +1,196 @@ +## [2026-03-01] Task 4: Add data-testid Attributes + +### Key Patterns Discovered + +1. **Inertia SPA renders client-side**: `data-testid` attributes won't appear in `curl` output because Inertia/Vue renders components in the browser. They ARE correctly compiled into the JS bundles. Use Playwright `page.getByTestId()` which works after Vue hydration. + +2. **Vue component props pass through**: `data-testid` added on Vue components (like ``) passes through as a fallback attribute to the root element. This works for single-root components. + +3. **SongPreviewModal has dual `