From 3f0f3bbf10adb6bd3aa43b6914e0115f451cbd2a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 15 Nov 2023 13:25:41 +0100 Subject: [PATCH] frontend-plugin-api: switch EXtensionBoundary test to use createExtensionTester Signed-off-by: Patrik Oldsberg --- packages/frontend-plugin-api/package.json | 1 + .../src/components/ExtensionBoundary.test.tsx | 50 ++++--------------- yarn.lock | 1 + 3 files changed, 13 insertions(+), 39 deletions(-) diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index d739cb8fdd..2a1d741d3d 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -25,6 +25,7 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/frontend-app-api": "workspace:^", + "@backstage/frontend-test-utils": "workspace:^", "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", diff --git a/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx b/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx index 7b27c79360..483280dc3b 100644 --- a/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx +++ b/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx @@ -16,44 +16,12 @@ import React, { useEffect } from 'react'; import { screen, waitFor } from '@testing-library/react'; -import { - MockAnalyticsApi, - MockConfigApi, - TestApiProvider, - renderWithEffects, -} from '@backstage/test-utils'; +import { MockAnalyticsApi, TestApiProvider } from '@backstage/test-utils'; import { ExtensionBoundary } from './ExtensionBoundary'; -import { - Extension, - coreExtensionData, - createExtension, - createPlugin, -} from '../wiring'; +import { coreExtensionData, createExtension } from '../wiring'; import { analyticsApiRef, useAnalytics } from '@backstage/core-plugin-api'; -import { createApp } from '@backstage/frontend-app-api'; -import { JsonObject } from '@backstage/types'; import { createRouteRef } from '../routing'; - -function renderExtensionInTestApp( - extension: Extension, - options?: { - config?: JsonObject; - }, -) { - const { config = {} } = options ?? {}; - - const app = createApp({ - features: [ - createPlugin({ - id: 'plugin', - extensions: [extension], - }), - ], - configLoader: async () => new MockConfigApi(config), - }); - - return renderWithEffects(app.createRoot()); -} +import { createExtensionTester } from '@backstage/frontend-test-utils'; const wrapInBoundaryExtension = (element: JSX.Element) => { const id = 'plugin.extension'; @@ -86,7 +54,9 @@ describe('ExtensionBoundary', () => { const TextComponent = () => { return

{text}

; }; - await renderExtensionInTestApp(wrapInBoundaryExtension()); + await createExtensionTester( + wrapInBoundaryExtension(), + ).render(); await waitFor(() => expect(screen.getByText(text)).toBeInTheDocument()); }); @@ -95,7 +65,9 @@ describe('ExtensionBoundary', () => { const ErrorComponent = () => { throw new Error(error); }; - await renderExtensionInTestApp(wrapInBoundaryExtension()); + await createExtensionTester( + wrapInBoundaryExtension(), + ).render(); await waitFor(() => expect(screen.getByText(error)).toBeInTheDocument()); }); @@ -112,13 +84,13 @@ describe('ExtensionBoundary', () => { return null; }; - await renderExtensionInTestApp( + await createExtensionTester( wrapInBoundaryExtension( , ), - ); + ).render(); await waitFor(() => expect(analyticsApiMock.getEvents()[0]).toMatchObject({ diff --git a/yarn.lock b/yarn.lock index 0bfa28f06c..82375d0b30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4328,6 +4328,7 @@ __metadata: "@backstage/core-components": "workspace:^" "@backstage/core-plugin-api": "workspace:^" "@backstage/frontend-app-api": "workspace:^" + "@backstage/frontend-test-utils": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/types": "workspace:^" "@backstage/version-bridge": "workspace:^"