Краткое описание проблемы
У меня есть редактируемое содержимое div
, которое получает свойство content
, значением по умолчанию которого является пустая строка. Вместо использования синтаксиса усов для визуализации свойства {{ content }}
, я устанавливаю элементы innerText через смонтированный хук:
mounted() {this.$el.innerText = this.content}
Я создал юнитtest для проверки того, что текст компонента содержит свойство mocked, которое я передал в тест.
Компонент корректно отображается в браузере, но модульный тест завершается неудачно, предупреждая меня, что он не нашел никакого текста.
Вещи, которые я пробовал
Если я регистрирую wrapper.vm.$el.innerText
Я вижу строку, которую я высмеиваю.
Если я использую синтаксис усов (а неустановленный метод), т. е. <div>}{{ content}}</div>
, тест проходит.
Vue однофайловый компонент
<template>
<div
contenteditable="true"/>
</template>
<script>
export default {
props: {
content: {
default: '',
type: String,
},
},
mounted() {
this.$el.innerText = this.content;
},
}
</script>
Юнит-тест
describe('BaseEditable.vue', () => {
it('renders content property', () => {
const wrapper = shallowMount(BaseEditable, {
propsData: {
content: 'some random string',
},
});
expect(wrapper.text()).toContain('some random string');
});
То, что я ожидаю, и то, что я получил
Я ожидаю, что тест пройден.
Тем не менее, результат, который я получаю:
expect(string).toContain(value)
Expected string:
""
To contain value:
"some random string"