diff --git a/public/js/global.controller.js b/public/js/global.controller.js index bb0aa3e..d193d80 100644 --- a/public/js/global.controller.js +++ b/public/js/global.controller.js @@ -5,19 +5,17 @@ .module('cloudbudget') .controller('GlobalController', GlobalController); - GlobalController.$inject = ['$scope', '$rootScope', '$location']; + GlobalController.$inject = ['$location', '$rootScope']; - function GlobalController($scope, $rootScope, $location) { + function GlobalController($location, $rootScope) { var vm = this; vm.change_account = change_account; - vm.current_account = undefined; + vm.current_account = $rootScope.current_account;; - $scope.$watch(function() { - return $rootScope.current_account; - }, function() { + $rootScope.$watch('current_account', function() { vm.current_account = $rootScope.current_account; - }, true); + }); function change_account() { $location.path('/account/' + vm.current_account); diff --git a/test/global.controller.spec.js b/test/global.controller.spec.js index abf2fae..8fdbcbb 100644 --- a/test/global.controller.spec.js +++ b/test/global.controller.spec.js @@ -22,6 +22,9 @@ describe('GlobalController', function() { beforeEach(inject(function ( _$rootScope_, $controller, _$location_) { $location = _$location_; $rootScope = _$rootScope_; + $rootScope.globals = { + user: true + }; $scope = _$rootScope_.$new(); createController = function() { @@ -39,5 +42,16 @@ describe('GlobalController', function() { globalController.change_account(); $location.path().should.be.equal('/account/560a84058812ad8d0ff200ee') })); + + it('should change successfully', inject(function($location, $rootScope) { + var globalController = createController(); + globalController.current_account = '560a84058812ad8d0ff200ee'; + globalController.change_account(); + $rootScope.current_account = '560a7ad08812ad8d0ff20068'; + $rootScope.$digest(); + globalController.change_account(); + $rootScope.$digest(); + $location.path().should.be.equal('/account/560a7ad08812ad8d0ff20068') + })); }); \ No newline at end of file