feat(platform): add notification reachability checks

This commit is contained in:
lingniu
2026-07-05 14:31:32 +08:00
parent 109ba09934
commit ee257b4aa1
3 changed files with 229 additions and 0 deletions

View File

@@ -4057,6 +4057,14 @@ test('renders notification rules as a standalone operations page', async () => {
expect(screen.getByText('升级风险')).toBeInTheDocument();
expect(screen.getByText('链路前置')).toBeInTheDocument();
expect(screen.getByRole('button', { name: '复制通知覆盖报告' })).toBeInTheDocument();
expect(screen.getByText('通知可达性检查')).toBeInTheDocument();
expect(screen.getByText('避免告警已经触发但无人收到或无法闭环。', { exact: false })).toBeInTheDocument();
expect(screen.getByText('阻断 1 / 风险 0')).toBeInTheDocument();
expect(screen.getAllByText('已超时').length).toBeGreaterThan(0);
expect(screen.getAllByText('1 条待通知').length).toBeGreaterThan(0);
expect(screen.getAllByText('对象:接入运维 + 业务责任人;渠道:邮件 / 企业微信升级30 分钟升级').length).toBeGreaterThan(0);
expect(screen.getByText('立即升级责任人并同步业务侧')).toBeInTheDocument();
expect(screen.getByRole('button', { name: '复制通知可达性检查' })).toBeInTheDocument();
expect(fetchMock).toHaveBeenCalledWith(expect.stringContaining('/api/alert-events/notification-plan?limit=50'), undefined);
fireEvent.click(screen.getByRole('button', { name: '复制通知规则Runbook' }));
@@ -4099,6 +4107,13 @@ test('renders notification rules as a standalone operations page', async () => {
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('通知渠道:邮件 / 企业微信;每日汇总邮件'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('平台接入'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('主策略P0 实时中断 / 接入运维 + 业务责任人 / 邮件 / 企业微信'));
fireEvent.click(screen.getByRole('button', { name: '复制通知可达性检查' }));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('【通知可达性检查】'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('可达结论:阻断 1 / 需跟进 0 / 可触达 1'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('平台接入 / 已超时'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('渠道:邮件 / 企业微信'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('证据1/1 完整'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('下一步:立即升级责任人并同步业务侧'));
fireEvent.click(screen.getByRole('button', { name: '复制SLA升级报告' }));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('【告警SLA升级报告】'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('升级态势:已超时 1 / 即将升级 0 / 正常跟进 0'));