zyc ffe92f7b15 Initial commit: 即梦视频生成平台
- web/: React + Vite + TypeScript 前端
- backend/: Django + DRF + SimpleJWT 后端
- prototype/: HTML 设计原型
- docs/: PRD 和设计评审文档
- test: 单元测试 + E2E 极限测试
2026-03-13 09:59:33 +08:00

21 lines
1014 B
TypeScript

import '@testing-library/jest-dom';
import { vi } from 'vitest';
// Mock URL.createObjectURL and URL.revokeObjectURL for jsdom
URL.createObjectURL = vi.fn(() => 'blob:mock-url');
URL.revokeObjectURL = vi.fn();
// Always provide a working localStorage mock — jsdom/node may have a broken one
// that causes `localStorage.getItem is not a function` in Vitest 4.x
const _store: Record<string, string> = {};
const mockStorage = {
getItem: (key: string) => _store[key] ?? null,
setItem: (key: string, value: string) => { _store[key] = String(value); },
removeItem: (key: string) => { delete _store[key]; },
clear: () => { Object.keys(_store).forEach(k => delete _store[k]); },
get length() { return Object.keys(_store).length; },
key: (i: number) => Object.keys(_store)[i] ?? null,
};
Object.defineProperty(globalThis, 'localStorage', { value: mockStorage, writable: true, configurable: true });
Object.defineProperty(window, 'localStorage', { value: mockStorage, writable: true, configurable: true });