salix/front/core/components/dialog/dialog.spec.js

76 lines
2.8 KiB
JavaScript
Raw Normal View History

2017-10-05 12:28:57 +00:00
describe('Component vnDialog', () => {
let $element;
let controller;
2017-10-05 12:28:57 +00:00
2019-09-13 14:09:14 +00:00
beforeEach(angular.mock.module('vnCore', $translateProvider => {
$translateProvider.translations('en', {});
}));
2017-10-05 12:28:57 +00:00
beforeEach(angular.mock.inject($componentController => {
$element = angular.element('<vn-dialog></vn-dialog>');
2018-08-30 06:16:50 +00:00
controller = $componentController('vnDialog', {$element, $transclude: null});
controller.emit = jasmine.createSpy('emit');
2017-10-05 12:28:57 +00:00
}));
describe('show()', () => {
2018-08-30 06:16:50 +00:00
it(`should do nothing if controller.shown is defined`, () => {
controller.element = {style: {display: 'none'}};
controller.shown = true;
2017-10-05 12:28:57 +00:00
controller.show();
2018-08-30 06:16:50 +00:00
expect(controller.element.style.display).toEqual('none');
expect(controller.emit).not.toHaveBeenCalledWith('open');
2018-08-30 06:16:50 +00:00
});
it(`should set shown on the controller, set style.display on the element and emit onOpen() event`, () => {
2018-08-30 06:16:50 +00:00
controller.show();
expect(controller.element.style.display).toEqual('flex');
expect(controller.shown).toBeTruthy();
expect(controller.emit).toHaveBeenCalledWith('open');
2017-10-05 12:28:57 +00:00
});
});
describe('hide()', () => {
2018-08-30 06:16:50 +00:00
describe('fireResponse()', () => {
it(`should call onResponse() if it's defined in the controller`, () => {
controller.onResponse = () => {};
spyOn(controller, 'onResponse');
controller.hide();
expect(controller.onResponse).toHaveBeenCalledWith(jasmine.any(Object));
});
2017-10-05 12:28:57 +00:00
2018-08-30 06:16:50 +00:00
it(`should call onResponse() with a response`, () => {
let responseRes;
controller.onResponse = response => {
responseRes = response;
return false;
};
let responseRet = controller.fireResponse('answer');
expect(responseRes).toEqual({response: 'answer'});
expect(responseRet).toEqual(false);
});
2017-10-05 12:28:57 +00:00
});
2018-08-30 06:16:50 +00:00
describe('realHide()', () => {
it(`should do nothing if controller.shown is not defined`, () => {
controller.element = {style: {display: 'not none'}};
controller.hide();
expect(controller.element.style.display).toEqual('not none');
});
it(`should set lastEvent, shown and element.style.display to their expected values`, () => {
controller.shown = true;
controller.hide();
expect(controller.lastEvent).toBeFalsy();
expect(controller.shown).toBeFalsy();
expect(controller.element.style.display).toEqual('none');
});
});
});
2017-10-05 12:28:57 +00:00
});