|
10 | 10 | * governing permissions and limitations under the License. |
11 | 11 | */ |
12 | 12 |
|
13 | | -import {Button, Label, Tag, TagGroup, TagList, Text} from '../'; |
| 13 | +import {Button, Label, RouterProvider, Tag, TagGroup, TagList, Text} from '../'; |
14 | 14 | import {fireEvent, mockClickDefault, pointerMap, render} from '@react-spectrum/test-utils-internal'; |
15 | 15 | import React from 'react'; |
16 | 16 | import userEvent from '@testing-library/user-event'; |
@@ -329,6 +329,26 @@ describe('TagGroup', () => { |
329 | 329 | document.removeEventListener('click', onClick); |
330 | 330 | } |
331 | 331 | }); |
| 332 | + |
| 333 | + it('should work with RouterProvider', async () => { |
| 334 | + let navigate = jest.fn(); |
| 335 | + let useHref = href => '/base' + href; |
| 336 | + let {getAllByRole} = render( |
| 337 | + <RouterProvider navigate={navigate} useHref={useHref}> |
| 338 | + <TagGroup selectionMode="none"> |
| 339 | + <Label>Tags</Label> |
| 340 | + <TagList> |
| 341 | + <Tag href="/foo" routerOptions={{foo: 'bar'}}>One</Tag> |
| 342 | + </TagList> |
| 343 | + </TagGroup> |
| 344 | + </RouterProvider> |
| 345 | + ); |
| 346 | + |
| 347 | + let items = getAllByRole('row'); |
| 348 | + expect(items[0]).toHaveAttribute('data-href', '/base/foo'); |
| 349 | + await trigger(items[0]); |
| 350 | + expect(navigate).toHaveBeenCalledWith('/foo', {foo: 'bar'}); |
| 351 | + }); |
332 | 352 | }); |
333 | 353 | }); |
334 | 354 | }); |
0 commit comments