import './spinner.js'; describe('Component vnSpinner', () => { let $scope; let $element; let controller; beforeEach(ngModule('vnCore')); beforeEach(angular.mock.inject(($componentController, $rootScope) => { $scope = $rootScope.$new(); $element = angular.element('<div><div></div></div>'); controller = $componentController('vnSpinner', {$scope, $element}); })); describe('enable()', () => { it(`should call start() based on a boolean value passed as argument`, () => { spyOn(controller, 'start'); spyOn(controller, 'stop'); controller.enable = true; expect(controller.start).toHaveBeenCalledWith(); expect(controller.stop).not.toHaveBeenCalledWith(); }); it(`should call stop() based on a boolean value passed as argument`, () => { spyOn(controller, 'start'); spyOn(controller, 'stop'); controller.enable = false; expect(controller.start).not.toHaveBeenCalledWith(); expect(controller.stop).toHaveBeenCalledWith(); }); }); describe('start()', () => { it(`should call start() on the controller.materialSpinner then set controllers._enable to be truthy`, () => { controller.spinner = {MaterialSpinner: {start: () => {}}}; spyOn(controller.spinner.MaterialSpinner, 'start'); controller._enable = false; controller.start(); expect(controller.spinner.MaterialSpinner.start).toHaveBeenCalledWith(); expect(controller._enable).toBeTruthy(); }); }); describe('stop()', () => { it(`should call stop() on the controller.materialSpinner then set controllers._enable to be truthy`, () => { controller.spinner = {MaterialSpinner: {stop: () => {}}}; spyOn(controller.spinner.MaterialSpinner, 'stop'); controller._enable = true; controller.stop(); expect(controller.spinner.MaterialSpinner.stop).toHaveBeenCalledWith(); expect(controller._enable).toBeFalsy(); }); }); });