VueJs & Jest: метод тестирования рендеринга, возвращающий $ scopedSlots - PullRequest
0 голосов
/ 26 мая 2020

Есть ли способ тестирования функционального компонента, который возвращает this.$copedSlots.default() из метода render?

Пример того, что мне нужно:

Компонент

<script>
export default {
  name: 'TestComponent',
  props: {
    fields: {
      type: Object,
      default: () => {
        return {};
      },
    },
  },
  data() {
    return {
      inputs: this.fields,
    };
  },
  render() {
    return this.$scopedSlots.default({
      fields: this.inputs,
    });
  },
  watch: {
    fields(newValue) {
      this.inputs = newValue;
    },
  },
};
</script>

Test

describe('TestComponent.vue', () => {
  it('Returns correct fields when props.fields is passed', () => {
    const fields = {
      name: 'Jon Joe',
      email: 'jon@doe.com',
    };
    const wrapper = shallowMount(TestComponent, {
      propsData: { fields },
    });
    //... how to check props returned with the render() function
  });
});

В настоящий момент я получаю сообщение об ошибке при запуске этого теста, в котором говорится:

TypeError: this . $ scopedSlots.default не является функцией

...