mirror of
https://github.com/openMF/community-app.git
synced 2026-02-06 14:56:57 +00:00
79 lines
3.0 KiB
JavaScript
79 lines
3.0 KiB
JavaScript
describe("dialogDirective", function () {
|
|
var scope, eventsCallbacks;
|
|
beforeEach(function () {
|
|
eventsCallbacks = {};
|
|
$ = jQuery = jasmine.createSpy('jQuery');
|
|
$.dialog = jasmine.createSpy('$.dialog()');
|
|
$.andCallFake(function (selector) {
|
|
if (selector === "test-element") return $;
|
|
});
|
|
scope = {
|
|
$eval: jasmine.createSpy("$scope.$eval"),
|
|
$on: jasmine.createSpy("$scope.$on").andCallFake(function (eventName, callback) {
|
|
eventsCallbacks[eventName] = callback;
|
|
})
|
|
};
|
|
|
|
this.linkFunction = mifosX.directives.dialogDirective();
|
|
});
|
|
|
|
describe("Event actions", function () {
|
|
beforeEach(function () {
|
|
scope.$eval.andReturn(
|
|
{show: 'test_event_show1,test_event_show2', hide: 'test_event_hide1,test_event_hide2'}
|
|
);
|
|
this.linkFunction(scope, "test-element", {mfDialog: "test_map"});
|
|
});
|
|
|
|
it("should parse the event map", function () {
|
|
expect(scope.$eval).toHaveBeenCalledWith("test_map");
|
|
});
|
|
_.each(['test_event_show1', 'test_event_show2', 'test_event_hide1', 'test_event_hide2'], function (name) {
|
|
it("should setup the " + name + " listener", function () {
|
|
expect(scope.$on).toHaveBeenCalledWith(name, jasmine.any(Function));
|
|
});
|
|
});
|
|
_.times(2, function (i) {
|
|
it("should open the dialog with a given title", function () {
|
|
eventsCallbacks["test_event_show" + (i + 1)]({}, {title: 'test-title'});
|
|
|
|
expect($.dialog).toHaveBeenCalledWith('option', 'title', 'test-title');
|
|
expect($.dialog).toHaveBeenCalledWith('open');
|
|
});
|
|
it("should close the dialog", function () {
|
|
eventsCallbacks["test_event_hide" + (i + 1)]({}, {});
|
|
|
|
expect($.dialog).toHaveBeenCalledWith('close');
|
|
})
|
|
});
|
|
});
|
|
|
|
describe("Dialog options", function () {
|
|
beforeEach(function () {
|
|
scope.$eval.andCallFake(function (attr) {
|
|
if (attr === "test_options") return {resizable: true, modal: true};
|
|
if (attr === "test_map") return {show: 'test_event', hide: 'test_event'};
|
|
});
|
|
});
|
|
|
|
it("should use default options", function () {
|
|
this.linkFunction(scope, "test-element", {mfDialog: "test_map"});
|
|
|
|
expect($.dialog).toHaveBeenCalledWith({
|
|
autoOpen: false,
|
|
draggable: false,
|
|
resizable: false
|
|
});
|
|
});
|
|
it("should override the options", function () {
|
|
this.linkFunction(scope, "test-element", {mfDialog: "test_map", mfDialogOptions: "test_options"});
|
|
|
|
expect($.dialog).toHaveBeenCalledWith({
|
|
autoOpen: false,
|
|
draggable: false,
|
|
resizable: true,
|
|
modal: true
|
|
});
|
|
});
|
|
});
|
|
}); |