/// import { describe, it, expect } from "../../../../../test/lib/common"; import { ThresholdManager } from "../threshold_manager"; describe("ThresholdManager", function() { function plotOptionsScenario(desc, func) { describe(desc, function() { var ctx: any = { panel: { thresholds: [] }, options: { grid: { markings: [] } }, panelCtrl: {} }; ctx.setup = function(thresholds) { ctx.panel.thresholds = thresholds; var manager = new ThresholdManager(ctx.panelCtrl); manager.addFlotOptions(ctx.options, ctx.panel); }; func(ctx); }); } describe("When creating plot markings", () => { plotOptionsScenario("for simple gt threshold", ctx => { ctx.setup([ { op: "gt", value: 300, fill: true, line: true, colorMode: "critical" } ]); it("should add fill for threshold with fill: true", function() { var markings = ctx.options.grid.markings; expect(markings[0].yaxis.from).to.be(300); expect(markings[0].yaxis.to).to.be(Infinity); expect(markings[0].color).to.be("rgba(234, 112, 112, 0.12)"); }); it("should add line", function() { var markings = ctx.options.grid.markings; expect(markings[1].yaxis.from).to.be(300); expect(markings[1].yaxis.to).to.be(300); expect(markings[1].color).to.be("rgba(237, 46, 24, 0.60)"); }); }); plotOptionsScenario("for two gt thresholds", ctx => { ctx.setup([ { op: "gt", value: 200, fill: true, colorMode: "warning" }, { op: "gt", value: 300, fill: true, colorMode: "critical" } ]); it("should add fill for first thresholds to next threshold", function() { var markings = ctx.options.grid.markings; expect(markings[0].yaxis.from).to.be(200); expect(markings[0].yaxis.to).to.be(300); }); it("should add fill for last thresholds to infinity", function() { var markings = ctx.options.grid.markings; expect(markings[1].yaxis.from).to.be(300); expect(markings[1].yaxis.to).to.be(Infinity); }); }); plotOptionsScenario("for lt then gt threshold (inside)", ctx => { ctx.setup([ { op: "lt", value: 300, fill: true, colorMode: "critical" }, { op: "gt", value: 200, fill: true, colorMode: "critical" } ]); it("should add fill for first thresholds to next threshold", function() { var markings = ctx.options.grid.markings; expect(markings[0].yaxis.from).to.be(300); expect(markings[0].yaxis.to).to.be(200); }); it("should add fill for last thresholds to itself", function() { var markings = ctx.options.grid.markings; expect(markings[1].yaxis.from).to.be(200); expect(markings[1].yaxis.to).to.be(200); }); }); plotOptionsScenario("for gt then lt threshold (outside)", ctx => { ctx.setup([ { op: "gt", value: 300, fill: true, colorMode: "critical" }, { op: "lt", value: 200, fill: true, colorMode: "critical" } ]); it("should add fill for first thresholds to next threshold", function() { var markings = ctx.options.grid.markings; expect(markings[0].yaxis.from).to.be(300); expect(markings[0].yaxis.to).to.be(Infinity); }); it("should add fill for last thresholds to itself", function() { var markings = ctx.options.grid.markings; expect(markings[1].yaxis.from).to.be(200); expect(markings[1].yaxis.to).to.be(-Infinity); }); }); }); });