feat: expand intelligent investigation workspace
This commit is contained in:
@@ -130,6 +130,35 @@ function taskPanel(task: OperationalTask, overrides: Partial<ComponentProps<type
|
||||
return { ...props, rerender };
|
||||
}
|
||||
|
||||
it("keeps fixed question answers in the report and focuses them from a data gap", () => {
|
||||
const task: OperationalTask = { ...taskBase, actions: [], active_run: null, lifecycle_status: "waiting_human",
|
||||
questions: [{ question_request_id: "70000000-0000-4000-8000-000000000001", task_id: taskBase.task_id,
|
||||
run_id: "70000000-0000-4000-8000-000000000002", source_session_id: "s", execution_generation: taskBase.execution_generation,
|
||||
status: "pending", version: 1, created_at: taskBase.created_at, answered_at: null, answered_by: null, answers: [],
|
||||
questions: [{ question_id: "sampling", title: "是否有采样记录", body: "请补充采样信息", options: [], mode: "single", allow_custom: true, required: true }] }],
|
||||
latest_report: { ...taskBase.latest_report!, report: { ...taskBase.latest_report!.report,
|
||||
data_gaps: [{ gap_id: "sampling", missing_data: "采样记录", scope: "事件时段", impact: "待核验",
|
||||
required_data: "采样记录", evidence_refs: ["e-1"], blocking: false }] } }
|
||||
};
|
||||
const props = taskPanel(task);
|
||||
const questions = screen.getByRole("region", { name: "调查提问" });
|
||||
questions.scrollIntoView = vi.fn();
|
||||
fireEvent.click(screen.getByRole("button", { name: "回答当前调查问题" }));
|
||||
expect(questions).toHaveFocus();
|
||||
expect(questions.scrollIntoView).toHaveBeenCalled();
|
||||
expect(props.onContinue).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("labels free discussion separately when no fixed question is pending", () => {
|
||||
const props = taskPanel({ ...taskBase, latest_report: { ...taskBase.latest_report!, report: {
|
||||
...taskBase.latest_report!.report, data_gaps: [{ gap_id: "sampling", missing_data: "采样记录", scope: "事件时段",
|
||||
impact: "待核验", required_data: "采样记录", evidence_refs: ["e-1"], blocking: false }]
|
||||
} } });
|
||||
expect(screen.queryByRole("button", { name: "补充事实" })).not.toBeInTheDocument();
|
||||
fireEvent.click(screen.getByRole("button", { name: "讨论此缺口" }));
|
||||
expect(props.onContinue).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("references the selected report round instead of the latest task round, including legacy reports", () => {
|
||||
const task = { ...taskBase, execution_generation: 2 };
|
||||
const { rerender, ...props } = taskPanel(task);
|
||||
@@ -191,7 +220,7 @@ it("opens the execution record bound to the selected report round", async () =>
|
||||
fireEvent.click(await screen.findByRole("button", { name: /第 1 轮 · 报告第 1 版/ }));
|
||||
expect(screen.getByText("调查任务 · 第 1 轮", { exact: true })).toBeVisible();
|
||||
expect(screen.queryByText("调查任务 · 第 2 轮", { exact: true })).not.toBeInTheDocument();
|
||||
fireEvent.click(screen.getByRole("button", { name: "执行记录", hidden: true }));
|
||||
fireEvent.click(screen.getByRole("button", { name: "执行记录" }));
|
||||
|
||||
await waitFor(() => expect(onViewExecutionHistory).toHaveBeenCalledWith({
|
||||
executionGeneration: 1,
|
||||
|
||||
Reference in New Issue
Block a user