| import '@testing-library/jest-dom'; |
| // 在测试中禁用console.log以减少噪音 |
| // Mock window.matchMedia |
| Object.defineProperty(window, 'matchMedia', { |
| value: jest.fn().mockImplementation(query => ({ |
| addListener: jest.fn(), // deprecated |
| removeListener: jest.fn(), // deprecated |
| addEventListener: jest.fn(), |
| removeEventListener: jest.fn(), |
| dispatchEvent: jest.fn(), |
| global.ResizeObserver = jest.fn().mockImplementation(() => ({ |
| // Mock IntersectionObserver |
| global.IntersectionObserver = jest.fn().mockImplementation(() => ({ |
| const localStorageMock: Storage = { |
| global.localStorage = localStorageMock; |
| global.sessionStorage = localStorageMock; |