From 0d934a1b44a50360856808761b8352aa65795a67 Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 14 May 2026 15:12:28 +0200 Subject: [PATCH] fix(test): use m() calls and toBeAttached() in ImportStatusCard tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI Chromium runs with German locale so hardcoded English strings like 'No spreadsheet file found.' never matched. Use m.admin_system_import_*() to assert whatever locale the browser resolves to. Spinner test used toBeVisible() on an empty whose dimensions come entirely from Tailwind CSS. Without layout CSS the span is 0×0 and fails the visibility check; toBeAttached() asserts DOM presence, which is the right semantic here. Co-Authored-By: Claude Sonnet 4.6 --- .../routes/admin/system/ImportStatusCard.svelte.test.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/routes/admin/system/ImportStatusCard.svelte.test.ts b/frontend/src/routes/admin/system/ImportStatusCard.svelte.test.ts index fa66cc40..13538b9b 100644 --- a/frontend/src/routes/admin/system/ImportStatusCard.svelte.test.ts +++ b/frontend/src/routes/admin/system/ImportStatusCard.svelte.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi } from 'vitest'; import { render } from 'vitest-browser-svelte'; +import { m } from '$lib/paraglide/messages.js'; import ImportStatusCard from './ImportStatusCard.svelte'; type ImportStatus = { @@ -26,7 +27,7 @@ describe('ImportStatusCard', () => { } }); - await expect.element(getByTestId('spinner')).toBeVisible(); + await expect.element(getByTestId('spinner')).toBeAttached(); }); it('shows processed count at text-base while RUNNING', async () => { @@ -62,7 +63,7 @@ describe('ImportStatusCard', () => { } }); - await expect.element(getByText('No spreadsheet file found.')).toBeVisible(); + await expect.element(getByText(m.admin_system_import_failed_no_spreadsheet())).toBeVisible(); }); it('shows internal error message when statusCode is IMPORT_FAILED_INTERNAL', async () => { @@ -73,7 +74,7 @@ describe('ImportStatusCard', () => { } }); - await expect.element(getByText('Import failed due to an internal error.')).toBeVisible(); + await expect.element(getByText(m.admin_system_import_failed_internal())).toBeVisible(); }); it('shows idle text when importStatus is non-null and state is IDLE', async () => { @@ -84,7 +85,7 @@ describe('ImportStatusCard', () => { } }); - await expect.element(getByText('No import started.')).toBeVisible(); + await expect.element(getByText(m.admin_system_import_status_idle())).toBeVisible(); }); it('shows no spinner when importStatus is null', async () => {