salix/modules/client/front/balance/index/index.spec.js

145 lines
5.1 KiB
JavaScript
Raw Normal View History

2018-11-14 09:55:15 +00:00
import './index';
describe('Client', () => {
describe('Component vnClientBalanceIndex', () => {
2018-11-14 09:55:15 +00:00
let $componentController;
let controller;
beforeEach(ngModule('client'));
2018-11-14 09:55:15 +00:00
2020-01-02 13:44:51 +00:00
beforeEach(angular.mock.inject((_$componentController_, $rootScope) => {
2018-11-14 09:55:15 +00:00
$componentController = _$componentController_;
2020-01-02 13:44:51 +00:00
let $scope = $rootScope.$new();
controller = $componentController('vnClientBalanceIndex', {$scope});
2020-01-02 13:44:51 +00:00
controller.$.model = {applyFilter: () => {}};
2020-01-03 11:29:13 +00:00
controller.$.riskModel = {
applyFilter: () => {},
data:
[{
clientFk: 101,
companyFk: 442,
amount: 713.24,
company: {
id: 442,
code: 'VNL'
}
}]
};
2020-01-02 13:44:51 +00:00
}));
2018-11-14 09:55:15 +00:00
2020-01-02 13:44:51 +00:00
describe('getData()', () => {
it('should apply the filters on he models and get the client balance', () => {
2020-01-03 11:48:06 +00:00
controller._companyId = 442;
2020-01-03 11:29:13 +00:00
controller.$stateParams.id = 101;
2020-01-02 13:44:51 +00:00
spyOn(controller, 'getBalances');
spyOn(controller.$.model, 'applyFilter').and.returnValue(Promise.resolve());
spyOn(controller.$.riskModel, 'applyFilter').and.returnValue(Promise.resolve());
2020-01-03 11:29:13 +00:00
2020-01-02 13:44:51 +00:00
controller.getData().then(() => {
2020-01-03 11:48:06 +00:00
expect(controller.$.model.applyFilter).toHaveBeenCalledWith(null, {'clientId': 101, 'companyId': 442});
2020-01-02 13:44:51 +00:00
expect(controller.$.riskModel.applyFilter).toHaveBeenCalledWith({'where': {'clientFk': 101, 'companyFk': 442}});
expect(controller.getBalances).toHaveBeenCalledWith();
});
2018-11-14 09:55:15 +00:00
});
});
2020-01-03 11:29:13 +00:00
describe('company setter/getter', () => {
it('should return the company', () => {
2020-01-03 11:48:06 +00:00
controller.companyId = null;
2020-01-03 11:29:13 +00:00
2020-01-03 11:48:06 +00:00
expect(controller._companyId).toEqual(jasmine.any(Object));
2020-01-03 11:29:13 +00:00
});
it('should return the company and then call getData()', () => {
spyOn(controller, 'getData');
2020-01-03 11:48:06 +00:00
controller.companyId = 442;
2020-01-03 11:29:13 +00:00
2020-01-03 11:48:06 +00:00
expect(controller._companyId).toEqual(442);
2020-01-03 11:29:13 +00:00
expect(controller.getData).toHaveBeenCalledWith();
});
});
describe('getCurrentBalance()', () => {
it('should return the client balance amount', () => {
2020-01-03 11:48:06 +00:00
controller._companyId = 442;
2020-01-03 11:29:13 +00:00
let result = controller.getCurrentBalance();
expect(result).toEqual(713.24);
});
});
describe('getBalances()', () => {
it('should return the total client balance amount', () => {
spyOn(controller, 'getCurrentBalance').and.callThrough();
2020-01-03 11:48:06 +00:00
controller._companyId = 442;
2020-01-03 11:29:13 +00:00
controller.$.model = {data:
[{
id: 1,
debit: 1000,
credit: null
},
{
id: 2,
debit: null,
credit: 500
},
{
id: 3,
debit: null,
credit: 300
}
]};
controller.getBalances();
const expectedBalances = controller.$.model.data;
expect(expectedBalances[0].balance).toEqual(713.24);
expect(expectedBalances[1].balance).toEqual(-286.76);
expect(expectedBalances[2].balance).toEqual(213.24);
});
});
describe('balances() setter', () => {
it('should set the balances data and not call the getBalances() method', () => {
spyOn(controller, 'getBalances');
controller.$.riskModel.data = null;
controller.balances = [{
id: 1,
debit: 1000,
credit: null
}, {
id: 2,
debit: null,
credit: 500
}, {
id: 3,
debit: null,
credit: 300
}];
expect(controller.balances).toBeDefined();
expect(controller.getBalances).not.toHaveBeenCalledWith();
});
it('should set the balances data and then call the getBalances() method', () => {
spyOn(controller, 'getBalances');
controller.balances = [{
id: 1,
debit: 1000,
credit: null
}, {
id: 2,
debit: null,
credit: 500
}, {
id: 3,
debit: null,
credit: 300
}];
expect(controller.balances).toBeDefined();
expect(controller.getBalances).toHaveBeenCalledWith();
});
});
2018-11-14 09:55:15 +00:00
});
});