Как проверить наличие компонента начальной загрузки в модульных тестах с помощью jest? - PullRequest
0 голосов
/ 12 июля 2019

Итак, у меня есть некоторый код с b-form-input компонентом, и я проверяю, визуализируется ли этот компонент.Я использую wrapper.find({name: "b-form-input"}).exists(), чтобы определить, существует ли этот компонент начальной загрузки.Однако эта функция постоянно возвращает false, когда я знаю, что компонент выполняет рендеринг.Могу ли я получить некоторую помощь о том, как сделать это правильно?

1 Ответ

2 голосов
/ 12 июля 2019

Глядя на исходный код bootstrap-vue, похоже, что имя элемента BFormInput, а не b-form-input (оно было зарегистрировано с использованием kebab-case):

https://github.com/bootstrap-vue/bootstrap-vue/blob/2fb5ce823a577fcc2414d78bd43ed9e5351cb1c0/src/components/form-input/form-input.js#L33

...
export const BFormInput = /*#__PURE__*/ Vue.extend({
  name: 'BFormInput',
  ...

У вас есть две возможности найти компонент; используя имя или конструктор компонента. Например:

import BootstrapVue, { BFormInput } from 'bootstrap-vue';
import { shallowMount, createLocalVue } from '@vue/test-utils';
import HelloWorld from '@/components/HelloWorld.vue';

const localVue = createLocalVue();
localVue.use(BootstrapVue);

describe('HelloWorld.vue', () => {
  it('BFormInput exists', () => {
    const wrapper = shallowMount(HelloWorld, { localVue })
    expect(wrapper.find({ name: 'BFormInput' }).exists()).toBe(true);
    expect(wrapper.find(BFormInput).exists()).toBe(true);
  });
});
...