In one angular directive, I have this code:
$('[name=' + formName + ']').bind('submit', function () { validate(); });
In the beforeEach clause of a Karma test, I have this code:
bootstrapInput = $compile('<form novalidate name="aForm">' + '<input-field icon="true" for="email">' + '<div>' + '<input class="form-control" class="email" name="email" id="email" type="email" ng-model="user.email" required />' + '</div>' + '<input-validation for="email" custom-error="custom error" required="Email is required" email="Email must be in valid format"/>' + '</input-field>' + '<button type="submit" value="valider" ></button>' + '</form>')($rootScope);
And in my unit test, I have this code:
it('should launch validation process if form has just been submitted', function(){ bootstrapInput.submit(); //way of doing? expect(bootstrapInput.children().hasClass('has-error')).toBe(true); });
But I got the following error:
Some of your tests did a full page reload!
The question is: How to provoke a submit event to process inside a Karma unit test, without making page reload?