From d7668c278d9ab71c181c578e5ea959d75f3ad8da Mon Sep 17 00:00:00 2001 From: Carlos Date: Fri, 13 Oct 2017 17:35:47 +0200 Subject: [PATCH] Client side unit tests for spinner --- client/core/src/spinner/spinner.spec.js | 65 +++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 client/core/src/spinner/spinner.spec.js diff --git a/client/core/src/spinner/spinner.spec.js b/client/core/src/spinner/spinner.spec.js new file mode 100644 index 000000000..1bc6f19d0 --- /dev/null +++ b/client/core/src/spinner/spinner.spec.js @@ -0,0 +1,65 @@ +import './spinner.js'; + +describe('Component vnSpinner', () => { + let $componentController; + let $scope; + let $element; + + beforeEach(() => { + angular.mock.module('client'); + }); + + beforeEach(angular.mock.inject((_$componentController_, $rootScope) => { + $componentController = _$componentController_; + $scope = $rootScope.$new(); + $element = angular.element('
'); + })); + + describe('enable()', () => { + it(`should call start() based on a boolean value passed as argument`, () => { + let controller = $componentController('vnSpinner', {$scope, $element}); + 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`, () => { + let controller = $componentController('vnSpinner', {$scope, $element}); + 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`, () => { + let controller = $componentController('vnSpinner', {$scope, $element}); + 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`, () => { + let controller = $componentController('vnSpinner', {$scope, $element}); + controller.spinner = {MaterialSpinner: {stop: () => {}}}; + spyOn(controller.spinner.MaterialSpinner, 'stop'); + controller._enable = true; + controller.stop(); + + expect(controller.spinner.MaterialSpinner.stop).toHaveBeenCalledWith(); + expect(controller._enable).toBeFalsy(); + }); + }); +});