添加了相关测试文件,引入Tailwindcss
Change-Id: I12054143571bb688590af0357125a0ed26ff2050
diff --git a/src/setupTests.js b/src/setupTests.js
new file mode 100644
index 0000000..fba964d
--- /dev/null
+++ b/src/setupTests.js
@@ -0,0 +1,48 @@
+// 这个文件包含测试环境的设置代码
+import { expect, afterEach } from 'vitest';
+import { cleanup } from '@testing-library/react';
+import * as matchers from '@testing-library/jest-dom';
+
+// 扩展 Vitest 的断言能力
+expect.extend(matchers);
+
+// 每个测试后自动清理
+afterEach(() => {
+ cleanup();
+});
+
+// 模拟 window.matchMedia
+Object.defineProperty(window, 'matchMedia', {
+ writable: true,
+ value: vi.fn().mockImplementation(query => ({
+ matches: false,
+ media: query,
+ onchange: null,
+ addListener: vi.fn(), // 兼容旧版 API
+ removeListener: vi.fn(), // 兼容旧版 API
+ addEventListener: vi.fn(),
+ removeEventListener: vi.fn(),
+ dispatchEvent: vi.fn(),
+ })),
+});
+
+// 模拟 localStorage
+const localStorageMock = (() => {
+ let store = {};
+ return {
+ getItem: (key) => store[key] || null,
+ setItem: (key, value) => {
+ store[key] = value.toString();
+ },
+ removeItem: (key) => {
+ delete store[key];
+ },
+ clear: () => {
+ store = {};
+ },
+ };
+})();
+
+Object.defineProperty(window, 'localStorage', {
+ value: localStorageMock,
+});
\ No newline at end of file