Forráskód Böngészése

Fix: testing account switch

febbweiss 10 éve
szülő
commit
f55f3e1eba
2 módosított fájl, 19 hozzáadás és 7 törlés
  1. 5 7
      public/js/global.controller.js
  2. 14 0
      test/global.controller.spec.js

+ 5 - 7
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);

+ 14 - 0
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')
+    }));
 
 });