jeudi 29 janvier 2015

Form validation in unit test

I have following test:



beforeEach(inject(function ($rootScope, _$controller_, _$httpBackend_, Auth, $window) {
$http = _$httpBackend_;
$scope = $rootScope.$new();
$controller = _$controller_;
$authSvc = Auth;
}));


....



it('login button and form fields are empty', function () {
$http.expectPOST('/api/users/login', controller.loginUser).respond(400, failResponse);
controller.login();
$http.flush();
});


But when I run it - I got error:



LOG: undefined
PhantomJS 1.9.8 (Mac OS X) Layout test: Login: When i click on login button and form fields are empty FAILED
TypeError: 'undefined' is not an object (evaluating 'vm.loginForm.login')
at /Users/nucleartux/Work/projects/ondoc-angular/app/scripts/controllers/layout.js:69


On this line in controller I have:



console.log(vm.loginForm);
vm.loginForm.login.$setValidity('wrong', false);


How I can solve this error? How to "compile" controller include form?


Aucun commentaire:

Enregistrer un commentaire