Vue, Jest, jQuery - Тестирование jQuery Проверка - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть этот тест.

    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, чтобы заставить его забрать функцию проверки? Или есть другое решение?

1 Ответ

0 голосов
/ 11 февраля 2020

Не могу комментировать материал Jest, но $('.foo').validate() не является родным jQuery методом. Для этого требуется jQuery плагин проверки (или, возможно, какой-то другой плагин с методом validate(), но это тот, который я видел чаще всего).

Установили ли вы jquery-validation в вашем проекте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...