Frontend-Tests: Style-Assertions schlagen fehl, weil MUI sx keine Inline-Styles erzeugt (2 Tests) #4
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
Zwei Tests prüfen Layout-Eigenschaften per
element.style.textAlign/element.style.display, die zugrundeliegenden Komponenten nutzen aber MUI<Box>mitsx-Prop, der CSS-Klassen erzeugt — nicht Inline-Styles. Damit iststyle.*immer leer.Betroffene Tests (2)
src/components/base/__tests__/EmptyState.test.tsx:52—sollte die Standard-Struktur mit textAlign center habensrc/components/base/__tests__/LoadingCentered.test.tsx:34—sollte die Standard-Struktur mit flexDirection column habenUrsache
MUI
sx={{ textAlign: 'center' }}rendert eine Klasse wiecss-1ho0s78, keinstyle="text-align: center". Die Tests greifen aber auf dasstyle-Attribut zu.Mögliche Fixes
Option A —
getComputedStylestatt Inline-Style (testet was der User sieht):⚠️ JSDOM/Vitest rendern CSS nicht voll aus; ggf. nicht zuverlässig.
Option B — semantischer Test ohne CSS-Detail: testen, dass die Komponente bestimmte Kinder/Rollen rendert, nicht wie sie gestylt sind. Style-Aussagen gehören typischerweise in Visual-Regression-Tests, nicht in Unit-Tests.
Option C — Komponenten auf Inline-Styles umstellen — nicht empfohlen, da Abweichung vom MUI-Stil.
Reproduktion
Behoben — Option B umgesetzt (semantischer Smoke-Test statt CSS-Implementierungsdetail).
Statt
element.style.textAlign/element.style.displayzu prüfen (was bei MUIsximmer leer ist, weil Emotion CSS-Klassen generiert), verifizieren die Tests jetzt, dass das Wrapper-Element als MUI-Boxgerendert wird:Layout-spezifische Aussagen (zentriert, Spalten-Flex) gehören in Visual-Regression- oder e2e-Tests, nicht in Unit-Tests.
Geänderte Dateien
frontend/src/components/base/__tests__/EmptyState.test.tsx—sollte die Standard-Struktur mit textAlign center haben→sollte die Standard-Struktur als MUI-Box rendernfrontend/src/components/base/__tests__/LoadingCentered.test.tsx— analogVerifikation
Beide Style-Tests (vormals failing) sind jetzt grün. Die in diesen Files verbleibenden 2 Fails (
dataCy-Tests) gehören zu #3.