import './index.js'; import crudModel from 'core/mocks/crud-model'; describe('Component vnMonitorSalesOrders', () => { let controller; let $httpBackend; beforeEach(ngModule('monitor')); beforeEach(inject(($componentController, _$httpBackend_) => { $httpBackend = _$httpBackend_; const $element = angular.element(''); controller = $componentController('vnMonitorSalesOrders', {$element}); controller.$.model = crudModel; controller.$.model.data = [ {id: 1, name: 'My item 1'}, {id: 2, name: 'My item 2'}, {id: 3, name: 'My item 3'} ]; })); describe('checked() getter', () => { it('should return a the selected rows', () => { const modelData = controller.$.model.data; modelData[0].checked = true; modelData[1].checked = true; const result = controller.checked; expect(result).toEqual(expect.arrayContaining([1, 2])); }); }); describe('onDelete()', () => { it('should make a query and then call to the model refresh() method', () => { jest.spyOn(controller.$.model, 'refresh'); const modelData = controller.$.model.data; modelData[0].checked = true; modelData[1].checked = true; const expectedParams = {deletes: [1, 2]}; $httpBackend.expect('POST', 'SalesMonitors/deleteOrders', expectedParams).respond(200); controller.onDelete(); $httpBackend.flush(); expect(controller.$.model.refresh).toHaveBeenCalledWith(); }); }); });