/* MMigreringsbeslut: denna test behöver Chrome headless eller PhantomJs + es6-shim för att kunna köras */ /** * @ngdoc fbClickOutsideSpec * @name fasit.directivetests.#fbClickOutsideSpec * @ fbClickOutsideSpec * * @description * Testning av directivet fbClickOutsideSpec * */ describe("fbClickOutside", function () { var element: any; var $scope: any; var deferred: ng.IDeferred; var link: any; var innerScope: fb.IFbCollapsibleScope; var document: any; beforeEach(angular.mock.module('fasit', 'fbMocks')); afterEach(function () { $scope.$destroy(); }); beforeEach(inject(function ($rootScope) { $scope = $rootScope.$new(); $scope.callbackFunc = function () { $scope.anValue = 1; } })); afterEach(inject(function ($document) { $scope.$destroy(); })); describe('utan condition', function () { beforeEach(inject(function ($compile, $document) { var DOM = '
' + '
' + '
' + '
'; element = angular.element(DOM); link = $compile(element)($scope); $scope.anValue = 0; document = $document; $scope.$digest(); innerScope = $scope.$$childHead; $scope.$digest(); })); it('klick på elementet triggar inte callbackfunktionen', function () { expect($scope.anValue).toBe(0); document.trigger(new jQuery.Event('click', { target: element.find('#theDiv') })); $scope.$digest(); expect($scope.anValue).toBe(0); }); it('klick utan elementet triggar callbackfunktionen', function () { expect($scope.anValue).toBe(0); document.trigger(new jQuery.Event('click', { target: element })); $scope.$digest(); expect($scope.anValue).toBe(1); }); }); describe('med condition', function () { beforeEach(inject(function ($compile, $document) { var DOM = '
' + '
' + '
' + '
'; element = angular.element(DOM); $scope.theCondition = false; link = $compile(element)($scope); $scope.anValue = 0; document = $document; innerScope = $scope.$$childHead; $scope.$digest(); })); describe('som är false, ', function () { it('klick på elementet triggar inte callbackfunktionen', function () { expect($scope.anValue).toBe(0); document.trigger(new jQuery.Event('click', { target: element.find('#theDiv') })); $scope.$digest(); expect($scope.anValue).toBe(0); }); it('klick utan elementet triggar callbackfunktionen', function () { expect($scope.anValue).toBe(0); document.trigger(new jQuery.Event('click', { target: element })); $scope.$digest(); expect($scope.anValue).toBe(0); }); }); describe('som är true, ', function () { it('klick på elementet triggar inte callbackfunktionen', function () { $scope.theCondition = true; $scope.$digest(); expect($scope.anValue).toBe(0); document.trigger(new jQuery.Event('click', { target: element.find('#theDiv') })); $scope.$digest(); expect($scope.anValue).toBe(0); }); it('klick utan elementet triggar callbackfunktionen', function () { $scope.theCondition = true; $scope.$digest(); expect($scope.anValue).toBe(0); document.trigger(new jQuery.Event('click', { target: element })); $scope.$digest(); expect($scope.anValue).toBe(1); }); }); }); });