Skip to content

Commit 4a97d42

Browse files
committed
add examples to new docs
1 parent 987096d commit 4a97d42

File tree

8 files changed

+196
-8
lines changed

8 files changed

+196
-8
lines changed

packages/@react-spectrum/checkbox/docs/CheckboxGroup.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ in your tests. Below is the full definition of the checkbox group tester and a s
343343

344344
```ts
345345
// CheckboxGroup.test.ts
346-
import {render, within} from '@testing-library/react';
346+
import {render} from '@testing-library/react';
347347
import {theme} from '@react-spectrum/theme-default';
348348
import {User} from '@react-spectrum/test-utils';
349349

packages/@react-spectrum/dialog/docs/Dialog.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ in your tests. Below is the full definition of the dialog tester and a sample of
409409

410410
```ts
411411
// Dialog.test.ts
412-
import {render, within} from '@testing-library/react';
412+
import {render} from '@testing-library/react';
413413
import {theme} from '@react-spectrum/theme-default';
414414
import {User} from '@react-spectrum/test-utils';
415415

packages/@react-spectrum/radio/docs/RadioGroup.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ in your tests. Below is the full definition of the radio group tester and a samp
317317

318318
```ts
319319
// RadioGroup.test.ts
320-
import {render, within} from '@testing-library/react';
320+
import {render} from '@testing-library/react';
321321
import {theme} from '@react-spectrum/theme-default';
322322
import {User} from '@react-spectrum/test-utils';
323323

packages/dev/s2-docs/pages/react-aria/testing.mdx

Lines changed: 96 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,38 @@ See below for the full definition of the `User` object.
230230

231231
### Patterns
232232

233-
<ExampleSwitcher type={null} examples={['ComboBox', 'GridList', 'ListBox', 'Menu', 'Select', 'Table', 'Tabs', 'Tree']}>
233+
<ExampleSwitcher type={null} examples={['CheckboxGroup', 'ComboBox', 'Dialog', 'GridList', 'ListBox', 'Menu', 'RadioGroup', 'Select', 'Table', 'Tabs', 'Tree']}>
234+
235+
<>
236+
```ts isInSwitcher
237+
// CheckboxGroup.test.ts
238+
import {render} from '@testing-library/react';
239+
import {User} from '@react-aria/test-utils';
240+
241+
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});
242+
// ...
243+
244+
it('CheckboxGroup can select multiple checkboxes', async function () {
245+
// Render your test component/app and initialize the checkbox group tester
246+
let {getByTestId} = render(
247+
<CheckboxGroup data-testid="test-checkboxgroup">
248+
...
249+
</CheckboxGroup>
250+
);
251+
let checkboxGroupTester = testUtilUser.createTester('CheckboxGroup', {root: getByTestId('test-checkboxgroup')});
252+
expect(checkboxGroupTester.selectedCheckboxes).toHaveLength(0);
253+
254+
await checkboxGroupTester.toggleCheckbox({checkbox: 0});
255+
expect(checkboxGroupTester.checkboxes[0]).toBeChecked();
256+
expect(checkboxGroupTester.selectedCheckboxes).toHaveLength(1);
257+
258+
await checkboxGroupTester.toggleCheckbox({checkbox: 4});
259+
expect(checkboxGroupTester.checkboxes[4]).toBeChecked();
260+
expect(checkboxGroupTester.selectedCheckboxes).toHaveLength(2);
261+
});
262+
```
263+
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.CheckboxGroupTester} isInSwitcher />
264+
</>
234265

235266
<>
236267
```ts isInSwitcher
@@ -262,6 +293,39 @@ See below for the full definition of the `User` object.
262293
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.ComboBoxTester} isInSwitcher />
263294
</>
264295

