salix/modules/ticket/front/component/index.spec.js

140 lines
4.6 KiB
JavaScript
Raw Permalink Normal View History

import './index.js';
2018-12-27 11:54:16 +00:00
import crudModel from 'core/mocks/crud-model';
describe('ticket', () => {
describe('Component vnTicketComponents', () => {
let controller;
2020-09-09 06:20:27 +00:00
let $httpBackend;
beforeEach(ngModule('ticket'));
2020-09-09 06:20:27 +00:00
beforeEach(inject(($componentController, $rootScope, $state, _$httpBackend_) => {
$state.params.id = '1';
let $scope = $rootScope.$new();
2020-09-09 06:20:27 +00:00
$httpBackend = _$httpBackend_;
$scope.model = crudModel;
$scope.model.data = [{
2020-09-09 06:20:27 +00:00
quantity: 1,
components: [
{
2020-09-09 06:20:27 +00:00
value: 5,
component: {
componentType: {
isBase: 1
}
2020-09-09 06:20:27 +00:00
}
},
{
2020-09-09 06:20:27 +00:00
value: 5,
component: {
componentType: {
isBase: 0
}
2020-09-09 06:20:27 +00:00
}
},
{
2020-09-09 06:20:27 +00:00
value: 5,
component: {
componentType: {
isBase: 0
}
2020-09-09 06:20:27 +00:00
}
}
2020-09-09 06:20:27 +00:00
]
},
{
2020-09-09 06:20:27 +00:00
quantity: 5,
components: [
{
2020-09-09 06:20:27 +00:00
value: 1,
component: {
componentType: {
isBase: 1
}
2020-09-09 06:20:27 +00:00
}
},
{
2020-09-09 06:20:27 +00:00
value: 1,
component: {
componentType: {
isBase: 0
}
2020-09-09 06:20:27 +00:00
}
},
{
2020-09-09 06:20:27 +00:00
value: 1,
component: {
componentType: {
isBase: 0
}
2020-09-09 06:20:27 +00:00
}
},
2020-09-09 06:20:27 +00:00
]
}];
2020-03-18 07:35:59 +00:00
const $element = angular.element('<vn-ticket-components></vn-ticket-components>');
controller = $componentController('vnTicketComponents', {$element, $scope});
}));
describe('base()', () => {
it(`should return the sum from all componenets base in each sale`, () => {
let result = controller.base();
expect(result).toEqual(10);
});
});
2020-09-09 06:20:27 +00:00
describe('ticket setter', () => {
2020-09-09 13:49:59 +00:00
it('should set the ticket data and then call getTheoricalCost() and getComponentsSum()', () => {
jest.spyOn(controller, 'getTheoricalCost');
2020-09-09 06:20:27 +00:00
jest.spyOn(controller, 'getComponentsSum');
controller._ticket = undefined;
controller.ticket = {
2020-10-29 10:09:58 +00:00
id: 7,
zone: {
isVolumetric: false
}
2020-09-09 06:20:27 +00:00
};
expect(controller.ticket).toBeDefined();
2020-09-09 13:49:59 +00:00
expect(controller.getTheoricalCost).toHaveBeenCalledWith();
2020-09-09 06:20:27 +00:00
expect(controller.getComponentsSum).toHaveBeenCalledWith();
});
});
describe('getTotal()', () => {
it('should return the total sum of a ticket', () => {
let result = controller.getTotal();
expect(result).toEqual(30);
});
});
2020-09-09 13:49:59 +00:00
describe('getTheoricalCost()', () => {
2020-09-10 08:46:56 +00:00
it('should make a request to get the theorical cost of a ticket', () => {
2020-09-09 06:20:27 +00:00
controller._ticket = {
id: 7
};
2020-09-10 08:46:56 +00:00
$httpBackend.expect('GET', `Tickets/${controller._ticket.id}/freightCost`).respond('My freight cost');
2020-09-09 13:49:59 +00:00
controller.getTheoricalCost();
2020-09-09 06:20:27 +00:00
$httpBackend.flush();
2020-09-10 08:46:56 +00:00
expect(controller.theoricalCost).toBe('My freight cost');
2020-09-09 06:20:27 +00:00
});
});
describe('getComponentsSum()', () => {
it('should make a request to get the component list', () => {
controller._ticket = {
id: 7
};
$httpBackend.expect('GET', `Tickets/${controller._ticket.id}/getComponentsSum`).respond('My component list');
controller.getComponentsSum();
$httpBackend.flush();
expect(controller.componentsList).toBe('My component list');
});
});
});
});