mirror of
https://github.com/nasa/openmct.git
synced 2024-12-22 06:27:48 +00:00
95393b269e
Update tests for dialog/overlay services to match changes introduced to simplify implementation of information overlays, such as the About dialog, WTD-667.
91 lines
3.4 KiB
JavaScript
91 lines
3.4 KiB
JavaScript
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
|
|
/**
|
|
* MCTIncudeSpec. Created by vwoeltje on 11/6/14.
|
|
*/
|
|
define(
|
|
["../src/DialogService"],
|
|
function (DialogService) {
|
|
"use strict";
|
|
|
|
describe("The dialog service", function () {
|
|
var mockOverlayService,
|
|
mockQ,
|
|
mockLog,
|
|
mockOverlay,
|
|
mockDeferred,
|
|
dialogService;
|
|
|
|
beforeEach(function () {
|
|
mockOverlayService = jasmine.createSpyObj(
|
|
"overlayService",
|
|
[ "createOverlay" ]
|
|
);
|
|
mockQ = jasmine.createSpyObj(
|
|
"$q",
|
|
[ "defer" ]
|
|
);
|
|
mockLog = jasmine.createSpyObj(
|
|
"$log",
|
|
[ "warn", "info", "debug" ]
|
|
);
|
|
mockOverlay = jasmine.createSpyObj(
|
|
"overlay",
|
|
[ "dismiss" ]
|
|
);
|
|
mockDeferred = jasmine.createSpyObj(
|
|
"deferred",
|
|
[ "resolve", "reject"]
|
|
);
|
|
mockDeferred.promise = "mock promise";
|
|
|
|
mockQ.defer.andReturn(mockDeferred);
|
|
mockOverlayService.createOverlay.andReturn(mockOverlay);
|
|
|
|
dialogService = new DialogService(
|
|
mockOverlayService,
|
|
mockQ,
|
|
mockLog
|
|
);
|
|
});
|
|
|
|
it("adds an overlay when user input is requested", function () {
|
|
dialogService.getUserInput({}, {});
|
|
expect(mockOverlayService.createOverlay).toHaveBeenCalled();
|
|
});
|
|
|
|
it("allows user input to be canceled", function () {
|
|
dialogService.getUserInput({}, { someKey: "some value" });
|
|
mockOverlayService.createOverlay.mostRecentCall.args[1].cancel();
|
|
expect(mockDeferred.reject).toHaveBeenCalled();
|
|
expect(mockDeferred.resolve).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("passes back the result of user input when confirmed", function () {
|
|
var value = { someKey: 42 };
|
|
dialogService.getUserInput({}, value);
|
|
mockOverlayService.createOverlay.mostRecentCall.args[1].confirm();
|
|
expect(mockDeferred.reject).not.toHaveBeenCalled();
|
|
expect(mockDeferred.resolve).toHaveBeenCalledWith(value);
|
|
});
|
|
|
|
it("logs a warning when a dialog is already showing", function () {
|
|
dialogService.getUserInput({}, {});
|
|
expect(mockLog.warn).not.toHaveBeenCalled();
|
|
dialogService.getUserInput({}, {});
|
|
expect(mockLog.warn).toHaveBeenCalled();
|
|
expect(mockDeferred.reject).toHaveBeenCalled();
|
|
});
|
|
|
|
it("can show multiple dialogs if prior ones are dismissed", function () {
|
|
dialogService.getUserInput({}, {});
|
|
expect(mockLog.warn).not.toHaveBeenCalled();
|
|
mockOverlayService.createOverlay.mostRecentCall.args[1].confirm();
|
|
dialogService.getUserInput({}, {});
|
|
expect(mockLog.warn).not.toHaveBeenCalled();
|
|
expect(mockDeferred.reject).not.toHaveBeenCalled();
|
|
});
|
|
|
|
});
|
|
}
|
|
); |