diff --git a/frontend/src/lib/components/DashboardResumeStrip.svelte b/frontend/src/lib/components/DashboardResumeStrip.svelte index fcf16812..1be18627 100644 --- a/frontend/src/lib/components/DashboardResumeStrip.svelte +++ b/frontend/src/lib/components/DashboardResumeStrip.svelte @@ -56,6 +56,27 @@ function safeColor(color: string): string { loading="lazy" decoding="async" /> + {:else} + {/if} diff --git a/frontend/src/lib/components/DashboardResumeStrip.svelte.spec.ts b/frontend/src/lib/components/DashboardResumeStrip.svelte.spec.ts index a7b411c0..0c1f9b48 100644 --- a/frontend/src/lib/components/DashboardResumeStrip.svelte.spec.ts +++ b/frontend/src/lib/components/DashboardResumeStrip.svelte.spec.ts @@ -69,4 +69,11 @@ describe('DashboardResumeStrip', () => { await expect.element(img).toHaveAttribute('loading', 'lazy'); await expect.element(img).toHaveAttribute('decoding', 'async'); }); + + it('renders fallback icon when thumbnailUrl is null', async () => { + render(DashboardResumeStrip, { resumeDoc: mockResume }); + const fallback = page.getByTestId('resume-thumbnail-fallback'); + await expect.element(fallback).toBeInTheDocument(); + await expect.element(page.getByTestId('resume-thumbnail-img')).not.toBeInTheDocument(); + }); });