test(ComparisonView): cover parts of the widget with tests
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import {
|
||||
fireEvent,
|
||||
render,
|
||||
screen,
|
||||
} from '@testing-library/svelte';
|
||||
import Header from './Header.svelte';
|
||||
|
||||
const context = new Map([['responsive', { isMobile: false }]]);
|
||||
|
||||
describe('Header', () => {
|
||||
describe('Rendering', () => {
|
||||
it('renders a header element', () => {
|
||||
render(Header, { props: { isSidebarOpen: false, onSidebarToggle: () => {} }, context });
|
||||
expect(document.querySelector('header')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('shows "Open Config" title when sidebar is closed', () => {
|
||||
render(Header, { props: { isSidebarOpen: false, onSidebarToggle: () => {} }, context });
|
||||
expect(screen.getByTitle('Open Config')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('shows "Close Config" title when sidebar is open', () => {
|
||||
render(Header, { props: { isSidebarOpen: true, onSidebarToggle: () => {} }, context });
|
||||
expect(screen.getByTitle('Close Config')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('renders a text input for the sample text', () => {
|
||||
render(Header, { props: { isSidebarOpen: false, onSidebarToggle: () => {} }, context });
|
||||
expect(screen.getByPlaceholderText('The quick brown fox...')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('renders the theme toggle button', () => {
|
||||
render(Header, { props: { isSidebarOpen: false, onSidebarToggle: () => {} }, context });
|
||||
expect(screen.getByTitle('Toggle theme')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Interaction', () => {
|
||||
it('calls onSidebarToggle when toggle button is clicked', async () => {
|
||||
const onSidebarToggle = vi.fn();
|
||||
render(Header, { props: { isSidebarOpen: false, onSidebarToggle }, context });
|
||||
await fireEvent.click(screen.getByTitle('Open Config'));
|
||||
expect(onSidebarToggle).toHaveBeenCalledOnce();
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user