Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 853d998

Browse files
kinoliJesse Knowles
and
Jesse Knowles
authored
fix: Make fireEvent.update work with lazy modifier (#183)
- switched to use change event if lazy modifier is found on element - updated form unit test to test lazy input and textarea Co-authored-by: Jesse Knowles <jknowles@westjet.com>
1 parent 4376e64 commit 853d998

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

‎src/__tests__/components/Form.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
<label for="movie-input">Title of the movie</label>
66
<input id="movie-input" v-model="title" name="title" />
77

8+
<label for="director-input">Director of the movie</label>
9+
<input id="director-input" v-model.lazy="director" name="director" />
10+
811
<label id="review-textarea">Your review</label>
912
<textarea
1013
v-model="review"
@@ -13,6 +16,14 @@
1316
aria-labelledby="review-textarea"
1417
/>
1518

19+
<label id="notes-textarea">Add some notes</label>
20+
<textarea
21+
v-model.lazy="notes"
22+
name="notes-textarea"
23+
placeholder="Add some notes"
24+
aria-labelledby="notes-textarea"
25+
/>
26+
1627
<label>
1728
<input v-model="rating" type="radio" value="3" />
1829
Wonderful
@@ -46,7 +57,9 @@ export default {
4657
data() {
4758
return {
4859
title: '',
60+
director: '',
4961
review: '',
62+
notes: '',
5063
rating: '1',
5164
recommend: false,
5265
}
@@ -63,7 +76,9 @@ export default {
6376
6477
this.$emit('submit', {
6578
title: this.title,
79+
director: this.director,
6680
review: this.review,
81+
notes: this.notes,
6782
rating: this.rating,
6883
recommend: this.recommend,
6984
})

‎src/__tests__/form.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ test('Review form submits', async () => {
1111
jest.spyOn(console, 'warn').mockImplementation(() => {})
1212
const fakeReview = {
1313
title: 'An Awesome Movie',
14+
director: 'Stephen Spielberg',
1415
review: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
16+
notes: 'Add something',
1517
rating: '3',
1618
}
1719

@@ -31,9 +33,15 @@ test('Review form submits', async () => {
3133
const titleInput = getByLabelText(/titleofthemovie/i)
3234
await fireEvent.update(titleInput, fakeReview.title)
3335

36+
const directorInput = getByLabelText(/directorofthemovie/i)
37+
await fireEvent.update(directorInput, fakeReview.director)
38+
3439
const reviewTextarea = getByPlaceholderText('Write an awesome review')
3540
await fireEvent.update(reviewTextarea, fakeReview.review)
3641

42+
const notesTextarea = getByPlaceholderText('Add some notes')
43+
await fireEvent.update(notesTextarea, fakeReview.notes)
44+
3745
// Rating Radio buttons.
3846
const initiallySelectedInput = getByLabelText('Awful')
3947
const ratingSelect = getByLabelText('Wonderful')

‎src/vue-testing-library.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,18 @@ fireEvent.update = (elem, value) => {
160160
return fireEvent.change(elem)
161161
} else {
162162
elem.value = value
163+
if (elem._vModifiers && elem._vModifiers.lazy) {
164+
return fireEvent.change(elem)
165+
}
163166
return fireEvent.input(elem)
164167
}
165168
}
166169

167170
case 'TEXTAREA': {
168171
elem.value = value
172+
if (elem._vModifiers && elem._vModifiers.lazy) {
173+
return fireEvent.change(elem)
174+
}
169175
return fireEvent.input(elem)
170176
}
171177

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /