mirror of
https://github.com/nasa/openmct.git
synced 2025-06-13 04:38:15 +00:00
[Common UI] Fill in dialog specs
Fill in specs for bundle platform/commonUI/dialog, which provides the ability to show dialogs. One of the common user interface elements being transitioned for WTD-574.
This commit is contained in:
@ -9,21 +9,81 @@ define(
|
||||
"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[0].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[0].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[0].confirm();
|
||||
dialogService.getUserInput({}, {});
|
||||
expect(mockLog.warn).not.toHaveBeenCalled();
|
||||
expect(mockDeferred.reject).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
});
|
||||
|
Reference in New Issue
Block a user