Работа над Jest с таймерами для vee validate - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь определить, отключена ли моя кнопка, но свойство disabled продолжает возвращать значение undefined. Я проверил и выполнил инструкции в https://logaretm.github.io/vee-validate/advanced/testing.html#testing -validationobserver-debounced-state , но это не работает соответствующим образом. Думаю, именно так я реализовал фиктивные таймеры Jest. Ниже мой код

import { mount, createLocalVue } from "@vue/test-utils";
import { ValidationObserver, ValidationProvider } from "vee-validate";
import { BootstrapVue } from "bootstrap-vue";
import Login from "@/pages/login.vue";

const localVue = createLocalVue();
localVue.component("ValidationObserver", ValidationObserver);
localVue.component("ValidationProvider", ValidationProvider);
localVue.use(BootstrapVue);

jest.useFakeTimers();

describe("Login", () => {
  test("if username is not entered", () => {
    const wrapper = mount(Login, { localVue });
    const username = wrapper.find("#username");
    const password = wrapper.find("#password");
    const login = wrapper.find("#login");
    jest.advanceTimersByTime(50);
    username.element.value = "test";
    password.element.value = "test";
    expect(login.attributes("disabled")).toBe(true);
  });
});

В основном, поведение моей формы входа таково ... Кнопка входа в систему отключена до тех пор, пока пользователь не введет значение во входные данные для имени пользователя и пароля.

Я также используя Nuxt JS для этого

1 Ответ

0 голосов
/ 22 мая 2020

Вам все равно придется ждать ожидающих выполнения обещаний, а также использовать flush-promises. В документации предлагается сделать и то, и другое в рамках специального метода sh гриппа.

async function flush() {
  await flushPromises();
  jest.runAllTimers();
}
...