From 09f5e36955a567bc1fe3c7f25c8200d64691e1bb Mon Sep 17 00:00:00 2001 From: James Brooks Date: Tue, 8 Jul 2025 15:37:18 +0100 Subject: [PATCH 1/4] Fix duplicate slash in `renderInTestApp` routing Signed-off-by: James Brooks --- .changeset/yellow-spies-rescue.md | 5 +++++ .../src/app/renderInTestApp.test.tsx | 15 +++++++++++++++ .../src/app/renderInTestApp.tsx | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .changeset/yellow-spies-rescue.md diff --git a/.changeset/yellow-spies-rescue.md b/.changeset/yellow-spies-rescue.md new file mode 100644 index 0000000000..c34f916e5b --- /dev/null +++ b/.changeset/yellow-spies-rescue.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-test-utils': patch +--- + +Update route path for index route in `renderInTestApp` util to fix duplicate slash and ensure any nested routing behaves correctly. diff --git a/packages/frontend-test-utils/src/app/renderInTestApp.test.tsx b/packages/frontend-test-utils/src/app/renderInTestApp.test.tsx index cee6273cb1..8e1b1e1ea0 100644 --- a/packages/frontend-test-utils/src/app/renderInTestApp.test.tsx +++ b/packages/frontend-test-utils/src/app/renderInTestApp.test.tsx @@ -21,6 +21,7 @@ import { TestApiProvider, } from '@backstage/frontend-test-utils'; import { analyticsApiRef, useAnalytics } from '@backstage/frontend-plugin-api'; +import { Routes, Route } from 'react-router-dom'; import { renderInTestApp } from './renderInTestApp'; describe('renderInTestApp', () => { @@ -65,4 +66,18 @@ describe('renderInTestApp', () => { ]), ); }); + + it('should support setting different locations in the history stack', async () => { + renderInTestApp( + + Index Page} /> + Second Page} /> + , + { + initialRouteEntries: ['/second-page'], + }, + ); + + expect(screen.getByText('Second Page')).toBeInTheDocument(); + }); }); diff --git a/packages/frontend-test-utils/src/app/renderInTestApp.tsx b/packages/frontend-test-utils/src/app/renderInTestApp.tsx index d4010a92ad..2e940e83bb 100644 --- a/packages/frontend-test-utils/src/app/renderInTestApp.tsx +++ b/packages/frontend-test-utils/src/app/renderInTestApp.tsx @@ -154,7 +154,7 @@ export function renderInTestApp( factory: () => { return [ coreExtensionData.reactElement(element), - coreExtensionData.routePath('/'), + coreExtensionData.routePath(''), ]; }, }), From ea32b592f3a1c5130e87ae1ec2e37aaf5b664c75 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Tue, 8 Jul 2025 16:19:13 +0100 Subject: [PATCH 2/4] Spelling edit Signed-off-by: James Brooks --- .changeset/yellow-spies-rescue.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/yellow-spies-rescue.md b/.changeset/yellow-spies-rescue.md index c34f916e5b..1bc1ea025a 100644 --- a/.changeset/yellow-spies-rescue.md +++ b/.changeset/yellow-spies-rescue.md @@ -2,4 +2,4 @@ '@backstage/frontend-test-utils': patch --- -Update route path for index route in `renderInTestApp` util to fix duplicate slash and ensure any nested routing behaves correctly. +Update route path for index route in `renderInTestApp` to fix duplicate slash and ensure any nested routing behaves correctly. From cb3ad5a52d1bdda56ea4833ff974218c0984a186 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Wed, 9 Jul 2025 15:13:47 +0100 Subject: [PATCH 3/4] Move fix to `AppRoutes` Signed-off-by: James Brooks --- packages/frontend-test-utils/src/app/renderInTestApp.tsx | 2 +- plugins/app/src/extensions/AppRoutes.tsx | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/frontend-test-utils/src/app/renderInTestApp.tsx b/packages/frontend-test-utils/src/app/renderInTestApp.tsx index 2e940e83bb..d4010a92ad 100644 --- a/packages/frontend-test-utils/src/app/renderInTestApp.tsx +++ b/packages/frontend-test-utils/src/app/renderInTestApp.tsx @@ -154,7 +154,7 @@ export function renderInTestApp( factory: () => { return [ coreExtensionData.reactElement(element), - coreExtensionData.routePath(''), + coreExtensionData.routePath('/'), ]; }, }), diff --git a/plugins/app/src/extensions/AppRoutes.tsx b/plugins/app/src/extensions/AppRoutes.tsx index 304b0b0289..1f15ced3ea 100644 --- a/plugins/app/src/extensions/AppRoutes.tsx +++ b/plugins/app/src/extensions/AppRoutes.tsx @@ -42,7 +42,9 @@ export const AppRoutes = createExtension({ const element = useRoutes([ ...inputs.routes.map(route => ({ - path: `${route.get(coreExtensionData.routePath)}/*`, + path: `${route + .get(coreExtensionData.routePath) + .replace(/\/$/, '')}/*`, element: route.get(coreExtensionData.reactElement), })), { From b7bb16fa8d4245f62ac7be789e86f7af18362e0b Mon Sep 17 00:00:00 2001 From: James Brooks Date: Wed, 9 Jul 2025 15:21:06 +0100 Subject: [PATCH 4/4] Update changeset Signed-off-by: James Brooks --- .changeset/yellow-spies-rescue.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/yellow-spies-rescue.md b/.changeset/yellow-spies-rescue.md index 1bc1ea025a..83ae084288 100644 --- a/.changeset/yellow-spies-rescue.md +++ b/.changeset/yellow-spies-rescue.md @@ -1,5 +1,5 @@ --- -'@backstage/frontend-test-utils': patch +'@backstage/plugin-app': patch --- -Update route path for index route in `renderInTestApp` to fix duplicate slash and ensure any nested routing behaves correctly. +Remove trailing slashes in the `AppRoutes` extension to ensure any nested routing behaves correctly.