У меня есть этот тест.
test('Can registerFormListener', () => {
const spy = jest.spyOn(wrapper.vm, "registerFormListener");
wrapper.vm.registerFormListener();
expect(spy).toBeCalled();
});
Это шпионит за этой функцией.
registerFormListener: function () {
oiService.initFormValidation(selection);
}
, которая вызывает эту функцию проверки.
static initFormValidation(selection: string, () => void) {
$(selector).validate({
rules: {
email: {
required: false,
email: true
},
},
messages: {
email: {
required: "Please enter an email"
},
},
submitHandler: function() {
onSubmit != null ? onSubmit() : null;
}
});
}
Однако, Шут не замечает ни одного из jQuery в этой функции. Я получаю сообщение об ошибке TypeError: $(...).validate is not a function
.
В моем пакете установлено jQuery. json, но чтобы Jest мог его поднять, мне пришлось добавить файл setup-jest. js и скажите ему, чтобы он забрал все глобальные переменные, которые мы используем.
Нужно ли мне также добавить эту и все остальные функции jQuery в этот файл setup-jest, чтобы заставить его забрать функцию проверки? Или есть другое решение?