я все еще новичок в модульном тестировании, и я хочу проверить, отображается ли связанная кнопка, когда вычисляемое свойство isLinkPresent
возвращает ссылку на изображение и не является пустым для этого компонента:
<template lang="pug">
.merchandising_image_title
.image(:style="`background-image: url('${imageTitle.image}');`" )
.panel
.top
h2 {{imageTitle.top_title}}
.line
.center
h1 {{imageTitle.center_title}}
.bottom(v-if="isLinkPresent")
a.btn.round( target='_blank' :href='imageTitle.link') Notify Me By Email
</template>
<script>
export default {
name: 'MerchandisingImageTitle',
props: {
imageTitle: Object
},
computed:{
isLinkPresent(){
return this.imageTitle.link && this.imageTitle.link !== ''
}
}
}
</script>
Я пытался проверить это таким образом, переписав вычисленное свойство:
it("renders linked button when image title has a link and is not empty", () => {
const wrapper = mount(ImageTitle, {
propsData: {
imageTitle: Object
},
computed: {
isLinkPresent() {
return this.imageTitle.link && this.imageTitle.link !== "";
}
}
});
expect(wrapper.find("a").isVisible()).toBe(true);
});
, но это дало мне эту ошибку:
[vue-test-utils]: find did not return a, cannot call isVisible() on empty Wrapper
13 | }
14 | });
> 15 | expect(wrapper.find("a").isVisible()).toBe(true);
| ^
16 | });
я не уверен, что я делаю неправильно, любойПомощь была бы признательна
edit: хорошо, поэтому я понял, что неправильно передал propsData, поэтому я изменил его на propsData: { imageTitle: { imageTitleData: { image: "", top_title: "", center_title: "", link: ""}}}
и сделал expect(wrapper.find(".bottom").exists()).toBe(true)
, так как isVisible () используется в основном в v-show, но все еще получаетэта ошибка: `визуализирует связанную кнопку, когда заголовок изображения имеет ссылку и не является пустым
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
20 | }
21 | });
> 22 | expect(wrapper.find(".bottom").exists()).toBe(true);
| ^
23 | });
24 |`