142 lines
5.3 KiB
JavaScript
142 lines
5.3 KiB
JavaScript
import './index';
|
|
|
|
describe('Client', () => {
|
|
describe('Component vnClientBalancCreate', () => {
|
|
let controller;
|
|
let $httpBackend;
|
|
let $httpParamSerializer;
|
|
|
|
beforeEach(ngModule('client'));
|
|
|
|
beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _$httpParamSerializer_) => {
|
|
$httpBackend = _$httpBackend_;
|
|
$httpParamSerializer = _$httpParamSerializer_;
|
|
let $scope = $rootScope.$new();
|
|
const $element = angular.element('<vn-client-balance-create></vn-client-balance-create>');
|
|
const $transclude = {
|
|
$$boundTransclude: {
|
|
$$slots: []
|
|
}
|
|
};
|
|
controller = $componentController('vnClientBalanceCreate', {$element, $scope, $transclude});
|
|
controller.receipt = {
|
|
clientFk: 1101,
|
|
companyFk: 442
|
|
};
|
|
controller.bankSelection = {accountingType: {code: 'myCode'}};
|
|
}));
|
|
|
|
describe('bankSelection() setter', () => {
|
|
it('should set the receipt description property', () => {
|
|
controller.originalDescription = 'Albaran: 1, 2';
|
|
controller.bankSelection = {
|
|
id: 1,
|
|
bank: 'Cash',
|
|
accountingType: {
|
|
id: 2,
|
|
receiptDescription: 'Cash'
|
|
}
|
|
};
|
|
|
|
expect(controller.receipt.description).toEqual('Cash, Albaran: 1, 2');
|
|
});
|
|
});
|
|
|
|
describe('amountToReturn() setter', () => {
|
|
it('should set the amount to return with a maximum of two decimals', () => {
|
|
controller.amountToReturn = 200.1451789;
|
|
|
|
expect(controller.amountToReturn).toEqual(200.15);
|
|
});
|
|
});
|
|
|
|
describe('getAmountPaid()', () => {
|
|
it('should make an http GET query and then set the receipt amountPaid property', () => {
|
|
controller.$params = {id: 1101};
|
|
const receipt = controller.receipt;
|
|
const filter = {
|
|
where: {
|
|
clientFk: 1101,
|
|
companyFk: 442
|
|
}
|
|
};
|
|
const serializedParams = $httpParamSerializer({filter});
|
|
$httpBackend.expect('GET', `ClientRisks?${serializedParams}`).respond([{amount: 20}]);
|
|
controller.getAmountPaid();
|
|
$httpBackend.flush();
|
|
|
|
expect(receipt.amountPaid).toEqual(20);
|
|
});
|
|
});
|
|
|
|
describe('responseHandler()', () => {
|
|
it('should make an http POST query and then call to the parent responseHandler() method', () => {
|
|
jest.spyOn(controller.vnApp, 'showSuccess');
|
|
jest.spyOn(controller.vnReport, 'show');
|
|
|
|
controller.$params = {id: 1101};
|
|
controller.viewReceipt = false;
|
|
|
|
$httpBackend.expect('POST', `Clients/1101/createReceipt`).respond({id: 1});
|
|
controller.responseHandler('accept');
|
|
$httpBackend.flush();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
|
|
expect(controller.vnReport.show).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should make an http POST query and then call to the report show() method', () => {
|
|
const receiptId = 1;
|
|
|
|
jest.spyOn(controller.vnApp, 'showSuccess');
|
|
jest.spyOn(controller.vnReport, 'show');
|
|
window.open = jest.fn();
|
|
|
|
controller.$params = {id: 1101};
|
|
controller.viewReceipt = true;
|
|
|
|
$httpBackend.expect('POST', `Clients/1101/createReceipt`).respond({id: receiptId});
|
|
controller.responseHandler('accept');
|
|
$httpBackend.flush();
|
|
|
|
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
|
|
expect(controller.vnReport.show).toHaveBeenCalledWith(`Receipts/${receiptId}/receipt-pdf`);
|
|
});
|
|
});
|
|
|
|
describe('deliveredAmount() setter', () => {
|
|
it('should set the deliveredAmount property', () => {
|
|
controller.amountPaid = 999;
|
|
controller.deliveredAmount = 1000;
|
|
|
|
expect(controller.amountToReturn).toEqual(1);
|
|
});
|
|
});
|
|
|
|
describe('accountShortToStandard()', () => {
|
|
it('should get de account in stardard format', () => {
|
|
const shortAccount = '4.3';
|
|
controller.accountShortToStandard(shortAccount);
|
|
|
|
expect(controller.receipt.compensationAccount).toEqual('4000000003');
|
|
});
|
|
});
|
|
|
|
describe('bankSearchFunc()', () => {
|
|
it('should return the filter by id property for an input of a number', () => {
|
|
const bankId = 1;
|
|
const result = controller.bankSearchFunc(bankId);
|
|
|
|
expect(result).toEqual({id: bankId});
|
|
});
|
|
|
|
it('should return the filter by bank property for an input of an string', () => {
|
|
const bankName = 'Bank of America';
|
|
const result = controller.bankSearchFunc(bankName);
|
|
|
|
expect(result).toEqual({bank: {like: '%' + bankName + '%'}});
|
|
});
|
|
});
|
|
});
|
|
});
|