import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/svelte'; import EffortBar from './EffortBar.svelte'; describe('EffortBar', () => { it('renders segment for easy effort', () => { render(EffortBar, { props: { easy: 3, medium: 3, hard: 1 } }); expect(screen.getByTestId('effort-easy').textContent).toContain('3'); }); it('renders segment for medium effort', () => { render(EffortBar, { props: { easy: 3, medium: 3, hard: 1 } }); expect(screen.getByTestId('effort-medium').textContent).toContain('3'); }); it('renders segment for hard effort', () => { render(EffortBar, { props: { easy: 3, medium: 3, hard: 1 } }); expect(screen.getByTestId('effort-hard').textContent).toContain('1'); }); it('hides zero-count segments', () => { render(EffortBar, { props: { easy: 7, medium: 0, hard: 0 } }); expect(screen.queryByTestId('effort-medium')).toBeNull(); expect(screen.queryByTestId('effort-hard')).toBeNull(); }); it('renders label with ×N count', () => { render(EffortBar, { props: { easy: 3, medium: 3, hard: 1 } }); expect(screen.getByTestId('effort-easy').textContent).toContain('×3'); }); it('renders no segments when all counts are zero', () => { render(EffortBar, { props: { easy: 0, medium: 0, hard: 0 } }); expect(screen.queryByTestId('effort-easy')).toBeNull(); expect(screen.queryByTestId('effort-medium')).toBeNull(); expect(screen.queryByTestId('effort-hard')).toBeNull(); }); });