Skip to content

Commit cadf203

Browse files
committed
convert test/Combobox
1 parent 479238a commit cadf203

File tree

1 file changed

+58
-69
lines changed

1 file changed

+58
-69
lines changed

packages/editor/test/Combobox.js renamed to packages/editor/test/Combobox.tsx

Lines changed: 58 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,29 @@ import {
66
act,
77
waitForElement,
88
waitForDomChange,
9-
cleanup
9+
cleanup,
1010
} from '@testing-library/react'
1111
import Combobox from '../src/Combobox'
1212

13+
const noop = () => {}
14+
1315
afterEach(cleanup)
1416

1517
test('renders', () => {
16-
const json = renderer.create(
17-
<Combobox />
18-
).toJSON()
18+
const json = renderer
19+
.create(<Combobox name="beep" value="beep" onChange={noop} />)
20+
.toJSON()
1921
expect(json).toMatchSnapshot()
2022
})
2123

2224
test('clicking chevron button shows menu', async () => {
2325
const tree = render(
2426
<Combobox
25-
label='Beep'
26-
name='beep'
27-
options={[
28-
'beep',
29-
'boop',
30-
]}
27+
label="Beep"
28+
name="beep"
29+
value="beep"
30+
options={['beep', 'boop']}
31+
onChange={noop}
3132
/>
3233
)
3334
const button = await tree.getByRole('button')
@@ -40,18 +41,16 @@ test('clicking item updates value', async () => {
4041
const onChange = jest.fn()
4142
const tree = render(
4243
<Combobox
43-
label='Beep'
44-
name='beep'
45-
options={[
46-
'beep',
47-
'boop',
48-
]}
44+
label="Beep"
45+
name="beep"
46+
value="beep"
47+
options={['beep', 'boop']}
4948
onChange={onChange}
5049
/>
5150
)
5251
const button = await tree.getByRole('button')
5352
fireEvent.click(button)
54-
const [ option ] = await waitForElement(() => tree.findAllByRole('option'))
53+
const [option] = await waitForElement(() => tree.findAllByRole('option'))
5554
fireEvent.click(option)
5655
expect(onChange).toHaveBeenCalledWith('beep')
5756
})
@@ -60,12 +59,10 @@ test('down arrow moves selection down', async () => {
6059
const onChange = jest.fn()
6160
const tree = render(
6261
<Combobox
63-
label='Beep'
64-
name='beep'
65-
options={[
66-
'beep',
67-
'boop',
68-
]}
62+
label="Beep"
63+
name="beep"
64+
value="beep"
65+
options={['beep', 'boop']}
6966
onChange={onChange}
7067
/>
7168
)
@@ -91,12 +88,10 @@ test('up arrow moves selection up', async () => {
9188
const onChange = jest.fn()
9289
const tree = render(
9390
<Combobox
94-
label='Beep'
95-
name='beep'
96-
options={[
97-
'beep',
98-
'boop',
99-
]}
91+
label="Beep"
92+
name="beep"
93+
value="beep"
94+
options={['beep', 'boop']}
10095
onChange={onChange}
10196
/>
10297
)
@@ -125,12 +120,11 @@ test('up arrow moves selection up', async () => {
125120
test('escape key closes listbox', async () => {
126121
const tree = render(
127122
<Combobox
128-
label='Beep'
129-
name='beep'
130-
options={[
131-
'beep',
132-
'boop',
133-
]}
123+
label="Beep"
124+
name="beep"
125+
value="beep"
126+
options={['beep', 'boop']}
127+
onChange={noop}
134128
/>
135129
)
136130
const button = await tree.getByRole('button')
@@ -149,12 +143,11 @@ test('escape key closes listbox', async () => {
149143
test('down arrow key opens listbox', async () => {
150144
const tree = render(
151145
<Combobox
152-
label='Beep'
153-
name='beep'
154-
options={[
155-
'beep',
156-
'boop',
157-
]}
146+
label="Beep"
147+
name="beep"
148+
value="beep"
149+
options={['beep', 'boop']}
150+
onChange={noop}
158151
/>
159152
)
160153
const input = await tree.getByLabelText('Beep')
@@ -171,12 +164,11 @@ test('down arrow key opens listbox', async () => {
171164
test('up arrow key opens listbox', async () => {
172165
const tree = render(
173166
<Combobox
174-
label='Beep'
175-
name='beep'
176-
options={[
177-
'beep',
178-
'boop',
179-
]}
167+
label="Beep"
168+
name="beep"
169+
value="beep"
170+
options={['beep', 'boop']}
171+
onChange={noop}
180172
/>
181173
)
182174
const input = await tree.getByLabelText('Beep')
@@ -193,12 +185,11 @@ test('up arrow key opens listbox', async () => {
193185
test('ignores keypresses with meta key', async () => {
194186
const tree = render(
195187
<Combobox
196-
label='Beep'
197-
name='beep'
198-
options={[
199-
'beep',
200-
'boop',
201-
]}
188+
label="Beep"
189+
name="beep"
190+
value="beep"
191+
options={['beep', 'boop']}
192+
onChange={noop}
202193
/>
203194
)
204195
const input = await tree.getByLabelText('Beep')
@@ -208,20 +199,19 @@ test('ignores keypresses with meta key', async () => {
208199
fireEvent.keyDown(input, {
209200
key: 'ArrowDown',
210201
keyCode: 40,
211-
metaKey: true
202+
metaKey: true,
212203
})
213204
expect(listbox.style.visibility).toBe('hidden')
214205
})
215206

216207
test('ignores return key when closed', async () => {
217208
const tree = render(
218209
<Combobox
219-
label='Beep'
220-
name='beep'
221-
options={[
222-
'beep',
223-
'boop',
224-
]}
210+
label="Beep"
211+
name="beep"
212+
value="beep"
213+
options={['beep', 'boop']}
214+
onChange={noop}
225215
/>
226216
)
227217
const input = await tree.getByLabelText('Beep')
@@ -237,15 +227,14 @@ test('ignores return key when closed', async () => {
237227

238228
// todo
239229
test.skip('blur closes listbox', async () => {
240-
global.requestAnimationFrame = jest.fn(fn => setTimeout(fn, 1))
230+
;(global as any).requestAnimationFrame = jest.fn(fn => setTimeout(fn, 1))
241231
const tree = render(
242232
<Combobox
243-
label='Beep'
244-
name='beep'
245-
options={[
246-
'beep',
247-
'boop',
248-
]}
233+
label="Beep"
234+
name="beep"
235+
value="beep"
236+
options={['beep', 'boop']}
237+
onChange={noop}
249238
/>
250239
)
251240
const button = await tree.getByRole('button')
@@ -255,8 +244,8 @@ test.skip('blur closes listbox', async () => {
255244
const listbox = await tree.getByRole('listbox', {
256245
hidden: true,
257246
})
258-
expect(global.requestAnimationFrame).toHaveBeenCalled()
247+
expect((global as any).requestAnimationFrame).toHaveBeenCalled()
259248
// not sure how to use testing-library here
260-
await waitForDomChange({ container: tree })
249+
await waitForDomChange({ container: (tree as unknown) as HTMLElement })
261250
expect(listbox.style.visibility).toBe('hidden')
262251
})

0 commit comments

Comments
 (0)