Submitting a form within Karma process => Some of your tests did a full page reload

匿名 (未验证) 提交于 2019-12-03 08:54:24

问题:

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?

回答1:

Same issue but I do a workaround using a click on the submit button.

bootstrapInput.find('input[type="submit"]').click(); expect(bootstrapInput.children().hasClass('has-error')).toBe(true); 

Hope someone will find an explication to this.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!