Skip to content

Commit d5aed71

Browse files
committed
fix(userEvent): Port test to dom-testing-library
1 parent 3155890 commit d5aed71

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

src/user-event/__tests__/helpers/utils.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,14 @@ function setup(ui, {eventHandlers} = {}) {
2424
return {element, ...addListeners(element, {eventHandlers})}
2525
}
2626

27-
function setupSelect({multiple = false} = {}) {
27+
function setupSelect({disabled = false, multiple = false} = {}) {
2828
const form = document.createElement('form')
2929
form.innerHTML = `
30-
<select name="select" ${multiple ? 'multiple' : ''}>
30+
<select
31+
name="select"
32+
${disabled ? 'disabled' : ''}
33+
${multiple ? 'multiple' : ''}
34+
>
3135
<option value="1">1</option>
3236
<option value="2">2</option>
3337
<option value="3">3</option>

src/user-event/__tests__/select-options.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,18 +108,14 @@ test('throws an error if multiple are passed but not a multiple select', async (
108108
expect(error.message).toMatch(/cannot select multiple/i)
109109
})
110110

111-
test('does not select anything if select is disabled', () => {
112-
const {
113-
container: {firstChild: select},
114-
} = render(
115-
<select disabled>
116-
<option>No value selected</option>
117-
<option value="1">1</option>
118-
<option value="2">2</option>
119-
<option value="3">3</option>
120-
</select>,
111+
test('does not select anything if select is disabled', async () => {
112+
const {select, options, getEventSnapshot} = setupSelect({disabled: true})
113+
await userEvent.selectOptions(select, '2')
114+
expect(getEventSnapshot()).toMatchInlineSnapshot(
115+
`No events were fired on: select[name="select"][value="1"]`,
121116
)
122-
123-
userEvent.selectOptions(select, '1')
124-
expect(select.selectedIndex).toBe(0)
117+
const [o1, o2, o3] = options
118+
expect(o1.selected).toBe(true)
119+
expect(o2.selected).toBe(false)
120+
expect(o3.selected).toBe(false)
125121
})

0 commit comments

Comments
 (0)