import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/svelte'; import VarietyWarningCards from './VarietyWarningCards.svelte'; const warnings = [ { title: 'Chicken zweimal diese Woche', items: [ { dayShort: 'Mo', recipeName: 'Chicken Tikka', slotId: 1 }, { dayShort: 'Mi', recipeName: 'Chicken Curry', slotId: 3 } ] }, { title: 'Tomaten in 3 Gerichten', items: [ { dayShort: 'Mo', recipeName: 'Pasta Pomodoro', slotId: 1 }, { dayShort: 'Di', recipeName: 'Tomatensuppe', slotId: 2 }, { dayShort: 'Mi', recipeName: 'Pizza Margherita', slotId: 3 } ] } ]; describe('VarietyWarningCards', () => { it('renders one card per warning', () => { render(VarietyWarningCards, { props: { warnings, weekStart: '2026-04-07' } }); const cards = screen.getAllByTestId('warning-card'); expect(cards.length).toBe(2); }); it('renders warning titles', () => { render(VarietyWarningCards, { props: { warnings, weekStart: '2026-04-07' } }); expect(screen.getByText(/Chicken zweimal/)).toBeTruthy(); expect(screen.getByText(/Tomaten in 3/)).toBeTruthy(); }); it('renders warning explanations', () => { render(VarietyWarningCards, { props: { warnings, weekStart: '2026-04-07' } }); expect(screen.getByText('Chicken Tikka')).toBeTruthy(); expect(screen.getByText('Chicken Curry')).toBeTruthy(); }); it('renders nothing when warnings is empty', () => { render(VarietyWarningCards, { props: { warnings: [], weekStart: '2026-04-07' } }); expect(screen.queryAllByTestId('warning-card').length).toBe(0); }); });