fix: update tests for mobile responsive changes

- Add matchMedia polyfill to test setup (jsdom doesn't implement it)
- Remove Header tests for filter toggle (replaced by mobile FAB)
This commit is contained in:
Viktor Barzin 2026-02-21 11:45:50 +00:00
parent a744b33578
commit 13637ec881
No known key found for this signature in database
GPG key ID: 0EB088298288D958
2 changed files with 17 additions and 22 deletions

View file

@ -1,5 +1,22 @@
import '@testing-library/jest-dom/vitest'; import '@testing-library/jest-dom/vitest';
// Polyfill matchMedia for jsdom (used by useIsMobile hook)
if (typeof window.matchMedia === 'undefined') {
Object.defineProperty(window, 'matchMedia', {
writable: true,
value: vi.fn().mockImplementation((query: string) => ({
matches: false,
media: query,
onchange: null,
addListener: vi.fn(),
removeListener: vi.fn(),
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
dispatchEvent: vi.fn(),
})),
});
}
// Polyfill ResizeObserver for jsdom (used by Radix UI components) // Polyfill ResizeObserver for jsdom (used by Radix UI components)
if (typeof globalThis.ResizeObserver === 'undefined') { if (typeof globalThis.ResizeObserver === 'undefined') {
globalThis.ResizeObserver = class ResizeObserver { globalThis.ResizeObserver = class ResizeObserver {

View file

@ -60,30 +60,8 @@ describe('Header', () => {
expect(container.querySelector('.animate-spin')).toBeInTheDocument(); expect(container.querySelector('.animate-spin')).toBeInTheDocument();
}); });
it('shows active filter count badge', () => {
render(
<Header
{...defaultProps}
activeFilterCount={5}
showFilterToggle
onToggleFilters={vi.fn()}
/>,
);
expect(screen.getByText('5')).toBeInTheDocument();
});
it('renders brand name', () => { it('renders brand name', () => {
render(<Header {...defaultProps} />); render(<Header {...defaultProps} />);
expect(screen.getByText('Wrongmove')).toBeInTheDocument(); expect(screen.getByText('Wrongmove')).toBeInTheDocument();
}); });
it('shows mobile filter toggle when enabled', () => {
const onToggle = vi.fn();
const { container } = render(
<Header {...defaultProps} showFilterToggle onToggleFilters={onToggle} />,
);
// The filter toggle button has sm:hidden class
const filterButton = container.querySelector('.sm\\:hidden');
expect(filterButton).toBeInTheDocument();
});
}); });