fix: preserve SCADA comparison device coverage
This commit is contained in:
@@ -21,6 +21,32 @@ const legacyComparison = (id: string, metric = "压力", unit = "m", date = "202
|
||||
};
|
||||
|
||||
describe("investigation comparison groups", () => {
|
||||
it("groups all four bound devices even when titles differ and one device has no observations", () => {
|
||||
const ids = ["486033", "542017", "541061", "524529"];
|
||||
const charts = ids.map((id, index) => {
|
||||
const command = comparison(id, "流量", "m3/h");
|
||||
command.chart.title = `不同的标题 ${index}`;
|
||||
command.chart.scada = { role: "comparison", metric: "flow", unit: "m3/h",
|
||||
window_start: "2026-07-16T05:00:00+08:00", window_end: "2026-07-16T08:00:00+08:00" };
|
||||
command.chart.series.forEach((series, offset) => {
|
||||
series.device_id = id;
|
||||
series.day_offset = offset;
|
||||
series.name = offset ? "历史" : "当前";
|
||||
if (id === "524529") { series.data = [null, null]; series.sample_times = [null, null]; }
|
||||
});
|
||||
return command;
|
||||
});
|
||||
const groups = groupInvestigationCharts(charts);
|
||||
expect(groups).toHaveLength(1);
|
||||
expect(groups[0].items.map((item) => item.label)).toEqual(ids);
|
||||
expect(groups[0].id).toBe(groupInvestigationCharts([charts[3]])[0].id);
|
||||
expect(groups[0].items[3].command).toBe(charts[3]);
|
||||
charts[3].chart.scada!.unit = "m³/h";
|
||||
charts[3].chart.scada!.window_start = "2026-07-15T21:00:00Z";
|
||||
charts[3].chart.scada!.window_end = "2026-07-16T00:00:00Z";
|
||||
expect(groupInvestigationCharts(charts)).toHaveLength(1);
|
||||
});
|
||||
|
||||
it("groups pressure objects and pipe flow objects separately without changing data or evidence", () => {
|
||||
const charts = [comparison("170486"), comparison("175618"), comparison("542017", "管流", "m³/h"), comparison("486033", "管流", "m³/h")];
|
||||
const groups = groupInvestigationCharts(charts);
|
||||
|
||||
Reference in New Issue
Block a user