Покрытие Jest не отображается на функциональном компоненте vue

#vue.js #jestjs

#vue.js #jestjs

Вопрос:

У меня есть функциональный компонент Vue, в некоторых тестах используется Jest, но для этого файла значение покрытия равно 0. Это правильный способ тестирования функциональных компонентов в Vue?

это пример моего компонента

 <template functional>
      <div :class="['name', ...props.extraClasses]">
          {{ props.itemName }}
      </div>
</template>

<script>
export default {
    props: {
        itemName: {
            type: String,
            required: true,
        },
        extraClasses: {
            type: Array,
        },
    },
};
</script>
  

Так выглядит 1 из моих тестов

 test('it works correctly with all props', () => {

    const wrapper = shallow(cmp, {
        context: {
          props: {
            itemName: 'item name',
            extraClasses: ['extra1', 'extra2'],
          }
        },
      })
    const name = wrapper.find('.name');
    expect(name.classes()).toEqual(['name', 'extra1', 'extra2']);
    expect(name.text()).toBe('item name');
});
  

После запуска jest я вижу, что покрытие равно 0, а непокрытые строки являются реквизитами.
Есть ли какой-либо другой способ протестировать функциональный компонент?

И как мне заставить покрытие jest корректно работать для этого тестового файла?

Спасибо

Ответ №1:

сообщается, что это исправлено в версии 4 https://github.com/vuejs/vue-jest/issues/88 Я попытался перейти на vue-jest@4.0.0-beta.2 и подтвердил, что эта проблема была исправлена