Files
EasyFlow/easyflow-ui-admin/app/src/api/sseRequestLifecycle.test.ts
陈子默 c7c301d3b9 fix: 统一工作流三个出口的错误反馈
- 关联 EASY-2,补齐安全错误、节点展示与执行标识

- 保留历史可读摘要并验证接口、SSE 与界面兼容
2026-09-08 10:49:02 +08:00

40 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
isInactiveSseRequest,
readSseRequestError,
SseRequestError,
} from './sseRequestLifecycle';
describe('sseRequestLifecycle', () => {
it('treats an explicit abort as an inactive request', () => {
const controller = new AbortController();
controller.abort();
expect(isInactiveSseRequest(controller.signal, 1, 1)).toBe(true);
});
it('treats a superseded request as inactive', () => {
const controller = new AbortController();
expect(isInactiveSseRequest(controller.signal, 2, 1)).toBe(true);
expect(isInactiveSseRequest(controller.signal, 1, 1)).toBe(false);
});
});
it('keeps HTTP rejection distinguishable from transport interruption', async () => {
for (const status of [400, 403, 500]) {
const error = await readSseRequestError(
new Response(JSON.stringify({ message: '运行请求被拒绝' }), { status }),
);
expect(error).toBeInstanceOf(SseRequestError);
expect(error.status).toBe(status);
expect(error.message).toBe('运行请求被拒绝');
}
const error = await readSseRequestError(
new Response('<html>PRIVATE_GATEWAY_BODY</html>', { status: 502 }),
);
expect(error.message).toContain('502');
expect(error.message).not.toContain('PRIVATE_GATEWAY_BODY');
});