Files
hms/apps/web/src/pages/health/RealtimeMonitor.test.tsx
iven 70aacf47a0
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled
feat(web): IoT + FHIR V1 Plan 5 — Web 前端实施
- API 层: deviceReadings 日聚合查询 + OAuth 合作方 CRUD 接口
- 常量: 设备连接状态/连接类型/实时监控指标常量
- Hook: useVitalSSE — 复用全局 SSE 连接的 vital_update 事件
- 页面: RealtimeMonitor 实时体征监控台 (SSE + 告警排序)
- 页面: OAuthClientList FHIR 合作方管理 (CRUD + Secret 重置)
- 增强: DeviceManage 设备状态/固件/连接类型列 + 状态筛选
- 路由: 新增 3 个懒加载路由
- 测试: RealtimeMonitor + OAuthClientList 单元测试
2026-05-04 02:40:57 +08:00

38 lines
1.0 KiB
TypeScript

import { describe, it, expect, vi } from 'vitest';
import { render, screen, waitFor } from '@testing-library/react';
import { BrowserRouter } from 'react-router-dom';
import RealtimeMonitor from './RealtimeMonitor';
vi.mock('../../api/health/alerts', () => ({
alertApi: {
list: vi.fn().mockResolvedValue({ data: [], total: 0 }),
},
}));
vi.mock('../../hooks/useVitalSSE', () => ({
useVitalSSE: vi.fn().mockReturnValue({
connected: true,
patientVitals: new Map(),
lastUpdate: null,
}),
}));
vi.mock('../../components/PageContainer', () => ({
PageContainer: ({ children, title, actions }: { children: React.ReactNode; title: string; actions?: React.ReactNode }) => (
<div><h1>{title}</h1>{actions}{children}</div>
),
}));
describe('RealtimeMonitor', () => {
it('renders page title', async () => {
render(
<BrowserRouter>
<RealtimeMonitor />
</BrowserRouter>,
);
await waitFor(() => {
expect(screen.getByText('实时体征监控')).toBeDefined();
});
});
});