50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
import { normalizeChartData } from "./ChatInlineChart";
|
|
|
|
describe("normalizeChartData", () => {
|
|
it("keeps standard bar chart series data", () => {
|
|
const result = normalizeChartData(["A", "B"], [
|
|
{ name: "数量", data: [3, 5], type: "bar" },
|
|
]);
|
|
|
|
expect(result).toEqual({
|
|
xData: ["A", "B"],
|
|
series: [{ name: "数量", data: [3, 5], type: "bar" }],
|
|
});
|
|
});
|
|
|
|
it("normalizes line chart point arrays into x labels and y values", () => {
|
|
const result = normalizeChartData(undefined, [
|
|
{ name: "压力", data: [["10:00", 12.5], ["11:00", 13.1]] },
|
|
]);
|
|
|
|
expect(result).toEqual({
|
|
xData: ["10:00", "11:00"],
|
|
series: [{ name: "压力", data: [12.5, 13.1], type: undefined }],
|
|
});
|
|
});
|
|
|
|
it("normalizes pie chart point objects into a single series", () => {
|
|
const result = normalizeChartData(undefined, [
|
|
{ name: "低风险", value: 8 },
|
|
{ name: "高风险", value: 2 },
|
|
]);
|
|
|
|
expect(result).toEqual({
|
|
xData: ["低风险", "高风险"],
|
|
series: [{ name: "数据", data: [8, 2], type: undefined }],
|
|
});
|
|
});
|
|
|
|
it("accepts a single series object", () => {
|
|
const result = normalizeChartData(["A", "B"], {
|
|
name: "流量",
|
|
values: ["1.2", "2.4"],
|
|
});
|
|
|
|
expect(result).toEqual({
|
|
xData: ["A", "B"],
|
|
series: [{ name: "流量", data: [1.2, 2.4], type: undefined }],
|
|
});
|
|
});
|
|
});
|