diff --git a/ui/src/Components/Grid/index.test.js b/ui/src/Components/Grid/index.test.js new file mode 100644 index 000000000..d2a23fdcb --- /dev/null +++ b/ui/src/Components/Grid/index.test.js @@ -0,0 +1,58 @@ +import React from "react"; + +import { shallow } from "enzyme"; + +import { AlertStore } from "Stores/AlertStore"; +import { Settings } from "Stores/Settings"; +import { SilenceFormStore } from "Stores/SilenceFormStore"; +import { Grid } from "."; + +let alertStore; +let settingsStore; +let silenceFormStore; + +beforeEach(() => { + alertStore = new AlertStore([]); + settingsStore = new Settings(); + silenceFormStore = new SilenceFormStore(); +}); + +const ShallowGrid = () => { + return shallow( + + ); +}; + +describe("", () => { + it("renders only AlertGrid when all upstreams are healthy", () => { + const tree = ShallowGrid(); + expect(tree.text()).toBe(""); + }); + + it("renders UpstreamError for each unhealthy upstream", () => { + alertStore.data.upstreams = { + counters: { total: 3, healthy: 1, failed: 2 }, + instances: [ + { name: "am1", uri: "http://am1", error: "error 1" }, + { name: "am2", uri: "file:///mock", error: "" }, + { name: "am3", uri: "http://am1", error: "error 2" } + ] + }; + const tree = ShallowGrid(); + expect(tree.text()).toBe(""); + }); + + it("renders only FatalError on failed fetch", () => { + alertStore.status.error = "error"; + alertStore.data.upstreams = { + counters: { total: 0, healthy: 0, failed: 1 }, + instances: [{ name: "am", uri: "http://am1", error: "error" }] + }; + const tree = ShallowGrid(); + expect(tree.text()).toBe(""); + }); +});