mirror of
https://github.com/nasa/openmct.git
synced 2024-12-22 06:27:48 +00:00
2b1fdc2204
Add specs for controllers in the commonUI/general bundle. WTD-574.
73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
|
|
define(
|
|
["../src/ClickAwayController"],
|
|
function (ClickAwayController) {
|
|
"use strict";
|
|
|
|
describe("The click-away controller", function () {
|
|
var mockScope,
|
|
mockDocument,
|
|
controller;
|
|
|
|
beforeEach(function () {
|
|
mockScope = jasmine.createSpyObj(
|
|
"$scope",
|
|
[ "$apply" ]
|
|
);
|
|
mockDocument = jasmine.createSpyObj(
|
|
"$document",
|
|
[ "on", "off" ]
|
|
);
|
|
controller = new ClickAwayController(mockScope, mockDocument);
|
|
});
|
|
|
|
it("is initially inactive", function () {
|
|
expect(controller.isActive()).toBe(false);
|
|
});
|
|
|
|
it("does not listen to the document before being toggled", function () {
|
|
expect(mockDocument.on).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("tracks enabled/disabled state when toggled", function () {
|
|
controller.toggle();
|
|
expect(controller.isActive()).toBe(true);
|
|
controller.toggle();
|
|
expect(controller.isActive()).toBe(false);
|
|
controller.toggle();
|
|
expect(controller.isActive()).toBe(true);
|
|
controller.toggle();
|
|
expect(controller.isActive()).toBe(false);
|
|
});
|
|
|
|
it("allows active state to be explictly specified", function () {
|
|
controller.setState(true);
|
|
expect(controller.isActive()).toBe(true);
|
|
controller.setState(true);
|
|
expect(controller.isActive()).toBe(true);
|
|
controller.setState(false);
|
|
expect(controller.isActive()).toBe(false);
|
|
controller.setState(false);
|
|
expect(controller.isActive()).toBe(false);
|
|
});
|
|
|
|
it("registers a mouse listener when activated", function () {
|
|
controller.setState(true);
|
|
expect(mockDocument.on).toHaveBeenCalled();
|
|
});
|
|
|
|
it("deactivates and detaches listener on document click", function () {
|
|
var callback;
|
|
controller.setState(true);
|
|
callback = mockDocument.on.mostRecentCall.args[1];
|
|
callback();
|
|
expect(controller.isActive()).toEqual(false);
|
|
expect(mockDocument.off).toHaveBeenCalledWith("mouseup", callback);
|
|
});
|
|
|
|
|
|
|
|
});
|
|
}
|
|
); |