Addresses QA concern: renders no segments when easy=0, medium=0, hard=0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
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();
|
||
});
|
||
});
|