296+
<>
297+
```ts isInSwitcher
298+
// Dialog.test.ts
299+
import {render} from '@testing-library/react';
300+
import {User} from '@react-aria/test-utils';
301+
302+
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});
303+
// ...
304+
305+
it('Dialog can be opened and closed', async function () {
306+
// Render your test component/app and initialize the dialog tester
307+
let {getByTestId, getByRole} = render(
308+
<DialogTrigger>
309+
<Button>Trigger</Button>
310+
<Modal>
311+
<Dialog role="alertdialog" data-testid="test-dialog">
312+
...
313+
</Dialog>
314+
</Modal>
315+
</DialogTrigger>
316+
);
317+
let button = getByRole('button');
318+
let dialogTester = testUtilUser.createTester('Dialog', {root: button, overlayType: 'modal'});
319+
await dialogTester.open();
320+
let dialog = dialogTester.dialog;
321+
expect(dialog).toHaveAttribute('role', 'alertdialog');
322+
await dialogTester.close();
323+
expect(dialog).not.toBeInTheDocument();
324+
});
325+
```
326+
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.DialogTester} isInSwitcher />
327+
</>
328+
265329
<>
266330
```ts isInSwitcher
267331
// GridList.test.ts
@@ -356,6 +420,37 @@ See below for the full definition of the `User` object.
356420
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.MenuTester} isInSwitcher />
357421
</>
358422

423+
<>
424+
```ts isInSwitcher
425+
// RadioGroup.test.ts
426+
import {render} from '@testing-library/react';
427+
import {User} from '@react-aria/test-utils';
428+
429+
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});
430+
// ...
431+
432+
it('RadioGroup can switch the selected radio', async function () {
433+
// Render your test component/app and initialize the radiogroup tester
434+
let {getByRole} = render(
435+
<RadioGroup>
436+
...
437+
</RadioGroup>
438+
);
439+
440+
let radioGroupTester = testUtilUser.createTester('RadioGroup', {root: getByRole('radiogroup')});
441+
let radios = radioGroupTester.radios;
442+
expect(radioGroupTester.selectedRadio).toBeFalsy();
443+
444+
await radioGroupTester.triggerRadio({radio: radios[0]});
445+
expect(radioGroupTester.selectedRadio).toBe(radios[0]);
446+
447+
await radioGroupTester.triggerRadio({radio: radios[1]});
448+
expect(radioGroupTester.selectedRadio).toBe(radios[1]);
449+
});
450+
```
451+
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.RadioGroupTester} isInSwitcher />
452+
</>
453+
359454
<>
360455
```ts isInSwitcher
361456
// Select.test.ts

packages/dev/s2-docs/pages/s2/testing.mdx

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,38 @@ See below for the full definition of the `User` object.
224224

225225
### Patterns
226226

227-
<ExampleSwitcher type={null} examples={['ComboBox', 'Menu', 'Picker', 'TableView', 'Tabs', 'TreeView']}>
227+
<ExampleSwitcher type={null} examples={['CheckboxGroup', 'ComboBox', 'Dialog', 'Menu', 'Picker', 'RadioGroup', 'TableView', 'Tabs', 'TreeView']}>
228+
229+
<>
230+
```ts isInSwitcher
231+
// CheckboxGroup.test.ts
232+
import {render} from '@testing-library/react';
233+
import {User} from '@react-spectrum/test-utils';
234+
235+
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});
236+
// ...
237+
238+
it('CheckboxGroup can select multiple checkboxes', async function () {
239+
// Render your test component/app and initialize the checkbox group tester
240+
let {getByTestId} = render(
241+
<CheckboxGroup data-testid="test-checkboxgroup">
242+
...
243+
</CheckboxGroup>
244+
);
245+
let checkboxGroupTester = testUtilUser.createTester('CheckboxGroup', {root: getByTestId('test-checkboxgroup')});
246+
expect(checkboxGroupTester.selectedCheckboxes).toHaveLength(0);
247+
248+
await checkboxGroupTester.toggleCheckbox({checkbox: 0});
249+
expect(checkboxGroupTester.checkboxes[0]).toBeChecked();
250+
expect(checkboxGroupTester.selectedCheckboxes).toHaveLength(1);
251+
252+
await checkboxGroupTester.toggleCheckbox({checkbox: 4});
253+
expect(checkboxGroupTester.checkboxes[4]).toBeChecked();
254+
expect(checkboxGroupTester.selectedCheckboxes).toHaveLength(2);
255+
});
256+
```
257+
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.CheckboxGroupTester} isInSwitcher />
258+
</>
228259

