Svelte 5-Warnungen in Frontend-Component-Tests (derived_inert, invalid_raw_snippet_render) #282

Open
opened 2026-07-09 19:08:54 +02:00 by niboer · 1 comment
Owner

Im Frontend fallen bei den Component-Tests (jsdom) zwei Svelte 5-Warnungen auf stderr auf:

1. invalid_raw_snippet_render

Datei: data-table.component.test.ts

The `render` function passed to `createRawSnippet` should return HTML for a single element

Ursache: Die createRawSnippet-Renderfunktion in data-table.svelte gibt kein einzelnes Root-Element zurueck. Svelte 5 erwartet fuer createRawSnippet zwingend ein einzelnes HTML-Element.

Behandlung: DataTable-Component auf Svelte 5-Kompatibilitaet pruefen. Der render-Callback muss ein einzelnes Wrapper-Element retournieren.

2. derived_inert

Dateien: consent-dialog, deletion-requests, person-edit-modal, groups-list, guest-form-modal, group-detail (component.test.ts)

Reading a derived belonging to a now-destroyed effect may result in stale values

Ursache: Component-Tests zerstoeren Komponenten (unmount), wahrend $derived()-Werte noch gelesen werden. Svelte 5 lintet dies als potenziell stale reads.

Behandlung: Test-Aufraeum-Logik (afterEach/cleanup) pruefen. Sicherstellen, dass alle $derived-Zugriffe vor dem Unmount abgeschlossen sind. Ggf. Vitest-Timings anpassen.

Beide Warnungen sind nicht test-failend

Die Tests laufen alle gruen durch (1216/1216). Die Warnungen beeintraechtigen die Funktionalitaet nicht, sind aber Hinweise auf suboptimale Svelte-5-Kompatibilitaet und sollten mittelfristig behoben werden.

Im Frontend fallen bei den Component-Tests (jsdom) zwei Svelte 5-Warnungen auf stderr auf: ## 1. `invalid_raw_snippet_render` **Datei:** `data-table.component.test.ts` ``` The `render` function passed to `createRawSnippet` should return HTML for a single element ``` **Ursache:** Die `createRawSnippet`-Renderfunktion in `data-table.svelte` gibt kein einzelnes Root-Element zurueck. Svelte 5 erwartet fuer `createRawSnippet` zwingend ein einzelnes HTML-Element. **Behandlung:** DataTable-Component auf Svelte 5-Kompatibilitaet pruefen. Der `render`-Callback muss ein einzelnes Wrapper-Element retournieren. ## 2. `derived_inert` **Dateien:** `consent-dialog`, `deletion-requests`, `person-edit-modal`, `groups-list`, `guest-form-modal`, `group-detail` (component.test.ts) ``` Reading a derived belonging to a now-destroyed effect may result in stale values ``` **Ursache:** Component-Tests zerstoeren Komponenten (unmount), wahrend `$derived()`-Werte noch gelesen werden. Svelte 5 lintet dies als potenziell stale reads. **Behandlung:** Test-Aufraeum-Logik (`afterEach`/`cleanup`) pruefen. Sicherstellen, dass alle `$derived`-Zugriffe vor dem Unmount abgeschlossen sind. Ggf. Vitest-Timings anpassen. ## Beide Warnungen sind nicht test-failend Die Tests laufen alle gruen durch (1216/1216). Die Warnungen beeintraechtigen die Funktionalitaet nicht, sind aber Hinweise auf suboptimale Svelte-5-Kompatibilitaet und sollten mittelfristig behoben werden.
Author
Owner

Status nach Analyse (2026-07-11)

invalid_raw_snippet_render — GEFIXT (#294)

Der Test data-table.component.test.ts wurde angepasst: createRawSnippet-Renderfunktion gibt jetzt ein einzelnes <span>-Element zurueck statt eines Plain-Strings.

derived_inert — WARTET AUF UPSTREAM

Die Warnings stammen aus bits-ui-internem Code (node_modules), nicht aus unserem Projekt. Folgende bits-ui-Upstream-Issues dokumentieren das Problem:

Issue Betrifft Status
#2083 useFloating: autoUpdate rAF + Effect-Teardown Offen
#2080 DismissibleLayer: afterSleep(1)-Timer nach Zerstoerung Offen
#2050 Avatar: dynamische Updates Offen

Ein Fix von unserer Seite ist nicht moeglich, da der Code in bits-ui/node_modules liegt.

Die Warnings sind nicht test-failend und beeintraechtigen die Funktionalitaet nicht.

Dokumentiert in docs/design/09-bekannte-svelte5-warnungen.md.

Milestone: MS-REST: Restliche Aufgaben — wird nicht aktiv verfolgt, wartet auf bits-ui-Release.

## Status nach Analyse (2026-07-11) ### `invalid_raw_snippet_render` — GEFIXT (#294) Der Test `data-table.component.test.ts` wurde angepasst: `createRawSnippet`-Renderfunktion gibt jetzt ein einzelnes `<span>`-Element zurueck statt eines Plain-Strings. ### `derived_inert` — WARTET AUF UPSTREAM Die Warnings stammen aus **bits-ui**-internem Code (node_modules), nicht aus unserem Projekt. Folgende bits-ui-Upstream-Issues dokumentieren das Problem: | Issue | Betrifft | Status | |-------|----------|--------| | [#2083](https://github.com/huntabyte/bits-ui/issues/2083) | `useFloating`: autoUpdate rAF + Effect-Teardown | Offen | | [#2080](https://github.com/huntabyte/bits-ui/issues/2080) | `DismissibleLayer`: `afterSleep(1)`-Timer nach Zerstoerung | Offen | | [#2050](https://github.com/huntabyte/bits-ui/issues/2050) | Avatar: dynamische Updates | Offen | Ein Fix von unserer Seite ist nicht moeglich, da der Code in bits-ui/node_modules liegt. Die Warnings sind **nicht test-failend** und beeintraechtigen die Funktionalitaet nicht. Dokumentiert in `docs/design/09-bekannte-svelte5-warnungen.md`. **Milestone:** MS-REST: Restliche Aufgaben — wird nicht aktiv verfolgt, wartet auf bits-ui-Release.
Sign in to join this conversation.
No description provided.