import './index.js'; describe('Component vnTicketIndex', () => { let controller; let $window; let tickets = [{ id: 1, clientFk: 1, total: 10.5, checked: false }, { id: 2, clientFk: 1, total: 20.5, checked: true }, { id: 3, clientFk: 1, total: 30, checked: true }]; beforeEach(angular.mock.module('ticket', $translateProvider => { $translateProvider.translations('en', {}); })); beforeEach(inject(($componentController, _$window_) => { $window = _$window_; controller = $componentController('vnTicketIndex'); })); describe('compareDate()', () => { it('should return warning when the date is the present', () => { let curDate = new Date(); let result = controller.compareDate(curDate); expect(result).toEqual('warning'); }); it('should return sucess when the date is in the future', () => { let futureDate = new Date(); futureDate = futureDate.setDate(futureDate.getDate() + 10); let result = controller.compareDate(futureDate); expect(result).toEqual('success'); }); it('should return undefined when the date is in the past', () => { let pastDate = new Date(); pastDate = pastDate.setDate(pastDate.getDate() - 10); let result = controller.compareDate(pastDate); expect(result).toEqual(undefined); }); }); describe('showClientDescriptor()', () => { it('should show the client descriptor popover', () => { controller.$.clientDescriptor = {show: () => {}}; controller.$.clientDescriptor.show = jasmine.createSpy('show'); let event = new MouseEvent('click', { view: $window, bubbles: true, cancelable: true }); controller.showClientDescriptor(event, tickets[0].clientFk); expect(controller.$.clientDescriptor.show).toHaveBeenCalledWith(); }); }); describe('preview()', () => { it('should show the dialog summary', () => { controller.$.summary = {show: () => {}}; spyOn(controller.$.summary, 'show'); let event = new MouseEvent('click', { view: $window, bubbles: true, cancelable: true }); controller.preview(event, tickets[0]); expect(controller.$.summary.show).toHaveBeenCalledWith(); }); }); describe('setBalanceCreateDialog()', () => { it('should fill the object for the component balanceCreateDialog', () => { controller.$.tickets = tickets; controller.$.balanceCreateDialog = {}; controller.$.balanceCreateDialog.amountPaid = 0; controller.setBalanceCreateDialog(); let description = controller.$.balanceCreateDialog.description; let amountPaid = controller.$.balanceCreateDialog.amountPaid; expect(description).toEqual('Albaran: 2, 3'); expect(amountPaid).toEqual(50.5); }); }); });