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

127 lines
4.1 KiB
JavaScript
Raw Normal View History

import './index.js';
describe('Component vnTicketIndex', () => {
2018-11-06 13:27:16 +00:00
let controller;
let $httpBackend;
let $window;
let tickets = [{
id: 1,
clientFk: 1,
2019-04-25 05:57:26 +00:00
total: 10.5,
checked: false
2019-04-25 05:57:26 +00:00
}, {
id: 2,
clientFk: 1,
total: 20.5,
checked: true
2019-04-25 05:57:26 +00:00
}, {
id: 3,
clientFk: 1,
total: 30,
checked: true
}];
beforeEach(ngModule('ticket'));
2018-08-13 07:32:33 +00:00
beforeEach(inject(($componentController, _$window_, _$httpBackend_) => {
$httpBackend = _$httpBackend_;
$window = _$window_;
2020-03-18 07:35:59 +00:00
const $element = angular.element('<vn-ticket-index></vn-ticket-index>');
controller = $componentController('vnTicketIndex', {$element});
}));
2018-08-13 07:32:33 +00:00
describe('compareDate()', () => {
it('should return warning when the date is the present', () => {
let today = new Date();
let result = controller.compareDate(today);
2018-08-13 07:32:33 +00:00
expect(result).toEqual('warning');
});
2018-08-13 07:32:33 +00:00
it('should return sucess when the date is in the future', () => {
let futureDate = new Date();
futureDate = futureDate.setDate(futureDate.getDate() + 10);
2018-11-06 13:27:16 +00:00
let result = controller.compareDate(futureDate);
2018-08-13 07:32:33 +00:00
expect(result).toEqual('success');
});
2018-08-13 07:32:33 +00:00
it('should return undefined when the date is in the past', () => {
let pastDate = new Date();
pastDate = pastDate.setDate(pastDate.getDate() - 10);
2018-11-06 13:27:16 +00:00
let result = controller.compareDate(pastDate);
2018-08-13 07:32:33 +00:00
expect(result).toEqual(undefined);
2018-08-13 07:32:33 +00:00
});
});
2018-08-13 07:32:33 +00:00
describe('preview()', () => {
it('should show the dialog summary', () => {
controller.$.summary = {show: () => {}};
2020-02-26 12:22:52 +00:00
jest.spyOn(controller.$.summary, 'show');
2018-04-19 12:56:05 +00:00
let event = new MouseEvent('click', {
view: $window,
bubbles: true,
cancelable: true
2018-04-19 12:56:05 +00:00
});
2018-11-06 13:27:16 +00:00
controller.preview(event, tickets[0]);
2018-11-06 13:27:16 +00:00
expect(controller.$.summary.show).toHaveBeenCalledWith();
2018-04-19 12:56:05 +00:00
});
});
2019-04-25 05:57:26 +00:00
describe('openBalanceDialog()', () => {
2019-04-25 05:57:26 +00:00
it('should fill the object for the component balanceCreateDialog', () => {
controller.$.balanceCreateDialog = {show: () => {}};
jest.spyOn(controller.$.balanceCreateDialog, 'show').mockReturnThis();
2020-03-25 14:17:43 +00:00
controller.$.model = {data: tickets};
controller.$.balanceCreateDialog.amountPaid = 0;
controller.openBalanceDialog();
2019-04-25 05:57:26 +00:00
let description = controller.$.balanceCreateDialog.description;
let amountPaid = controller.$.balanceCreateDialog.amountPaid;
2019-04-25 05:57:26 +00:00
expect(description).toEqual('Albaran: 2, 3');
expect(amountPaid).toEqual(50.5);
2019-04-25 05:57:26 +00:00
});
});
describe('setDelivered()/openDeliveryNotes()', () => {
it('should perform a post to setDelivered and open tabs with the delivery notes', () => {
controller.$.model = {data: tickets, refresh: () => {}};
$window.open = jest.fn();
$httpBackend.expect('POST', 'TicketTrackings/setDelivered').respond('ok');
controller.setDelivered();
$httpBackend.flush();
expect($window.open).toHaveBeenCalledWith(`api/report/delivery-note?ticketId=${tickets[1].id}`);
expect($window.open).toHaveBeenCalledWith(`api/report/delivery-note?ticketId=${tickets[2].id}`);
});
});
describe('checked()', () => {
it('should return an array of checked tickets', () => {
2020-03-25 14:17:43 +00:00
controller.$.model = {data: tickets};
const result = controller.checked;
const firstRow = result[0];
const secondRow = result[1];
expect(result.length).toEqual(2);
expect(firstRow.id).toEqual(2);
expect(secondRow.id).toEqual(3);
});
});
describe('totalChecked()', () => {
it('should return the total number of checked tickets', () => {
2020-03-25 14:17:43 +00:00
controller.$.model = {data: tickets};
const result = controller.checked;
expect(result.length).toEqual(2);
});
});
2018-04-19 12:56:05 +00:00
});