fix(frontend): flaky CI + Svelte 5-Warnungen in Component-Tests #294

Merged
niboer merged 1 commit from fix/svelte5-test-warnungen into main 2026-07-11 13:30:26 +02:00
Owner

Allgemein

Altes Verhalten

  1. Flaky CI: Frontend-Unit-Tests schlagen in CI unberechenbar fehl wegen ReferenceError: document is not defined aus bits-ui body-scroll-lock. Alle 1216 Tests laufen gruen, aber ein nach jsdom-Teardown feuernder Timeout verursacht exit code 1.
  2. invalid_raw_snippet_render: createRawSnippet-Renderfunktion in data-table.component.test.ts gibt Plain-String statt HTML-Element zurueck.
  3. derived_inert: Svelte-5-Warnungen aus bits-ui-internem Code waehrend Component-Teardown.

Neues Verhalten

  1. Flaky CI gefixt: setTimeout-Tracker in vitest.setup.ts ueberschreibt globalThis.setTimeout/clearTimeout, tracked alle Timer-IDs. Der afterEach-Hook in setupFiles (laeuft NACH testing-library's cleanup) cleart alle pending Timer vor jsdom-Teardown.
  2. invalid_raw_snippet_render gefixt: createRawSnippet.render gibt jetzt <span>...</span> statt Plain-String.
  3. Dokumentiert: docs/design/09-bekannte-svelte5-warnungen.md mit Upstream-Referenzen (bits-ui #2083, #2080, #2050).

Begruendung

  • Der flaky CI betrifft jeden PR und erzwungenes manuelles Re-Running, ohne wirkliche Code-Aenderung zu signalisieren.
  • invalid_raw_snippet_render ist ein echter Svelte-5-Kompatibilitaetsfehler im Test.
  • derived_inert kann von unserer Seite nicht gefixt werden (bits-ui node_modules), wird aber dokumentiert.

Test-Hinweise

  1. Lokal: cd frontend && npx vitest run — alle 72 Test Files muessen gruen sein, 0 unhandled errors.
  2. CI: Der Job test-frontend sollte nicht mehr flaky fehlschlagen.
### Allgemein - refs #282 ### Altes Verhalten 1. **Flaky CI:** Frontend-Unit-Tests schlagen in CI unberechenbar fehl wegen `ReferenceError: document is not defined` aus bits-ui body-scroll-lock. Alle 1216 Tests laufen gruen, aber ein nach jsdom-Teardown feuernder Timeout verursacht exit code 1. 2. **invalid_raw_snippet_render:** `createRawSnippet`-Renderfunktion in `data-table.component.test.ts` gibt Plain-String statt HTML-Element zurueck. 3. **derived_inert:** Svelte-5-Warnungen aus bits-ui-internem Code waehrend Component-Teardown. ### Neues Verhalten 1. ✅ **Flaky CI gefixt:** `setTimeout`-Tracker in `vitest.setup.ts` ueberschreibt `globalThis.setTimeout`/`clearTimeout`, tracked alle Timer-IDs. Der `afterEach`-Hook in setupFiles (laeuft NACH testing-library's cleanup) cleart alle pending Timer vor jsdom-Teardown. 2. ✅ **invalid_raw_snippet_render gefixt:** `createRawSnippet.render` gibt jetzt `<span>...</span>` statt Plain-String. 3. ✅ **Dokumentiert:** `docs/design/09-bekannte-svelte5-warnungen.md` mit Upstream-Referenzen (bits-ui #2083, #2080, #2050). ### Begruendung - Der flaky CI betrifft jeden PR und erzwungenes manuelles Re-Running, ohne wirkliche Code-Aenderung zu signalisieren. - `invalid_raw_snippet_render` ist ein echter Svelte-5-Kompatibilitaetsfehler im Test. - `derived_inert` kann von unserer Seite nicht gefixt werden (bits-ui node_modules), wird aber dokumentiert. ### Test-Hinweise 1. Lokal: `cd frontend && npx vitest run` — alle 72 Test Files muessen gruen sein, 0 unhandled errors. 2. CI: Der Job `test-frontend` sollte nicht mehr flaky fehlschlagen.
fix(frontend): flaky CI + Svelte 5-Warnungen in Component-Tests
Some checks failed
CI Backend / test-backend (pull_request) Has been cancelled
CI Frontend / lint-frontend (pull_request) Has been cancelled
CI Frontend / test-frontend (pull_request) Has been cancelled
CI Meta / conventional-commit (pull_request) Has been cancelled
E2E / e2e (pull_request) Has been cancelled
CI Backend / lint-backend (pull_request) Has been cancelled
448900772d
refs #282

Aktuelles:
- Flaky CI: Uncaught ReferenceError: document is not defined aus
  bits-ui body-scroll-lock Cleanup-Timeout nach jsdom-Teardown
- invalid_raw_snippet_render in data-table.component.test.ts
- derived_inert-Warnungen aus bits-ui, nicht test-failend

Neu:
- setTimeout-Tracker + afterEach-Cleaner in vitest.setup.ts verhindert
  Race-Condition zwischen bits-ui-Timeout und jsdom-Teardown
- createRawSnippet.render gibt einzelnes <span>-Element zurueck
- docs/design/09-bekannte-svelte5-warnungen.md dokumentiert
  derived_inert als bits-ui-Upstream-Bug (#2083, #2080, #2050)

Wichtige Aenderung: vitest.setup.ts ueberschreibt globalThis.setTimeout
zum Tracken aller Timer-IDs. afterEach in setupFiles laeuft nach
testing-library's cleanup und cleart alle pending Timer vor
jsdom-Teardown.
niboer force-pushed fix/svelte5-test-warnungen from 448900772d
Some checks failed
CI Backend / test-backend (pull_request) Has been cancelled
CI Frontend / lint-frontend (pull_request) Has been cancelled
CI Frontend / test-frontend (pull_request) Has been cancelled
CI Meta / conventional-commit (pull_request) Has been cancelled
E2E / e2e (pull_request) Has been cancelled
CI Backend / lint-backend (pull_request) Has been cancelled
to 116992b233
All checks were successful
CI Backend / lint-backend (pull_request) Successful in 54s
CI Frontend / lint-frontend (pull_request) Successful in 1m20s
CI Meta / conventional-commit (pull_request) Successful in 1s
E2E / e2e (pull_request) Successful in 3m51s
CI Backend / test-backend (pull_request) Successful in 3m32s
CI Frontend / test-frontend (pull_request) Successful in 2m2s
2026-07-11 13:17:44 +02:00
Compare
niboer merged commit 64370bb039 into main 2026-07-11 13:30:26 +02:00
niboer deleted branch fix/svelte5-test-warnungen 2026-07-11 13:30:26 +02:00
Sign in to join this conversation.
No description provided.