diff --git a/test/spec/controllers/authCtrlSpec.js b/test/spec/controllers/authCtrlSpec.js index 20706cf9c8..d91ad5c600 100644 --- a/test/spec/controllers/authCtrlSpec.js +++ b/test/spec/controllers/authCtrlSpec.js @@ -8,6 +8,7 @@ describe('Auth Controller', function() { beforeEach(function(){ module(function($provide) { $provide.value('Analytics', analyticsMock); + $provide.value('Chat', { seenMessage: function() {} }); }); inject(function(_$httpBackend_, $rootScope, $controller) { @@ -22,21 +23,29 @@ describe('Auth Controller', function() { }) }); - it('should log in users with correct uname / pass', function() { - $httpBackend.expectPOST('/api/v2/user/auth/local').respond({id: 'abc', token: 'abc'}); - scope.auth(); - $httpBackend.flush(); - expect(user.authenticate).to.be.calledOnce; - expect($window.alert).to.not.be.called; + describe('logging in', function() { + + it('should log in users with correct uname / pass', function() { + $httpBackend.expectPOST('/api/v2/user/auth/local').respond({id: 'abc', token: 'abc'}); + scope.auth(); + $httpBackend.flush(); + expect(user.authenticate).to.be.calledOnce; + expect($window.alert).to.not.be.called; + }); + + it('should not log in users with incorrect uname / pass', function() { + $httpBackend.expectPOST('/api/v2/user/auth/local').respond(404, ''); + scope.auth(); + $httpBackend.flush(); + expect(user.authenticate).to.not.be.called; + expect($window.alert).to.be.calledOnce; + }); }); - it('should not log in users with incorrect uname / pass', function() { - $httpBackend.expectPOST('/api/v2/user/auth/local').respond(404, ''); - scope.auth(); - $httpBackend.flush(); - expect(user.authenticate).to.not.be.called; - expect($window.alert).to.be.calledOnce; + describe('clearMessage', function() { + it('is Chat.seenMessage', inject(function(Chat) { + expect(scope.clearMessages).to.eql(Chat.seenMessage); + })); }); }); - }); diff --git a/website/public/js/controllers/authCtrl.js b/website/public/js/controllers/authCtrl.js index eb62d87d52..88ee5fef87 100644 --- a/website/public/js/controllers/authCtrl.js +++ b/website/public/js/controllers/authCtrl.js @@ -5,8 +5,8 @@ */ angular.module('habitrpg') - .controller("AuthCtrl", ['$scope', '$rootScope', 'User', '$http', '$location', '$window','ApiUrl', '$modal', 'Analytics', - function($scope, $rootScope, User, $http, $location, $window, ApiUrl, $modal, Analytics) { + .controller("AuthCtrl", ['$scope', '$rootScope', 'User', '$http', '$location', '$window','ApiUrl', '$modal', 'Analytics', 'Chat', + function($scope, $rootScope, User, $http, $location, $window, ApiUrl, $modal, Analytics, Chat) { $scope.Analytics = Analytics; $scope.logout = function() { @@ -102,6 +102,7 @@ angular.module('habitrpg') } }; + // @TODO: Pull out menu stuff into separate menu controller $scope.expandMenu = function(menu) { $scope._expandedMenu = ($scope._expandedMenu == menu) ? null : menu; }; @@ -121,6 +122,8 @@ angular.module('habitrpg') } }; + $scope.clearMessages = Chat.seenMessage; + $scope.iconClasses = function() { return selectNotificationValue( "glyphicon-gift", diff --git a/website/views/shared/header/menu.jade b/website/views/shared/header/menu.jade index 182227762f..964546eeaf 100644 --- a/website/views/shared/header/menu.jade +++ b/website/views/shared/header/menu.jade @@ -92,7 +92,7 @@ nav.toolbar(ng-controller='AuthCtrl', ng-class='{active: isToolbarHidden}') li a(ui-sref='options.profile.stats')=env.t('stats') li - a(ui-sref='options.profile.profile')=env.t('profile') + a(ui-sref='options.profile.profile')=env.t('profile') li.toolbar-button-dropdown a(ui-sref='options.social.inbox', ng-if='user.inbox.newMessages') span.badge.badge-danger {{user.inbox.newMessages}} @@ -171,7 +171,7 @@ nav.toolbar(ng-controller='AuthCtrl', ng-class='{active: isToolbarHidden}') ul.toolbar-subscribe(ng-if='!user.purchased.plan.customerId') li.toolbar-subscribe-button button.highlight(ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe') - ul.toolbar-options + ul.toolbar-options li.toolbar-notifs a(ng-click='expandMenu("notifs")') span.glyphicon(ng-class='iconClasses()') @@ -200,7 +200,7 @@ nav.toolbar(ng-controller='AuthCtrl', ng-class='{active: isToolbarHidden}') a(ng-click='k==party._id ? $state.go("options.social.party") : $state.go("options.social.guilds.detail",{gid:k}); expandMenu(null)') span.glyphicon.glyphicon-comment span {{v.name}} - a(ng-click='Groups.seenMessage(k)', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true') + a(ng-click='clearMessages(k)', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true') span.glyphicon.glyphicon-remove-circle // li(ng-if='user.items.special.valentineReceived[0] || user.items.special.nyeReceived[0]') a(ng-click='$state.go("options.inventory.drops"); expandMenu(null)')