99 lines
3.4 KiB
JavaScript
99 lines
3.4 KiB
JavaScript
import './index';
|
|
import crudModel from 'core/mocks/crud-model';
|
|
|
|
describe('client defaulter', () => {
|
|
describe('Component vnClientDefaulterIndex', () => {
|
|
let controller;
|
|
let $httpBackend;
|
|
|
|
beforeEach(ngModule('client'));
|
|
|
|
beforeEach(inject(($componentController, _$httpBackend_) => {
|
|
$httpBackend = _$httpBackend_;
|
|
const $element = angular.element('<vn-client-defaulter></vn-client-defaulter>');
|
|
controller = $componentController('vnClientDefaulterIndex', {$element});
|
|
controller.$.model = crudModel;
|
|
controller.$.model.data = [
|
|
{clientFk: 1101, amount: 125},
|
|
{clientFk: 1102, amount: 500},
|
|
{clientFk: 1103, amount: 250}
|
|
];
|
|
}));
|
|
|
|
describe('checked() getter', () => {
|
|
it('should return the checked lines', () => {
|
|
const data = controller.$.model.data;
|
|
data[1].checked = true;
|
|
data[2].checked = true;
|
|
|
|
const checkedRows = controller.checked;
|
|
|
|
const firstCheckedRow = checkedRows[0];
|
|
const secondCheckedRow = checkedRows[1];
|
|
|
|
expect(firstCheckedRow.clientFk).toEqual(1102);
|
|
expect(secondCheckedRow.clientFk).toEqual(1103);
|
|
});
|
|
});
|
|
|
|
describe('balanceDueTotal() getter', () => {
|
|
it('should return balance due total', () => {
|
|
const data = controller.$.model.data;
|
|
data[1].checked = true;
|
|
data[2].checked = true;
|
|
|
|
const checkedRows = controller.checked;
|
|
const expectedAmount = checkedRows[0].amount + checkedRows[1].amount;
|
|
|
|
const result = controller.balanceDueTotal;
|
|
|
|
expect(result).toEqual(expectedAmount);
|
|
});
|
|
});
|
|
|
|
describe('onResponse()', () => {
|
|
it('should return error for empty message', () => {
|
|
let error;
|
|
try {
|
|
controller.onResponse();
|
|
} catch (e) {
|
|
error = e;
|
|
}
|
|
|
|
expect(error).toBeDefined();
|
|
expect(error.message).toBe(`The message can't be empty`);
|
|
});
|
|
|
|
it('should return saved message', () => {
|
|
const data = controller.$.model.data;
|
|
data[1].checked = true;
|
|
controller.defaulter = {observation: 'My new observation'};
|
|
|
|
const params = [{text: controller.defaulter.observation, clientFk: data[1].clientFk}];
|
|
|
|
jest.spyOn(controller.vnApp, 'showMessage');
|
|
$httpBackend.expect('POST', `ClientObservations`, params).respond(200, params);
|
|
|
|
controller.onResponse();
|
|
$httpBackend.flush();
|
|
|
|
expect(controller.vnApp.showMessage).toHaveBeenCalledWith('Observation saved!');
|
|
});
|
|
});
|
|
|
|
describe('exprBuilder()', () => {
|
|
it('should search by sales person', () => {
|
|
let expr = controller.exprBuilder('salesPersonFk', '5');
|
|
|
|
expect(expr).toEqual({'d.salesPersonFk': '5'});
|
|
});
|
|
|
|
it('should search by client name', () => {
|
|
let expr = controller.exprBuilder('clientName', '1foo');
|
|
|
|
expect(expr).toEqual({'d.clientName': '1foo'});
|
|
});
|
|
});
|
|
});
|
|
});
|