File tree Expand file tree Collapse file tree 2 files changed +26
-3
lines changed Expand file tree Collapse file tree 2 files changed +26
-3
lines changed Original file line number Diff line number Diff line change @@ -199,6 +199,27 @@ describe("userEvent.selectOptions", () => {
199
199
expect ( getByTestId ( "val3" ) . selected ) . toBe ( false ) ;
200
200
} ) ;
201
201
202
+ it ( "should fire onChange event on a SELECT element" , ( ) => {
203
+ const onChangeHandler = jest . fn ( ) ;
204
+
205
+ const { getByTestId } = render (
206
+ < select data-testid = "element" onChange = { onChangeHandler } >
207
+ < option data-testid = "val1" value = "1" >
208
+ 1
209
+ </ option >
210
+ < option data-testid = "val2" value = "2" >
211
+ 2
212
+ </ option >
213
+ < option data-testid = "val3" value = "3" >
214
+ 3
215
+ </ option >
216
+ </ select > ) ;
217
+
218
+ userEvent . selectOptions ( getByTestId ( "element" ) , "2" ) ;
219
+
220
+ expect ( onChangeHandler ) . toBeCalled ( ) ;
221
+ } ) ;
222
+
202
223
it ( "sets the selected prop on the selected OPTION using nested SELECT" , ( ) => {
203
224
const onSubmit = jest . fn ( ) ;
204
225
Original file line number Diff line number Diff line change @@ -79,7 +79,7 @@ function dblClickCheckbox(checkbox) {
79
79
fireEvent . click ( checkbox ) ;
80
80
}
81
81
82
- function selectOption ( option ) {
82
+ function selectOption ( select , option ) {
83
83
fireEvent . mouseOver ( option ) ;
84
84
fireEvent . mouseMove ( option ) ;
85
85
fireEvent . mouseDown ( option ) ;
@@ -88,6 +88,8 @@ function selectOption(option) {
88
88
fireEvent . click ( option ) ;
89
89
90
90
option . selected = true ;
91
+
92
+ fireEvent . change ( select ) ;
91
93
}
92
94
93
95
function fireChangeEvent ( event ) {
@@ -162,9 +164,9 @@ const userEvent = {
162
164
163
165
if ( selectedOptions . length > 0 ) {
164
166
if ( element . multiple ) {
165
- selectedOptions . forEach ( option => selectOption ( option ) ) ;
167
+ selectedOptions . forEach ( option => selectOption ( element , option ) ) ;
166
168
} else {
167
- selectOption ( selectedOptions [ 0 ] ) ;
169
+ selectOption ( element , selectedOptions [ 0 ] ) ;
168
170
}
169
171
}
170
172
You can’t perform that action at this time.
0 commit comments