测试: - secure-storage: 26 tests (AES 加解密/明文 fallback/迁移/Base64 边界) - request.ts: 16 tests (扩展 ResponseCache/patientId 隔离/requestUnlimited) - mock-api: 修复 getCachedPatientId 缺失导致 health 测试失败 UX 无障碍 (10 组件): - SegmentTabs/DoctorTabBar: role=tablist/tab + aria-selected - PrimaryButton/SecondaryButton: role=button + aria-disabled/aria-busy - Loading/LoadingCard: role=status + aria-live=polite - EmptyState: role=status + aria-live=polite - ErrorState: role=alert + aria-live=assertive - TrendChart tooltip: role=tooltip + aria-live=polite - FormInput: aria-invalid + aria-label 焦点管理: - 新增 _focus-ring.scss mixin (focus + focus-visible) - 5 组件 SCSS 应用 focus-ring
23 lines
509 B
TypeScript
23 lines
509 B
TypeScript
import { vi } from 'vitest';
|
|
|
|
// 顶层 mock — vitest 自动提升,无警告
|
|
vi.mock('@/services/request', () => ({
|
|
api: {
|
|
get: vi.fn(),
|
|
post: vi.fn(),
|
|
put: vi.fn(),
|
|
delete: vi.fn(),
|
|
},
|
|
clearRequestCache: vi.fn(),
|
|
markLoggingOut: vi.fn(),
|
|
clearLoggingOut: vi.fn(),
|
|
getCachedPatientId: vi.fn(() => ''),
|
|
setCachedPatientId: vi.fn(),
|
|
resetForTesting: vi.fn(),
|
|
}));
|
|
|
|
/** 创建一个成功的 API 响应 */
|
|
export function apiOk<T>(data: T) {
|
|
return Promise.resolve(data);
|
|
}
|