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(''); 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'}); }); }); }); });