Skip to content

Commit e1682a8

Browse files
committed
chore: Add test for tabindex
1 parent 9fb3f2f commit e1682a8

File tree

1 file changed

+49
-14
lines changed

1 file changed

+49
-14
lines changed

src/components/__tests__/Tabs-test.js

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,46 @@ describe('<Tabs />', () => {
133133
});
134134

135135
describe('keyboard', () => {
136+
test('should change focus on tab and tabindex set', async () => {
137+
render(
138+
<Tabs>
139+
<TabList>
140+
<Tab data-testid="tab1" tabIndex="0">
141+
Tab1
142+
</Tab>
143+
<Tab data-testid="tab2" tabIndex="0">
144+
Tab2
145+
</Tab>
146+
<Tab data-testid="tab3" tabIndex="0">
147+
Tab3
148+
</Tab>
149+
</TabList>
150+
<TabPanel data-testid="panel1">Hello Tab1</TabPanel>
151+
<TabPanel data-testid="panel2">Hello Tab2</TabPanel>
152+
<TabPanel data-testid="panel3">Hello Tab3</TabPanel>
153+
</Tabs>,
154+
);
155+
const element = screen.getByTestId('tab1');
156+
await userEvent.click(element);
157+
158+
assertTabSelected(1);
159+
160+
await userEvent.keyboard('[Tab]');
161+
await userEvent.keyboard('[Enter]');
162+
163+
assertTabSelected(2);
164+
165+
await userEvent.keyboard('[Tab]');
166+
await userEvent.keyboard('[Space]');
167+
168+
assertTabSelected(3);
169+
});
170+
136171
test('should update selectedIndex when arrow right key pressed', async () => {
137172
render(createTabs());
138173
const element = screen.getByTestId('tab1');
139174
await userEvent.click(element);
140-
await userEvent.type(element, '{ArrowRight}');
175+
await userEvent.type(element, '[ArrowRight]');
141176

142177
assertTabSelected(2);
143178
});
@@ -146,7 +181,7 @@ describe('<Tabs />', () => {
146181
render(createTabs());
147182
const element = screen.getByTestId('tab3');
148183
await userEvent.click(element);
149-
await userEvent.type(element, '{ArrowRight}');
184+
await userEvent.type(element, '[ArrowRight]');
150185

151186
assertTabSelected(1);
152187
});
@@ -166,7 +201,7 @@ describe('<Tabs />', () => {
166201
);
167202
const element = screen.getByTestId('tab1');
168203
await userEvent.click(element);
169-
await userEvent.keyboard('{ArrowRight}');
204+
await userEvent.keyboard('[ArrowRight]');
170205

171206
assertTabSelected(1);
172207
});
@@ -175,7 +210,7 @@ describe('<Tabs />', () => {
175210
render(createTabs());
176211
const element = screen.getByTestId('tab1');
177212
await userEvent.click(element);
178-
await userEvent.keyboard('{ArrowLeft}');
213+
await userEvent.keyboard('[ArrowLeft]');
179214

180215
assertTabSelected(3);
181216
});
@@ -195,7 +230,7 @@ describe('<Tabs />', () => {
195230
);
196231
const element = screen.getByTestId('tab2');
197232
await userEvent.click(element);
198-
await userEvent.keyboard('{ArrowLeft}');
233+
await userEvent.keyboard('[ArrowLeft]');
199234

200235
assertTabSelected(2);
201236
});
@@ -204,7 +239,7 @@ describe('<Tabs />', () => {
204239
render(createTabs());
205240
const element = screen.getByTestId('tab3');
206241
await userEvent.click(element);
207-
await userEvent.type(element, '{Home}');
242+
await userEvent.type(element, '[Home]');
208243

209244
assertTabSelected(1);
210245
});
@@ -213,7 +248,7 @@ describe('<Tabs />', () => {
213248
render(createTabs());
214249
const element = screen.getByTestId('tab1');
215250
await userEvent.click(element);
216-
await userEvent.type(element, '{End}');
251+
await userEvent.type(element, '[End]');
217252

218253
assertTabSelected(3);
219254
});
@@ -222,7 +257,7 @@ describe('<Tabs />', () => {
222257
render(createTabs({ direction: 'rtl' }));
223258
const element = screen.getByTestId('tab1');
224259
await userEvent.click(element);
225-
await userEvent.type(element, '{ArrowLeft}');
260+
await userEvent.type(element, '[ArrowLeft]');
226261

227262
assertTabSelected(2);
228263
});
@@ -231,7 +266,7 @@ describe('<Tabs />', () => {
231266
render(createTabs({ direction: 'rtl' }));
232267
const element = screen.getByTestId('tab2');
233268
await userEvent.click(element);
234-
await userEvent.type(element, '{ArrowRight}');
269+
await userEvent.type(element, '[ArrowRight]');
235270

236271
assertTabSelected(1);
237272
});
@@ -240,7 +275,7 @@ describe('<Tabs />', () => {
240275
render(createTabs());
241276
const element = screen.getByTestId('tab4');
242277
await userEvent.click(element);
243-
await userEvent.type(element, '{ArrowLeft}');
278+
await userEvent.type(element, '[ArrowLeft]');
244279

245280
assertTabSelected(1);
246281
});
@@ -498,11 +533,11 @@ describe('<Tabs />', () => {
498533
expect(firstTab).toHaveFocus();
499534
assertTabSelected(1);
500535

501-
await userEvent.type(firstTab, '{ArrowDown}');
536+
await userEvent.type(firstTab, '[ArrowDown]');
502537
expect(secondTab).toHaveFocus();
503538
assertTabSelected(2);
504539

505-
await userEvent.type(secondTab, '{ArrowUp}');
540+
await userEvent.type(secondTab, '[ArrowUp]');
506541
expect(firstTab).toHaveFocus();
507542
assertTabSelected(1);
508543
});
@@ -568,11 +603,11 @@ describe('<Tabs />', () => {
568603
expect(firstTab).toHaveFocus();
569604
assertTabSelected(1);
570605

571-
await userEvent.type(firstTab, '{ArrowDown}');
606+
await userEvent.type(firstTab, '[ArrowDown]');
572607
expect(firstTab).toHaveFocus();
573608
assertTabSelected(1);
574609

575-
await userEvent.type(firstTab, '{ArrowUp}');
610+
await userEvent.type(firstTab, '[ArrowUp]');
576611
expect(firstTab).toHaveFocus();
577612
assertTabSelected(1);
578613
});

0 commit comments

Comments
 (0)