mirror of
https://github.com/nasa/openmct.git
synced 2025-06-15 13:48:12 +00:00
[Plot] Restore coverage on PlotController
Restore full test coverage on PlotController after refactoring for WTD-625, stacked plots.
This commit is contained in:
@ -13,6 +13,7 @@ define(
|
|||||||
mockTelemetry, // mock telemetry controller
|
mockTelemetry, // mock telemetry controller
|
||||||
mockData,
|
mockData,
|
||||||
mockElement,
|
mockElement,
|
||||||
|
mockDomainObject,
|
||||||
controller;
|
controller;
|
||||||
|
|
||||||
function echo(i) { return i; }
|
function echo(i) { return i; }
|
||||||
@ -34,6 +35,10 @@ define(
|
|||||||
"element",
|
"element",
|
||||||
[ "getBoundingClientRect" ]
|
[ "getBoundingClientRect" ]
|
||||||
);
|
);
|
||||||
|
mockDomainObject = jasmine.createSpyObj(
|
||||||
|
"domainObject",
|
||||||
|
[ "getId", "getModel", "getCapability" ]
|
||||||
|
);
|
||||||
|
|
||||||
mockScope.telemetry = mockTelemetry;
|
mockScope.telemetry = mockTelemetry;
|
||||||
mockTelemetry.getResponse.andReturn([mockData]);
|
mockTelemetry.getResponse.andReturn([mockData]);
|
||||||
@ -76,8 +81,82 @@ define(
|
|||||||
// Just want to not have an exception
|
// Just want to not have an exception
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("draws lines when data becomes available", function () {
|
||||||
|
// Verify precondition
|
||||||
|
controller.getSubPlots().forEach(function (subplot) {
|
||||||
|
expect(subplot.getDrawingObject().lines)
|
||||||
|
.not.toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Make sure there actually are subplots being verified
|
||||||
|
expect(controller.getSubPlots().length > 0)
|
||||||
|
.toBeTruthy();
|
||||||
|
|
||||||
|
// Broadcast data
|
||||||
|
mockScope.$on.mostRecentCall.args[1]();
|
||||||
|
|
||||||
|
controller.getSubPlots().forEach(function (subplot) {
|
||||||
|
expect(subplot.getDrawingObject().lines)
|
||||||
|
.toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it("changes modes depending on number of objects", function () {
|
||||||
|
var expectedWatch = "telemetry.getTelemetryObjects()",
|
||||||
|
watchFunction;
|
||||||
|
|
||||||
|
// Find the watch for telemetry objects, which
|
||||||
|
// should change plot mode options
|
||||||
|
mockScope.$watch.calls.forEach(function (call) {
|
||||||
|
if (call.args[0] === expectedWatch) {
|
||||||
|
watchFunction = call.args[1];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
watchFunction([mockDomainObject]);
|
||||||
|
expect(controller.getModeOptions().length).toEqual(1);
|
||||||
|
|
||||||
|
watchFunction([
|
||||||
|
mockDomainObject,
|
||||||
|
mockDomainObject,
|
||||||
|
mockDomainObject
|
||||||
|
]);
|
||||||
|
expect(controller.getModeOptions().length).toEqual(2);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Interface tests follow; these will be delegated (mostly
|
||||||
|
// to PlotModeOptions, which is tested separately).
|
||||||
|
it("provides access to available plot mode options", function () {
|
||||||
|
expect(Array.isArray(controller.getModeOptions()))
|
||||||
|
.toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("provides a current plot mode", function () {
|
||||||
|
expect(controller.getMode().name)
|
||||||
|
.toEqual(jasmine.any(String));
|
||||||
|
});
|
||||||
|
|
||||||
|
it("allows plot mode to be changed", function () {
|
||||||
|
expect(function () {
|
||||||
|
controller.setMode(controller.getMode());
|
||||||
|
}).not.toThrow();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("provides an array of sub-plots", function () {
|
||||||
|
expect(Array.isArray(controller.getSubPlots()))
|
||||||
|
.toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("allows plots to be updated", function () {
|
||||||
|
expect(controller.update).not.toThrow();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("allows changing pan-zoom state", function () {
|
||||||
|
expect(controller.isZoomed).not.toThrow();
|
||||||
|
expect(controller.stepBackPanZoom).not.toThrow();
|
||||||
|
expect(controller.unzoom).not.toThrow();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
Reference in New Issue
Block a user