From a159a0498e70a2d150f36cf199f962510c98ac43 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Fri, 27 Oct 2023 18:50:06 +0200 Subject: [PATCH] tests: update built-in extensions Signed-off-by: Camila Belo --- .../src/extensions/CoreComponents.tsx | 48 ++++++++++++++----- .../extractRouteInfoFromAppNode.test.ts | 10 +++- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/packages/frontend-app-api/src/extensions/CoreComponents.tsx b/packages/frontend-app-api/src/extensions/CoreComponents.tsx index 543baef3ad..d951983331 100644 --- a/packages/frontend-app-api/src/extensions/CoreComponents.tsx +++ b/packages/frontend-app-api/src/extensions/CoreComponents.tsx @@ -58,6 +58,7 @@ export const CoreComponents = createExtension({ component: coreExtensionData.components.progress, }, { + optional: true, singleton: true, }, ), @@ -66,6 +67,7 @@ export const CoreComponents = createExtension({ component: coreExtensionData.components.bootErrorPage, }, { + optional: true, singleton: true, }, ), @@ -74,6 +76,7 @@ export const CoreComponents = createExtension({ component: coreExtensionData.components.notFoundErrorPage, }, { + optional: true, singleton: true, }, ), @@ -82,6 +85,7 @@ export const CoreComponents = createExtension({ component: coreExtensionData.components.errorBoundaryFallback, }, { + optional: true, singleton: true, }, ), @@ -93,26 +97,44 @@ export const CoreComponents = createExtension({ bind({ provider: function Provider(props: PropsWithChildren<{}>) { const { children } = props; - const parentContext = useApp(); + const app = useApp(); - const appContext = useMemo( + const context = useMemo( () => ({ - ...parentContext, + ...app, // Only override components - getComponents: () => ({ - // Skipping Router and SignInPage - ...parentContext.getComponents(), - Progress: inputs.progress.component, - BootErrorPage: inputs.bootErrorPage.component, - NotFoundErrorPage: inputs.notFoundErrorPage.component, - ErrorBoundaryFallback: inputs.errorBoundaryFallback.component, - }), + getComponents: () => { + const { + progress, + bootErrorPage, + notFoundErrorPage, + errorBoundaryFallback, + } = inputs; + + const { + Progress, + BootErrorPage, + NotFoundErrorPage, + ErrorBoundaryFallback, + ...components + } = app.getComponents(); + + return { + ...components, + Progress: progress?.component ?? Progress, + BootErrorPage: bootErrorPage?.component ?? BootErrorPage, + NotFoundErrorPage: + notFoundErrorPage?.component ?? NotFoundErrorPage, + ErrorBoundaryFallback: + errorBoundaryFallback?.component ?? ErrorBoundaryFallback, + }; + }, }), - [parentContext], + [app], ); return ( - + {children} ); diff --git a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts index c94a06a442..ffab978217 100644 --- a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts +++ b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts @@ -35,6 +35,7 @@ import { CoreRoutes } from '../extensions/CoreRoutes'; import { CoreNav } from '../extensions/CoreNav'; import { CoreLayout } from '../extensions/CoreLayout'; import { CoreRouter } from '../extensions/CoreRouter'; +import { CoreComponents } from '../extensions/CoreComponents'; const ref1 = createRouteRef(); const ref2 = createRouteRef(); @@ -81,7 +82,14 @@ function routeInfoFromExtensions(extensions: Extension[]) { }); const tree = createAppTree({ config: new MockConfigApi({}), - builtinExtensions: [Core, CoreRoutes, CoreNav, CoreLayout, CoreRouter], + builtinExtensions: [ + Core, + CoreRoutes, + CoreNav, + CoreLayout, + CoreRouter, + CoreComponents, + ], features: [plugin], });