Frontend-Tests: data-cy vs. data-testid Mismatch (4 Tests) #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
Beim Lauf von
frontend/test.shschlagen vier Tests fehl, weil sie überscreen.getByTestId(...)nach einemdata-testid-Attribut suchen, die Komponenten dendataCy-Prop aber alsdata-cyrendern.Betroffene Tests (4)
src/components/base/__tests__/ConfirmDialog.test.tsx:71—sollte dataCy-Attribut setzen, wenn es bereitgestellt wirdsrc/components/base/__tests__/EmptyState.test.tsx:46—sollte dataCy-Attribut setzen, wenn es bereitgestellt wirdsrc/components/base/__tests__/LoadingCentered.test.tsx:28—sollte dataCy-Attribut setzen, wenn es bereitgestellt wirdsrc/components/base/__tests__/PageHeader.test.tsx:42—sollte dataCy-Attribut setzen, wenn es bereitgestellt wirdBeobachtetes Verhalten
Render-Output enthält z.B.
<div data-cy="test-empty">…</div>, der Test ruft aberscreen.getByTestId('test-empty')auf, was nachdata-testidsucht →TestingLibraryElementError: Unable to find an element by: [data-testid="test-empty"].Mögliche Fixes
Eine der beiden Seiten muss angepasst werden — Entscheidung sollte konsistent für alle Base-Komponenten getroffen werden:
Option A — Komponenten zusätzlich
data-testidsetzen (wenn Cypress-Selektordata-cyerhalten bleiben soll)Option B — Tests umstellen auf Container-Query nach
data-cy:Reproduktion
sxkeine Inline-Styles erzeugt (2 Tests) #4Behoben — Option A umgesetzt: alle vier Base-Komponenten setzen jetzt
data-testid={dataCy}zusätzlich zudata-cy={dataCy}. Damit funktionieren sowohl der Cypress-Selektor (data-cy) als auch React Testing LibrarysgetByTestId(...).Geänderte Komponenten
frontend/src/components/base/EmptyState.tsxfrontend/src/components/base/LoadingCentered.tsxfrontend/src/components/base/ConfirmDialog.tsxfrontend/src/components/base/PageHeader.tsxPattern in jeder Datei:
Verifikation
→ Test Files 4 passed, Tests 32 passed. Die vier
dataCy-Assertions sind alle grün.