| import * as angular from 'angular'; |
| import 'angular-mocks'; |
| import 'angular-ui-router'; |
| import {XosDebouncer, IXosDebouncer} from './debounce.helper'; |
| |
| let service: IXosDebouncer; |
| |
| describe('The XosDebouncer service', () => { |
| |
| beforeEach(() => { |
| angular |
| .module('test', ['toastr']) |
| .service('XosDebouncer', XosDebouncer); |
| angular.mock.module('test'); |
| }); |
| |
| beforeEach(angular.mock.inject(( |
| XosDebouncer: IXosDebouncer, |
| ) => { |
| service = XosDebouncer; |
| })); |
| |
| it('should call a function only after it has not been called for 500ms', (done) => { |
| const spy = jasmine.createSpy('fn'); |
| const efficientSpy = service.debounce(spy, 500, this, false); |
| /* tslint:disable */ |
| efficientSpy(); |
| efficientSpy(); |
| /* tslint:enable */ |
| expect(spy).not.toHaveBeenCalled(); |
| setTimeout(() => { |
| expect(spy).toHaveBeenCalled(); |
| done(); |
| }, 600); |
| }); |
| }); |
| |