From ddbdad54e5f22f490ff4abb5857458691d373c8a Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Aug 2024 10:34:26 +0200 Subject: [PATCH 1/4] feat: add the ability to provide features or overrides to renderInTestApp Signed-off-by: blam --- .../src/app/renderInTestApp.tsx | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/frontend-test-utils/src/app/renderInTestApp.tsx b/packages/frontend-test-utils/src/app/renderInTestApp.tsx index a9275071b4..f75d871364 100644 --- a/packages/frontend-test-utils/src/app/renderInTestApp.tsx +++ b/packages/frontend-test-utils/src/app/renderInTestApp.tsx @@ -31,6 +31,7 @@ import { IconComponent, RouterBlueprint, NavItemBlueprint, + ExtensionOverrides, } from '@backstage/frontend-plugin-api'; /** @@ -60,6 +61,16 @@ export type TestAppOptions = { * Additional configuration passed to the app when rendering elements inside it. */ config?: JsonObject; + + /** + * Additional extensions to add to the test app. + */ + extensions?: ExtensionDefinition[]; + + /** + * Additional features to add to the test app. + */ + features?: ExtensionOverrides[]; }; const NavItem = (props: { @@ -167,12 +178,22 @@ export function renderInTestApp( } } + if (options?.extensions) { + extensions.push(...options.extensions); + } + + const features = [ + createExtensionOverrides({ + extensions, + }), + ]; + + if (options?.features) { + features.push(...options.features); + } + const app = createSpecializedApp({ - features: [ - createExtensionOverrides({ - extensions, - }), - ], + features, config: ConfigReader.fromConfigs([ { context: 'render-config', data: options?.config ?? {} }, ]), From f6d1874713783d57ea76c21bd2364719a2d9a378 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Aug 2024 10:38:39 +0200 Subject: [PATCH 2/4] chore: added changeset Signed-off-by: blam --- .changeset/sweet-cows-clean.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/sweet-cows-clean.md diff --git a/.changeset/sweet-cows-clean.md b/.changeset/sweet-cows-clean.md new file mode 100644 index 0000000000..fa2004186e --- /dev/null +++ b/.changeset/sweet-cows-clean.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-test-utils': patch +--- + +Added the ability to provide additional `extensions` and `features` to `renderInTestApp` From 1d6ce27d5dd3fc8a5e962570fb71e0d74b384094 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Aug 2024 10:50:05 +0200 Subject: [PATCH 3/4] chore: typechanges Signed-off-by: blam --- packages/frontend-test-utils/src/app/renderInTestApp.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/frontend-test-utils/src/app/renderInTestApp.tsx b/packages/frontend-test-utils/src/app/renderInTestApp.tsx index f75d871364..cc919f3f3d 100644 --- a/packages/frontend-test-utils/src/app/renderInTestApp.tsx +++ b/packages/frontend-test-utils/src/app/renderInTestApp.tsx @@ -31,7 +31,7 @@ import { IconComponent, RouterBlueprint, NavItemBlueprint, - ExtensionOverrides, + FrontendFeature, } from '@backstage/frontend-plugin-api'; /** @@ -65,12 +65,12 @@ export type TestAppOptions = { /** * Additional extensions to add to the test app. */ - extensions?: ExtensionDefinition[]; + extensions?: ExtensionDefinition[]; /** * Additional features to add to the test app. */ - features?: ExtensionOverrides[]; + features?: FrontendFeature[]; }; const NavItem = (props: { @@ -182,7 +182,7 @@ export function renderInTestApp( extensions.push(...options.extensions); } - const features = [ + const features: FrontendFeature[] = [ createExtensionOverrides({ extensions, }), From 43c4d7676346849f0ede198069273d74023001a3 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Aug 2024 11:04:01 +0200 Subject: [PATCH 4/4] chore: regenerate api-reports Signed-off-by: blam --- packages/frontend-test-utils/api-report.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/frontend-test-utils/api-report.md b/packages/frontend-test-utils/api-report.md index 31e293e434..ba4b8aae2b 100644 --- a/packages/frontend-test-utils/api-report.md +++ b/packages/frontend-test-utils/api-report.md @@ -14,6 +14,7 @@ import { ErrorWithContext } from '@backstage/test-utils'; import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { ExtensionDefinitionParameters } from '@backstage/frontend-plugin-api'; +import { FrontendFeature } from '@backstage/frontend-plugin-api'; import { JsonObject } from '@backstage/types'; import { MockConfigApi } from '@backstage/test-utils'; import { MockErrorApi } from '@backstage/test-utils'; @@ -134,6 +135,8 @@ export type TestAppOptions = { [path: string]: RouteRef; }; config?: JsonObject; + extensions?: ExtensionDefinition[]; + features?: FrontendFeature[]; }; export { withLogCollector };