Hi mọi người,
Mình đang học Vue, cụ thể là Vue 3 và sử dụng UI là Vuetify 3. Unittest mình dùng Vue Test Utils.
<v-text-field
prepend-inner-icon="mdi-email"
label="Email"
v-model="email"
data-testid="register_email-input"
></v-text-field>
Đây là khi nó render ra, data-testid
của mình nó ở ngoài, không nằm ở input
tag mà nằm trong 1 loạt components khác.
Mình đang muốn viết test khi user nhập vào valid mail. Nút submit sẽ được enable (disable by default)
it('User provide valid email', async () => {
const wrapper = mount(LearnTestComponent, {
props: {}
})
const submitBtn = wrapper.find('[data-testid="register_createAccount-btn"]')
const emailField = wrapper.find('[data-testid="register_email-input"]')
const inputField = emailField.find("input[type='text']")
expect(submitBtn.element.disabled).toBe(true)
// Input valid mail
await inputField.setValue('[email protected]')
expect(submitBtn.element.disabled).toBe(false)
})
Nhưng nó vẫn fail, mình chưa thạo đoạn này lắm. Nếu dùng trực tiếp thẻ input thì ok nhưng dùng với Vuetify cụ thể là v-text-field
thì không được. Mình nghĩ mình sai cú pháp. Mình có tìm doc hoặc tài liệu liên quan nhưng chưa thấy. Mọi người có thể góp ý mình được không?
Cảm ơn cả nhà.