salix/modules/ticket/front/descriptor-popover/index.spec.js

128 lines
4.6 KiB
JavaScript
Raw Normal View History

import './index.js';
2019-02-12 13:40:13 +00:00
describe('ticket Component vnTicketDescriptorPopover', () => {
let $httpBackend;
let $scope;
let controller;
let $element;
let $timeout;
2019-09-13 14:09:14 +00:00
beforeEach(angular.mock.module('ticket', $translateProvider => {
$translateProvider.translations('en', {});
}));
2019-02-12 13:40:13 +00:00
beforeEach(angular.mock.inject(($componentController, $rootScope, _$httpBackend_, _$timeout_) => {
$httpBackend = _$httpBackend_;
$timeout = _$timeout_;
$element = angular.element(`<div></div>`);
$scope = $rootScope.$new();
$scope.popover = {relocate: () => {}, show: () => {}};
controller = $componentController('vnTicketDescriptorPopover', {$scope, $element});
}));
2019-02-12 13:40:13 +00:00
describe('ticketFk()', () => {
it(`should not apply any changes if the received id is the same stored in _ticketFk`, () => {
controller.ticket = 'I exist!';
controller._ticketFk = 1;
spyOn(controller, 'getCard');
controller.ticketFk = 1;
2019-02-12 13:40:13 +00:00
expect(controller.ticket).toEqual('I exist!');
expect(controller._ticketFk).toEqual(1);
expect(controller.getCard).not.toHaveBeenCalled();
});
2019-02-12 13:40:13 +00:00
it(`should set the received id into _ticketFk, set the ticket to null and then call getCard()`, () => {
controller.ticket = `Please don't`;
controller._ticketFk = 1;
spyOn(controller, 'getCard');
controller.ticketFk = 999;
2019-02-12 13:40:13 +00:00
expect(controller.ticket).toBeNull();
expect(controller._ticketFk).toEqual(999);
expect(controller.getCard).toHaveBeenCalledWith();
});
2019-02-12 13:40:13 +00:00
});
2019-02-12 13:40:13 +00:00
describe('ticket()', () => {
it(`should save the ticket into _ticket and then call relocate()`, () => {
spyOn(controller.$.popover, 'relocate');
controller.ticket = `i'm the ticket!`;
$timeout.flush();
2019-02-12 13:40:13 +00:00
expect(controller._ticket).toEqual(`i'm the ticket!`);
expect(controller.$.popover.relocate).toHaveBeenCalledWith();
});
2019-02-12 13:40:13 +00:00
});
2019-02-12 13:40:13 +00:00
describe('show()', () => {
it(`should call the show()`, () => {
spyOn(controller.$.popover, 'show');
controller.show();
2019-02-12 13:40:13 +00:00
expect(controller.$.popover.show).toHaveBeenCalledWith();
2018-10-18 09:41:25 +00:00
});
2019-02-12 13:40:13 +00:00
});
2018-10-18 09:41:25 +00:00
2019-02-12 13:40:13 +00:00
describe('getCard()', () => {
it(`should perform a get query to store the ticket data into the controller`, () => {
controller.ticketFk = 1;
controller.canceler = null;
let response = {};
2018-10-18 09:41:25 +00:00
2019-02-12 13:40:13 +00:00
let filter = {
include: [
{
relation: 'warehouse',
scope: {
fields: ['name']
}
},
{
relation: 'agencyMode',
scope: {
fields: ['name']
}
},
{
relation: 'client',
scope: {
fields: ['salesPersonFk', 'name', 'isActive', 'isFreezed', 'isTaxDataChecked'],
include: {
relation: 'salesPerson',
scope: {
fields: ['userFk'],
include: {
relation: 'user',
scope: {
fields: ['nickname']
}
}
2018-10-18 09:41:25 +00:00
}
}
2019-02-12 13:40:13 +00:00
}
},
{
relation: 'state',
scope: {
fields: ['stateFk'],
include: {
relation: 'state',
fields: ['id', 'name'],
2018-10-18 09:41:25 +00:00
}
}
2019-02-12 13:40:13 +00:00
}
]
};
let json = encodeURIComponent(JSON.stringify(filter));
$httpBackend.when('GET', `/ticket/api/Tickets/${controller._ticketFk}?filter=${json}`).respond(response);
$httpBackend.expect('GET', `/ticket/api/Tickets/${controller._ticketFk}?filter=${json}`);
controller.getCard();
$httpBackend.flush();
2018-10-18 09:41:25 +00:00
2019-02-12 13:40:13 +00:00
expect(controller.ticket).toEqual(response);
});
});
});
2019-02-12 13:40:13 +00:00