diff --git a/frontend/src/lib/auth/BrandPanel.svelte b/frontend/src/lib/auth/BrandPanel.svelte new file mode 100644 index 0000000..a28d8ab --- /dev/null +++ b/frontend/src/lib/auth/BrandPanel.svelte @@ -0,0 +1,32 @@ + + +
+ + +

+ Mealprep +

+ +

+ Plan meals, eat well, waste less +

+ + +
diff --git a/frontend/src/lib/auth/BrandPanel.test.ts b/frontend/src/lib/auth/BrandPanel.test.ts new file mode 100644 index 0000000..38b9dd3 --- /dev/null +++ b/frontend/src/lib/auth/BrandPanel.test.ts @@ -0,0 +1,34 @@ +import { describe, it, expect } from 'vitest'; +import { render, screen } from '@testing-library/svelte'; +import BrandPanel from './BrandPanel.svelte'; + +describe('BrandPanel', () => { + it('renders the app name', () => { + render(BrandPanel); + expect(screen.getByText('Mealprep')).toBeInTheDocument(); + }); + + it('renders the tagline', () => { + render(BrandPanel); + expect(screen.getByText('Plan meals, eat well, waste less')).toBeInTheDocument(); + }); + + it('renders the logo emoji', () => { + render(BrandPanel); + expect(screen.getByText('🥗')).toBeInTheDocument(); + }); + + it('renders three feature icons with labels', () => { + render(BrandPanel); + expect(screen.getByText('Plan')).toBeInTheDocument(); + expect(screen.getByText('Cook')).toBeInTheDocument(); + expect(screen.getByText('Shop')).toBeInTheDocument(); + }); + + it('renders feature emojis', () => { + render(BrandPanel); + expect(screen.getByText('📅')).toBeInTheDocument(); + expect(screen.getByText('🍳')).toBeInTheDocument(); + expect(screen.getByText('🛒')).toBeInTheDocument(); + }); +});