2018-09-05 09:34:23 +00:00
|
|
|
import './index.js';
|
2018-10-02 07:52:38 +00:00
|
|
|
import {crudModel} from '../../../helpers/crudModelHelper';
|
2018-09-05 09:34:23 +00:00
|
|
|
|
|
|
|
describe('claim', () => {
|
2018-09-25 12:37:35 +00:00
|
|
|
describe('Component vnClaimAction', () => {
|
2018-09-05 09:34:23 +00:00
|
|
|
let $componentController;
|
|
|
|
let controller;
|
|
|
|
let $httpBackend;
|
|
|
|
let $state;
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
angular.mock.module('claim');
|
|
|
|
});
|
|
|
|
|
2018-09-25 12:37:35 +00:00
|
|
|
beforeEach(angular.mock.inject((_$componentController_, _$state_, _$httpBackend_) => {
|
2018-09-05 09:34:23 +00:00
|
|
|
$componentController = _$componentController_;
|
|
|
|
$httpBackend = _$httpBackend_;
|
|
|
|
$httpBackend.when('GET', /\/locale\/\w+\/[a-z]{2}\.json/).respond({});
|
|
|
|
$state = _$state_;
|
|
|
|
$state.params.id = 1;
|
|
|
|
|
2018-09-24 10:12:36 +00:00
|
|
|
controller = $componentController('vnClaimAction', {$state: $state});
|
2018-09-05 09:34:23 +00:00
|
|
|
controller.claim = {ticketFk: 1};
|
|
|
|
controller.$.model = {refresh: () => {}};
|
|
|
|
controller.$.addSales = {
|
|
|
|
hide: () => {},
|
|
|
|
show: () => {}
|
|
|
|
};
|
2018-10-02 07:52:38 +00:00
|
|
|
controller.$.lastTicketsModel = crudModel;
|
|
|
|
controller.$.lastTicketsPopover = {
|
|
|
|
hide: () => {},
|
|
|
|
show: () => {}
|
|
|
|
};
|
2018-10-08 05:31:55 +00:00
|
|
|
controller.card = {reload: () => {}};
|
2018-09-05 09:34:23 +00:00
|
|
|
}));
|
|
|
|
|
|
|
|
describe('openAddSalesDialog()', () => {
|
|
|
|
it('should call getClaimableFromTicket and $.addSales.show', () => {
|
|
|
|
controller.$ = {addSales: {show: () => {}}};
|
2018-09-24 10:12:36 +00:00
|
|
|
spyOn(controller, 'getClaimedSales');
|
2018-09-05 09:34:23 +00:00
|
|
|
spyOn(controller.$.addSales, 'show');
|
|
|
|
controller.openAddSalesDialog();
|
|
|
|
|
2018-09-24 10:12:36 +00:00
|
|
|
expect(controller.getClaimedSales).toHaveBeenCalledWith();
|
2018-09-05 09:34:23 +00:00
|
|
|
expect(controller.$.addSales.show).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-24 10:12:36 +00:00
|
|
|
describe('getClaimedSales()', () => {
|
2018-09-05 09:34:23 +00:00
|
|
|
it('should make a query and set salesToClaim', () => {
|
2018-09-24 10:12:36 +00:00
|
|
|
controller.claim.id = 1;
|
|
|
|
$httpBackend.expectGET(`/claim/api/ClaimBeginnings/1`).respond(200, 1);
|
|
|
|
controller.getClaimedSales();
|
2018-09-05 09:34:23 +00:00
|
|
|
$httpBackend.flush();
|
|
|
|
|
2018-09-24 10:12:36 +00:00
|
|
|
expect(controller.claimedSales).toEqual(1);
|
2018-09-05 09:34:23 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('addClaimedSale(saleFk)', () => {
|
|
|
|
it('should make a post and call refresh, hide and showSuccess', () => {
|
|
|
|
spyOn(controller.$.model, 'refresh');
|
|
|
|
spyOn(controller.$.addSales, 'hide');
|
|
|
|
spyOn(controller.vnApp, 'showSuccess');
|
2018-09-24 10:12:36 +00:00
|
|
|
$httpBackend.expectPOST(`claim/api/ClaimEnds/`).respond({});
|
2018-09-05 09:34:23 +00:00
|
|
|
controller.addClaimedSale(1);
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.$.model.refresh).toHaveBeenCalledWith();
|
|
|
|
expect(controller.$.addSales.hide).toHaveBeenCalledWith();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('deleteClaimedSale(id)', () => {
|
|
|
|
it('should make a delete and call refresh and showSuccess', () => {
|
|
|
|
spyOn(controller.$.model, 'refresh');
|
|
|
|
spyOn(controller.vnApp, 'showSuccess');
|
2018-09-24 10:12:36 +00:00
|
|
|
$httpBackend.expectDELETE(`claim/api/ClaimEnds/1`).respond({});
|
2018-09-05 09:34:23 +00:00
|
|
|
controller.deleteClaimedSale(1);
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.$.model.refresh).toHaveBeenCalledWith();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-24 10:12:36 +00:00
|
|
|
describe('setClaimDestination(id, claimDestinationFk)', () => {
|
2018-09-05 09:34:23 +00:00
|
|
|
it('should make a patch and call refresh and showSuccess', () => {
|
|
|
|
spyOn(controller.vnApp, 'showSuccess');
|
2018-09-24 10:12:36 +00:00
|
|
|
$httpBackend.expectPATCH(`claim/api/ClaimEnds/`).respond({});
|
|
|
|
controller.setClaimDestination(1, 1);
|
2018-09-05 09:34:23 +00:00
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
|
|
|
});
|
|
|
|
});
|
2018-09-24 10:12:36 +00:00
|
|
|
|
|
|
|
describe('calculateTotals()', () => {
|
|
|
|
it('should calculate the total price of the items claimed', () => {
|
|
|
|
controller.salesClaimed = [
|
|
|
|
{sale: {quantity: 5, price: 2, discount: 0}},
|
|
|
|
{sale: {quantity: 10, price: 2, discount: 0}},
|
|
|
|
{sale: {quantity: 10, price: 2, discount: 0}}
|
|
|
|
];
|
|
|
|
controller.calculateTotals();
|
|
|
|
|
|
|
|
expect(controller.claimedTotal).toEqual(50);
|
|
|
|
});
|
|
|
|
});
|
2018-09-25 12:37:35 +00:00
|
|
|
|
|
|
|
describe('importToNewRefundTicket()', () => {
|
2018-11-23 13:30:01 +00:00
|
|
|
it('should perform a post query and add lines from a new ticket', () => {
|
2018-09-25 12:37:35 +00:00
|
|
|
spyOn(controller.$.model, 'refresh');
|
|
|
|
spyOn(controller.vnApp, 'showSuccess');
|
|
|
|
$httpBackend.expect('POST', `claim/api/ClaimBeginnings/1/importToNewRefundTicket`).respond({});
|
|
|
|
controller.importToNewRefundTicket();
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.$.model.refresh).toHaveBeenCalledWith();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
|
|
|
});
|
|
|
|
});
|
2018-10-02 07:52:38 +00:00
|
|
|
|
|
|
|
describe('showLastTickets()', () => {
|
|
|
|
it('should get a list of tickets and call lastTicketsPopover show() method', () => {
|
|
|
|
spyOn(controller.$.lastTicketsModel, 'refresh');
|
|
|
|
spyOn(controller.$.lastTicketsPopover, 'show');
|
|
|
|
controller.showLastTickets({});
|
|
|
|
|
|
|
|
expect(controller.$.lastTicketsModel.refresh).toHaveBeenCalledWith();
|
|
|
|
expect(controller.$.lastTicketsPopover.show).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('importTicketLines()', () => {
|
2018-11-23 13:30:01 +00:00
|
|
|
it('should perform a post query and add lines from an existent ticket', () => {
|
2018-10-02 07:52:38 +00:00
|
|
|
spyOn(controller.$.model, 'refresh');
|
|
|
|
spyOn(controller.vnApp, 'showSuccess');
|
|
|
|
spyOn(controller.$.lastTicketsPopover, 'hide');
|
|
|
|
let data = {claimFk: 1, ticketFk: 1};
|
|
|
|
$httpBackend.expect('POST', `/claim/api/ClaimEnds/importTicketSales`, data).respond({});
|
|
|
|
controller.importTicketLines(1);
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.$.model.refresh).toHaveBeenCalledWith();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
|
|
|
expect(controller.$.lastTicketsPopover.hide).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
2018-10-08 05:31:55 +00:00
|
|
|
|
|
|
|
describe('regularize()', () => {
|
|
|
|
it('should perform a post query and reload the claim card', () => {
|
|
|
|
spyOn(controller.card, 'reload');
|
|
|
|
spyOn(controller.vnApp, 'showSuccess');
|
|
|
|
|
|
|
|
let data = {claimFk: $state.params.id};
|
|
|
|
$httpBackend.expect('POST', `/claim/api/Claims/regularizeClaim`, data).respond({});
|
|
|
|
controller.regularize();
|
|
|
|
$httpBackend.flush();
|
|
|
|
|
|
|
|
expect(controller.card.reload).toHaveBeenCalledWith();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
|
|
|
});
|
|
|
|
});
|
2018-09-05 09:34:23 +00:00
|
|
|
});
|
|
|
|
});
|