From ef63f951ea27161ff413ebd56cccbf912b3fe8c8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 30 Nov 2020 18:01:50 +0100 Subject: [PATCH] core-api: dry up routing hooks tests --- packages/core-api/src/routing/hooks.test.tsx | 104 +++++-------------- 1 file changed, 27 insertions(+), 77 deletions(-) diff --git a/packages/core-api/src/routing/hooks.test.tsx b/packages/core-api/src/routing/hooks.test.tsx index 68d7abf38a..4f79fea303 100644 --- a/packages/core-api/src/routing/hooks.test.tsx +++ b/packages/core-api/src/routing/hooks.test.tsx @@ -15,7 +15,7 @@ */ import { render } from '@testing-library/react'; -import React, { PropsWithChildren } from 'react'; +import React, { PropsWithChildren, ReactElement } from 'react'; import { MemoryRouter, Routes } from 'react-router-dom'; import { createRoutableExtension } from '../extensions'; import { @@ -85,6 +85,28 @@ const Extension5 = plugin.provide( createRoutableExtension({ component: MockComponent, mountPoint: ref5 }), ); +function withRoutingProvider(root: ReactElement) { + const { routePaths, routeParents, routeObjects } = traverseElementTree({ + root, + discoverers: [childDiscoverer, routeElementDiscoverer], + collectors: { + routePaths: routePathCollector, + routeParents: routeParentCollector, + routeObjects: routeObjectCollector, + }, + }); + + return ( + + {root} + + ); +} + describe('discovery', () => { it('should handle simple routeRef path creation for routeRefs used in other parts of the app', () => { const root = ( @@ -99,25 +121,7 @@ describe('discovery', () => { ); - const { routePaths, routeParents, routeObjects } = traverseElementTree({ - root, - discoverers: [childDiscoverer, routeElementDiscoverer], - collectors: { - routePaths: routePathCollector, - routeParents: routeParentCollector, - routeObjects: routeObjectCollector, - }, - }); - - const rendered = render( - - {root} - , - ); + const rendered = render(withRoutingProvider(root)); expect(rendered.getByText('Path at inside: /foo/bar')).toBeInTheDocument(); expect(rendered.getByText('Path at outside: /foo/bar')).toBeInTheDocument(); @@ -144,25 +148,7 @@ describe('discovery', () => { ); - const { routePaths, routeParents, routeObjects } = traverseElementTree({ - root, - discoverers: [childDiscoverer, routeElementDiscoverer], - collectors: { - routePaths: routePathCollector, - routeParents: routeParentCollector, - routeObjects: routeObjectCollector, - }, - }); - - const rendered = render( - - {root} - , - ); + const rendered = render(withRoutingProvider(root)); expect( rendered.getByText('Path at inside: /foo/bar/bleb'), @@ -190,25 +176,7 @@ describe('discovery', () => { ); - const { routePaths, routeParents, routeObjects } = traverseElementTree({ - root, - discoverers: [childDiscoverer, routeElementDiscoverer], - collectors: { - routePaths: routePathCollector, - routeParents: routeParentCollector, - routeObjects: routeObjectCollector, - }, - }); - - const rendered = render( - - {root} - , - ); + const rendered = render(withRoutingProvider(root)); expect( rendered.getByText('Path at inside: /foo/blob/baz'), @@ -233,25 +201,7 @@ describe('discovery', () => { ); - const { routePaths, routeParents, routeObjects } = traverseElementTree({ - root, - discoverers: [childDiscoverer, routeElementDiscoverer], - collectors: { - routePaths: routePathCollector, - routeParents: routeParentCollector, - routeObjects: routeObjectCollector, - }, - }); - - const rendered = render( - - {root} - , - ); + const rendered = render(withRoutingProvider(root)); expect( rendered.getByText(