88 lines
3.0 KiB
JavaScript
88 lines
3.0 KiB
JavaScript
|
import './index.js';
|
||
|
|
||
|
describe('worker Component vnWorkerDescriptorPopover', () => {
|
||
|
let $httpBackend;
|
||
|
let $httpParamSerializer;
|
||
|
let $scope;
|
||
|
let controller;
|
||
|
let $element;
|
||
|
|
||
|
beforeEach(ngModule('worker'));
|
||
|
|
||
|
beforeEach(angular.mock.inject(($componentController, $rootScope, _$httpBackend_, _$httpParamSerializer_) => {
|
||
|
$httpBackend = _$httpBackend_;
|
||
|
$httpParamSerializer = _$httpParamSerializer_;
|
||
|
$element = angular.element(`<div></div>`);
|
||
|
$scope = $rootScope.$new();
|
||
|
$scope.popover = {relocate: () => {}, show: () => {}};
|
||
|
controller = $componentController('vnWorkerDescriptorPopover', {$scope, $element});
|
||
|
}));
|
||
|
|
||
|
describe('workerFk()', () => {
|
||
|
it(`should not apply any changes if the received id is the same stored in _workerFk`, () => {
|
||
|
controller.worker = 'I exist!';
|
||
|
controller._workerFk = 1;
|
||
|
spyOn(controller, 'loadData');
|
||
|
controller.workerFk = 1;
|
||
|
|
||
|
expect(controller.worker).toEqual('I exist!');
|
||
|
expect(controller._workerFk).toEqual(1);
|
||
|
expect(controller.loadData).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it(`should set the received id into _workerFk, set the worker to null and then call loadData()`, () => {
|
||
|
controller.worker = `Please don't`;
|
||
|
controller._workerFk = 1;
|
||
|
spyOn(controller, 'loadData');
|
||
|
controller.workerFk = 999;
|
||
|
|
||
|
expect(controller.worker).toBeNull();
|
||
|
expect(controller._workerFk).toEqual(999);
|
||
|
expect(controller.loadData).toHaveBeenCalledWith();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('show()', () => {
|
||
|
it(`should call the show()`, () => {
|
||
|
spyOn(controller.$.popover, 'show');
|
||
|
controller.show();
|
||
|
|
||
|
expect(controller.$.popover.show).toHaveBeenCalledWith();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('loadData()', () => {
|
||
|
it(`should perform a get query to store the worker data into the controller`, () => {
|
||
|
controller.workerFk = 1;
|
||
|
controller.canceler = null;
|
||
|
let response = {};
|
||
|
|
||
|
let config = {
|
||
|
filter: {
|
||
|
include: [
|
||
|
{
|
||
|
relation: 'user',
|
||
|
scope: {fields: ['name', 'email']}
|
||
|
}, {
|
||
|
relation: 'client',
|
||
|
scope: {fields: ['fi']}
|
||
|
}, {
|
||
|
relation: 'sip',
|
||
|
scope: {fields: ['extension']}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
};
|
||
|
|
||
|
let json = $httpParamSerializer(config);
|
||
|
|
||
|
$httpBackend.whenGET(`api/Workers/${controller._workerFk}?${json}`).respond(response);
|
||
|
$httpBackend.expectGET(`api/Workers/${controller._workerFk}?${json}`);
|
||
|
controller.loadData();
|
||
|
$httpBackend.flush();
|
||
|
|
||
|
expect(controller.worker).toEqual(response);
|
||
|
});
|
||
|
});
|
||
|
});
|