229260
<>
230261
```ts isInSwitcher
@@ -256,6 +287,37 @@ See below for the full definition of the `User` object.
256287
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.ComboBoxTester} isInSwitcher />
257288
</>
258289

290+
<>
291+
```ts isInSwitcher
292+
// Dialog.test.ts
293+
import {render} from '@testing-library/react';
294+
import {User} from '@react-spectrum/test-utils';
295+
296+
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});
297+
// ...
298+
299+
it('Dialog can be opened and closed', async function () {
300+
// Render your test component/app and initialize the dialog tester
301+
let {getByTestId, getByRole} = render(
302+
<DialogTrigger>
303+
<ActionButton>Trigger</ActionButton>
304+
<Dialog>
305+
...
306+
</Dialog>
307+
</DialogTrigger>
308+
);
309+
let button = getByRole('button');
310+
let dialogTester = testUtilUser.createTester('Dialog', {root: button, overlayType: 'modal'});
311+
await dialogTester.open();
312+
let dialog = dialogTester.dialog;
313+
expect(dialog).toBeVisible();
314+
await dialogTester.close();
315+
expect(dialog).not.toBeInTheDocument();
316+
});
317+
```
318+
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.DialogTester} isInSwitcher />
319+
</>
320+
259321
<>
260322
```ts isInSwitcher
261323
// Menu.test.ts
@@ -318,6 +380,37 @@ See below for the full definition of the `User` object.
318380
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.SelectTester} isInSwitcher />
319381
</>
320382

383+
<>
384+
```ts isInSwitcher
385+
// RadioGroup.test.ts
386+
import {render} from '@testing-library/react';
387+
import {User} from '@react-spectrum/test-utils';
388+
389+
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});
390+
// ...
391+
392+
it('RadioGroup can switch the selected radio', async function () {
393+
// Render your test component/app and initialize the radiogroup tester
394+
let {getByRole} = render(
395+
<RadioGroup>
396+
...
397+
</RadioGroup>
398+
);
399+
400+
let radioGroupTester = testUtilUser.createTester('RadioGroup', {root: getByRole('radiogroup')});
401+
let radios = radioGroupTester.radios;
402+
expect(radioGroupTester.selectedRadio).toBeFalsy();
403+
404+
await radioGroupTester.triggerRadio({radio: radios[0]});
405+
expect(radioGroupTester.selectedRadio).toBe(radios[0]);
406+
407+
await radioGroupTester.triggerRadio({radio: radios[1]});
408+
expect(radioGroupTester.selectedRadio).toBe(radios[1]);
409+
});
410+
```
411+
<ClassAPI links={testUtilDocs.links} class={testUtilDocs.exports.RadioGroupTester} isInSwitcher />
412+
</>
413+
321414
<>
322415
```ts isInSwitcher
323416
// Table.test.ts

packages/react-aria-components/docs/CheckboxGroup.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ in your tests. Below is the full definition of the checkbox group tester and a s
620620

621621
```ts
622622
// CheckboxGroup.test.ts
623-
import {render, within} from '@testing-library/react';
623+
import {render} from '@testing-library/react';
624624
import {User} from '@react-aria/test-utils';
625625

626626
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});

packages/react-aria-components/docs/Dialog.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ in your tests. Below is the full definition of the dialog tester and a sample of
360360

361361
```ts
362362
// Dialog.test.ts
363-
import {render, within} from '@testing-library/react';
363+
import {render} from '@testing-library/react';
364364
import {User} from '@react-aria/test-utils';
365365

366366
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});

packages/react-aria-components/docs/RadioGroup.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ in your tests. Below is the full definition of the radio group tester and a samp
641641

642642
```ts
643643
// RadioGroup.test.ts
644-
import {render, within} from '@testing-library/react';
644+
import {render} from '@testing-library/react';
645645
import {User} from '@react-aria/test-utils';
646646

647647
let testUtilUser = new User({interactionType: 'mouse', advanceTimer: jest.advanceTimersByTime});

0 commit comments

Comments
 (0)