2018-05-25 08:03:45 +00:00
|
|
|
import './index.js';
|
2018-05-08 07:25:15 +00:00
|
|
|
|
2018-07-03 13:23:10 +00:00
|
|
|
describe('Ticket', () => {
|
2018-05-08 07:25:15 +00:00
|
|
|
describe('Component vnTicketSale', () => {
|
|
|
|
let $componentController;
|
|
|
|
let controller;
|
|
|
|
let $httpBackend;
|
|
|
|
let $state;
|
|
|
|
let $scope;
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
angular.mock.module('ticket');
|
|
|
|
});
|
|
|
|
|
|
|
|
beforeEach(angular.mock.inject((_$componentController_, _$state_, _$httpBackend_, $rootScope) => {
|
|
|
|
$componentController = _$componentController_;
|
|
|
|
$httpBackend = _$httpBackend_;
|
2018-05-25 15:25:35 +00:00
|
|
|
$httpBackend.when('GET', /\/locale\/\w+\/[a-z]{2}\.json/).respond({});
|
2018-07-06 14:27:34 +00:00
|
|
|
$httpBackend.when('GET', '/api/Tickets/1/getSales').respond({});
|
2018-05-08 07:25:15 +00:00
|
|
|
$scope = $rootScope.$new();
|
|
|
|
$state = _$state_;
|
|
|
|
$state.params.id = 1;
|
|
|
|
controller = $componentController('vnTicketSale', {$scope: $scope}, {$state: $state});
|
2018-07-03 13:23:10 +00:00
|
|
|
controller.ticket = {id: 1};
|
|
|
|
controller.$ = {index: {model: {instances: [
|
|
|
|
{
|
|
|
|
id: 1,
|
|
|
|
quantity: 5,
|
|
|
|
price: 23.5,
|
|
|
|
discount: 0,
|
|
|
|
checked: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 4,
|
|
|
|
quantity: 20,
|
|
|
|
price: 5.5,
|
|
|
|
discount: 0,
|
|
|
|
checked: true
|
|
|
|
}
|
|
|
|
]}, accept: () => {
|
|
|
|
return {
|
|
|
|
then: () => {}
|
|
|
|
};
|
|
|
|
}}};
|
2018-05-08 07:25:15 +00:00
|
|
|
}));
|
|
|
|
|
2018-07-13 13:57:19 +00:00
|
|
|
describe('getSales()', () => {
|
|
|
|
it('should make a query and call getTaxes()', () => {
|
|
|
|
spyOn(controller, 'getTaxes');
|
|
|
|
$httpBackend.expectGET(`/api/Tickets/1/getSales`).respond();
|
|
|
|
controller.getSales();
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.getTaxes).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('$onChanges()', () => {
|
|
|
|
it('should call getSales and getVAT', () => {
|
|
|
|
spyOn(controller, 'getSubTotal');
|
|
|
|
spyOn(controller, 'getVAT');
|
|
|
|
controller.getTaxes();
|
|
|
|
|
|
|
|
expect(controller.getSubTotal).toHaveBeenCalledWith();
|
|
|
|
expect(controller.getVAT).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('getSubTotal()', () => {
|
|
|
|
it('should calculate SubTotal', () => {
|
|
|
|
controller.sales = [{quantity: 2, price: 10, discount: 10}];
|
|
|
|
controller.getSubTotal();
|
|
|
|
|
|
|
|
expect(controller.subTotal).toEqual(18);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('getVAT()', () => {
|
|
|
|
it('should make a query, set vat and calculate total', () => {
|
|
|
|
controller.subTotal = 10;
|
|
|
|
$httpBackend.expectGET(`/ticket/api/Tickets/1/getVAT`).respond();
|
|
|
|
controller.getVAT();
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.total).toEqual(10);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-05-08 07:54:14 +00:00
|
|
|
describe('isChecked() setter/getter', () => {
|
|
|
|
it('should set isChecked value to true when one of the instances has the value checked to true', () => {
|
|
|
|
let lines = [
|
|
|
|
{checked: false},
|
|
|
|
{checked: true}
|
|
|
|
];
|
2018-07-06 14:27:34 +00:00
|
|
|
controller.sales = lines;
|
2018-05-08 07:54:14 +00:00
|
|
|
|
|
|
|
expect(controller.isChecked).toBeTruthy();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-07-13 13:57:19 +00:00
|
|
|
describe('getCheckedLines()', () => {
|
|
|
|
it('should make an array of the instances with the property checked true()', () => {
|
|
|
|
controller.sales = [{id: 1, checked: true}, {id: 2, checked: false}, {id: 3, checked: true}];
|
|
|
|
|
|
|
|
expect(controller.getCheckedLines()).toEqual([{id: 1, instance: 0}, {id: 3, instance: 2}]);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-05-08 07:25:15 +00:00
|
|
|
describe('onStateOkClick()', () => {
|
|
|
|
it('should perform a get and then call a function', () => {
|
|
|
|
let filter = {where: {code: "OK"}, fields: ["id"]};
|
|
|
|
filter = encodeURIComponent(JSON.stringify(filter));
|
|
|
|
let res = [{id: 3}];
|
|
|
|
spyOn(controller, 'onStateChange');
|
|
|
|
|
|
|
|
$httpBackend.whenGET(`/ticket/api/States?filter=${filter}`).respond(res);
|
|
|
|
$httpBackend.expectGET(`/ticket/api/States?filter=${filter}`);
|
|
|
|
controller.onStateOkClick();
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.onStateChange).toHaveBeenCalledWith(3);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-07-13 13:57:19 +00:00
|
|
|
describe('showAddTurnDialog()', () => {
|
|
|
|
it('should call contrtoller.$.addTurn.show()', () => {
|
|
|
|
controller.$.addTurn = {show: () => {}};
|
|
|
|
spyOn(controller.$.addTurn, 'show');
|
|
|
|
controller.showAddTurnDialog();
|
|
|
|
|
|
|
|
expect(controller.$.addTurn.show).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
xdescribe('addTurn(day)', () => {
|
|
|
|
it('should make a query and call $.addTurn.hide() and vnApp.showSuccess()', () => {
|
|
|
|
controller.$.addTurn = {hide: () => {}};
|
|
|
|
spyOn(controller.$.addTurn, 'hide');
|
|
|
|
controller.showAddTurnDialog();
|
|
|
|
|
|
|
|
expect(controller.$.addTurn.show).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-05-08 07:25:15 +00:00
|
|
|
describe('onStateChange()', () => {
|
|
|
|
it('should perform a post and then call a function', () => {
|
2018-06-06 14:54:40 +00:00
|
|
|
$httpBackend.expectPOST(`/ticket/api/TicketTrackings/changeState`).respond();
|
2018-05-08 07:25:15 +00:00
|
|
|
controller.card = {reload: () => {}};
|
|
|
|
controller.onStateChange(3);
|
|
|
|
$httpBackend.flush();
|
|
|
|
});
|
|
|
|
});
|
2018-05-08 07:54:14 +00:00
|
|
|
|
2018-07-03 13:23:10 +00:00
|
|
|
xdescribe('onRemoveLinesClick()', () => {
|
|
|
|
it('should call getCheckedLines, call removeInstances, and make a query', () => {
|
|
|
|
spyOn(controller, 'getCheckedLines');
|
|
|
|
spyOn(controller, 'removeInstances');
|
|
|
|
$httpBackend.expectPOST(`/ticket/api/Sales/removes`).respond();
|
|
|
|
|
|
|
|
controller.onRemoveLinesClick('ACCEPT');
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.getCheckedLines).toHaveBeenCalledWith();
|
|
|
|
expect(controller.removeInstances).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('unmarkAsReserved()', () => {
|
|
|
|
it('should call setReserved with false', () => {
|
|
|
|
spyOn(controller, 'setReserved');
|
|
|
|
|
|
|
|
controller.unmarkAsReserved(false);
|
|
|
|
|
|
|
|
expect(controller.setReserved).toHaveBeenCalledWith(false);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('markAsReserved()', () => {
|
|
|
|
it('should call setReserved with true', () => {
|
|
|
|
spyOn(controller, 'setReserved');
|
2018-05-08 07:54:14 +00:00
|
|
|
|
2018-07-03 13:23:10 +00:00
|
|
|
controller.markAsReserved(true);
|
|
|
|
|
|
|
|
expect(controller.setReserved).toHaveBeenCalledWith(true);
|
2018-05-08 07:54:14 +00:00
|
|
|
});
|
2018-07-03 13:23:10 +00:00
|
|
|
});
|
2018-05-08 07:54:14 +00:00
|
|
|
|
2018-07-06 14:27:34 +00:00
|
|
|
xdescribe('setReserved()', () => {
|
2018-07-03 13:23:10 +00:00
|
|
|
it('should call getCheckedLines, $.index.accept and make a query ', () => {
|
|
|
|
spyOn(controller, 'getCheckedLines');
|
|
|
|
$httpBackend.expectPOST(`/ticket/api/Sales/reserve`).respond();
|
|
|
|
controller.setReserved(true);
|
2018-05-08 07:54:14 +00:00
|
|
|
$httpBackend.flush();
|
2018-07-03 13:23:10 +00:00
|
|
|
|
|
|
|
expect(controller.getCheckedLines).toHaveBeenCalledWith();
|
2018-05-08 07:54:14 +00:00
|
|
|
});
|
|
|
|
});
|
2018-05-08 07:25:15 +00:00
|
|
|
});
|
|
|
|
});
|