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

会有一股神秘感。 提交于 2019-12-22 10:13: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.



来源:https://stackoverflow.com/questions/20565968/submitting-a-form-within-karma-process-some-of-your-tests-did-a-full-page-rel

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