diff --git a/karma.conf.js b/karma.conf.js index 9f5fe99f30..cd015bf9bb 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -61,6 +61,8 @@ module.exports = function(config) { "website/public/js/filters/roundLargeNumbers.js", "website/public/js/filters/taskOrdering.js", + "website/public/js/directives/expand-menu.directive.js", + "website/public/js/directives/close-menu.directive.js", "website/public/js/directives/focus-me.directive.js", "website/public/js/directives/from-now.directive.js", "website/public/js/directives/habitrpg-tasks.directive.js", diff --git a/test/spec/directives/close-menu.directive.js b/test/spec/directives/close-menu.directive.js new file mode 100644 index 0000000000..7cf41d571c --- /dev/null +++ b/test/spec/directives/close-menu.directive.js @@ -0,0 +1,32 @@ +'use strict'; + +describe('closeMenu Directive', function() { + var element, menuElement, scope, ctrl; + + beforeEach(module('habitrpg')); + + beforeEach(inject(function($rootScope, $compile, $controller) { + scope = $rootScope.$new(); + + ctrl = $controller('MenuCtrl', {$scope: scope}); + + element = ''; + + element = $compile(element)(scope); + menuElement = $compile(element)(scope); + scope.$digest(); + })); + + it('closes a connected menu when element is clicked', function() { + inject(function($timeout) { + var clickSpy = sandbox.spy(); + + element.appendTo(document.body); + element.on('click', clickSpy); + element.triggerHandler('click'); + + expect(scope._expandedMenu).to.equal(null) + expect(clickSpy).to.have.been.called; + }); + }); +}); diff --git a/test/spec/directives/expand-menu.directive.js b/test/spec/directives/expand-menu.directive.js new file mode 100644 index 0000000000..9c53149486 --- /dev/null +++ b/test/spec/directives/expand-menu.directive.js @@ -0,0 +1,32 @@ +'use strict'; + +describe('expandMenu Directive', function() { + var element, menuElement, scope, ctrl, elm; + + beforeEach(module('habitrpg')); + + beforeEach(inject(function($rootScope, $compile, $controller) { + scope = $rootScope.$new(); + + ctrl = $controller('MenuCtrl', {$scope: scope}); + + element = ''; + + element = $compile(element)(scope); + menuElement = $compile(element)(scope); + scope.$digest(); + })); + + it('expands a connected menu when element is clicked', function() { + inject(function($timeout) { + var clickSpy = sandbox.spy(); + + element.appendTo(document.body); + + element.on('click', clickSpy); + element.triggerHandler('click'); + + expect(clickSpy).to.have.been.called; + }); + }); +});