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:
parent
a744b33578
commit
13637ec881
2 changed files with 17 additions and 22 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue