0

내 로그 아웃 기능은 로그 아웃 API에 요청을 보내고 세션을 효과적으로 끝내는 모든 쿠키를 삭제합니다. 그것은 정말 잘 작동하지만 내가 테스트 기능을 실행하면, 내가 얻을 :

for(var cookie in $.cookie()) { 
    $.removeCookie(cookie); 
} 
을 :

ReferenceError: $ is not defined 

나는이 로그 아웃 기능에, 나는 실행하여 내 모든 쿠키를 지우려고 할 때,에서 온다 알고

둘러보기 주셔서 감사합니다. $는 jQuery의 키워드입니다

컨트롤러

simulatorApp.controller('homeController', function homeController($scope, $http, $cookies, localAPI) { 
$scope.logout = function() { 
    var logoutRequest = { 
     method: 'POST', 
     url: localAPI.url + 'auth/logout/', 
     headers: requestHeaders 
    }; 
    $http(logoutRequest); 
    for(var cookie in $.cookie()) { 
     $.removeCookie(cookie); 
    } 
}; 

테스트

describe('homeController', function() { 
    beforeEach(module('simulatorApp')); 

    var controller; 
    beforeEach(inject(function(_$controller_) { 
     controller = _$controller_; 
    })); 

    var $scope = {}; 
    beforeEach(inject(function($controller, $httpBackend) { 
     $httpBackend.whenPOST("http://0.0.0.0:8000/api/logout/").respond("Good for you"); 
     controller('homeController', { 
      $scope: $scope 
     }); 
     $scope.logout(); 
     $httpBackend.flush() 
    })); 
}); 
+0

테스트에 jquery를 삽입하지 않은 것으로 보입니다. – Rebornix

답변

1

, 그래서 여기에 문제가 당신의 카르마 런타임은 $이 무엇인지 모른다 : 코드의 나머지 부분은 다음과 같습니다.

karma.conf.js의 파일 섹션에 jquery 소스를 추가하면이 문제가 해결됩니다.

+0

전화하세요. 고맙습니다! –

관련 문제