UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

85 lines 3.75 kB
import normalizeSelectedInstances from "./normalizeSelectedInstances"; describe("normalizeSelectedInstances", function () { var mockInstances = { "system.cpu@node1": { id: "system.cpu", nm: "cpu_usage@Node 1" }, "system.cpu@node2": { id: "system.cpu", nm: "cpu_usage@Node 2" }, "system.memory@node1": { id: "system.memory", nm: "memory_usage@Node 1" }, "app.nginx@node3": { id: "app.nginx", nm: "nginx_requests@Node 3" } }; it("should return empty array for empty selectedInstances", function () { var result = normalizeSelectedInstances([], mockInstances); expect(result).toEqual([]); }); it("should return selectedInstances if instances is not an object", function () { var selected = ["system.cpu@node1"]; var result = normalizeSelectedInstances(selected, null); expect(result).toEqual(selected); }); it("should keep exact key match", function () { var selected = ["system.cpu@node1"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result).toEqual(["system.cpu@node1"]); }); it("should match instance id without @ to all instances with that id", function () { var selected = ["system.cpu"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.cpu@node2"]); }); it("should match with prefix wildcard *", function () { var selected = ["system.cpu*"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.cpu@node2"]); }); it("should match with suffix wildcard *", function () { var selected = ["*@node1"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.memory@node1"]); }); it("should match with both wildcards *", function () { var selected = ["*cpu*"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.cpu@node2"]); }); it("should match instance name", function () { var selected = ["cpu_usage"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.cpu@node2"]); }); it("should match instance name with wildcard", function () { var selected = ["*Node 1"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.memory@node1"]); }); it("should remove duplicates", function () { var selected = ["system.cpu", "system.cpu@node1", "system.cpu*"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.cpu@node2"]); }); it("should omit selections that dont match anything", function () { var selected = ["nonexistent", "system.cpu"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["system.cpu@node1", "system.cpu@node2"]); }); it("should handle multiple different selections", function () { var selected = ["system.memory", "app.nginx@node3"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["app.nginx@node3", "system.memory@node1"]); }); it("should skip invalid selections", function () { var selected = ["system.cpu", null, "", undefined, "app.nginx"]; var result = normalizeSelectedInstances(selected, mockInstances); expect(result.sort()).toEqual(["app.nginx@node3", "system.cpu@node1", "system.cpu@node2"]); }); });