Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. |
| 2 | // allows you to do things like: |
| 3 | // expect(element).toHaveTextContent(/react/i) |
| 4 | // learn more: https://github.com/testing-library/jest-dom |
| 5 | import '@testing-library/jest-dom'; |
| 6 | |
| 7 | // 模拟 localStorage |
| 8 | const localStorageMock = (function() { |
| 9 | let store = {}; |
| 10 | return { |
| 11 | getItem: jest.fn((key) => store[key] || null), |
| 12 | setItem: jest.fn((key, value) => { |
| 13 | store[key] = String(value); |
| 14 | }), |
| 15 | removeItem: jest.fn((key) => { |
| 16 | delete store[key]; |
| 17 | }), |
| 18 | clear: jest.fn(() => { |
| 19 | store = {}; |
| 20 | }) |
| 21 | }; |
| 22 | })(); |
| 23 | |
| 24 | // 挂载到全局 |
| 25 | Object.defineProperty(window, 'localStorage', { |
| 26 | value: localStorageMock, |
| 27 | writable: true // 必须设置为可写 |
| 28 | }); |