fix: sanitize API error text display and add time_blockers tests

Add extractErrorMessage helper for JSON error body parsing and apply sanitizeText across all toast displays. Add time_blockers test coverage for new holiday placeholder cleanup and overlapping scenarios.
This commit is contained in:
2026-08-22 00:34:48 +01:00
parent 388ac5948a
commit 3eec71a56c
30 changed files with 283 additions and 71 deletions
@@ -2,6 +2,7 @@
import { authStore } from '$lib/stores/auth.svelte';
import { apiFetch } from '$lib/utils/api';
import { toast } from 'svelte-sonner';
import { extractErrorMessage } from '$lib/utils/toast-safe';
import { Button } from '$lib/components/ui/button';
import * as Card from '$lib/components/ui/card';
import { Input } from '$lib/components/ui/input';
@@ -397,7 +398,7 @@
await fetchGiftCards();
} else {
const errText = await res.text();
toast.error(errText || 'Failed to create inventory card');
toast.error(extractErrorMessage(errText) || 'Failed to create inventory card');
}
} catch {
toast.error('Network error');
@@ -439,7 +440,7 @@
await fetchGiftCards();
} else {
const errText = await res.text();
toast.error(errText || 'Failed to transfer balance');
toast.error(extractErrorMessage(errText) || 'Failed to transfer balance');
}
} catch {
toast.error('Network error transferring balance');