Я работаю на веб-сайте с несколькими компонентами, которые содержат другие компоненты. Теперь я хотел бы проверить, правильно ли деактивирована кнопка сохранения формы, если данные не установлены. Я использую vuetify для пользовательского интерфейса и Jest для тестирования.
Вот мой родительский компонент, содержащий компонент edit-user-details:
<template>
<v-container>
<v-form v-model="valid">
<v-card>
<v-card-text>
<edit-user-details :user="user"></edit-user-details>
</v-card-text>
<v-card-actions>
<v-btn :disabled="!valid" @click="save()">Save</v-btn>
<v-btn @click="cancel()">Cancel</v-btn>
</v-card-actions>
</v-card>
</v-form>
</v-container>
</template>
<script>
export default {
name: "edit-user",
components: {},
data: () => ({
user: {},
valid: false
}),
methods: {
save() {
...
},
cancel() {
...}
}
}
}
</script>
Это часть компонента edit-user-details:
<template>
<v-container>
<v-text-field
v-model="user.userName"
label="Username*"
required
:rules="[v => !!v || 'Please, enter a user name.']"
></v-text-field>
...
</v-container>
</template>
<script>
export default {
name: "edit-user-details",
props: {
user: {
type: Object,
default: () => ({})
}
}
}
</script>
И вот у нас есть мой тест:
import { mount, createLocalVue } from '@vue/test-utils'
import EditUser from '../../src/views/EditUser'
import Vuetify from 'vuetify';
import EditUserDetails from '../../src/components/EditUserDetails'
describe('Edited user data ', () => {
it('can be saved if valid', () => {
const localVue = createLocalVue();
localVue.use(Vuetify)
localVue.use(EditUserDetails)
const wrapper = mount(EditUser, {
localVue: localVue
});
})
})
Тест зеленый, потому что он не имеет подтверждения. Основная проблема заключается в том, что я получаю эту ошибку: [Vue warn]: неизвестный пользовательский элемент: - вы правильно зарегистрировали компонент? Для рекурсивных компонентов обязательно укажите опцию «name».
Итак, мой вопрос: как я могу протестировать компонент, содержащий другие написанные мной компоненты?
Заранее благодарю за помощь.