From c0ed2394f53678ae55dcd56512c6fd7180acd031 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 24 Aug 2023 14:58:09 +0200 Subject: [PATCH] catalog: encode entity name in EntityRefLink Signed-off-by: Vincenzo Scamporlino --- .../EntityRefLink/EntityRefLink.test.tsx | 22 +++++++++++++++++++ .../EntityRefLink/EntityRefLink.tsx | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.test.tsx b/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.test.tsx index b0a6b46bf5..eb783ae02b 100644 --- a/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.test.tsx +++ b/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.test.tsx @@ -174,4 +174,26 @@ describe('', () => { '/catalog/test/component/software', ); }); + + it('renders link by encoding name as URI component', async () => { + const entityName = { + kind: 'Component', + namespace: 'test', + name: 'softw#are', + }; + await renderInTestApp( + + Custom Children + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name/*': entityRouteRef, + }, + }, + ); + expect(screen.getByText('Custom Children')).toHaveAttribute( + 'href', + '/catalog/test/component/softw%23are', + ); + }); }); diff --git a/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.tsx b/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.tsx index 06a632232e..82a98ca417 100644 --- a/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.tsx +++ b/plugins/catalog-react/src/components/EntityRefLink/EntityRefLink.tsx @@ -71,7 +71,7 @@ export const EntityRefLink = forwardRef( kind = kind.toLocaleLowerCase('en-US'); namespace = namespace?.toLocaleLowerCase('en-US') ?? DEFAULT_NAMESPACE; - const routeParams = { kind, namespace, name }; + const routeParams = { kind, namespace, name: encodeURIComponent(name) }; const formattedEntityRefTitle = humanizeEntityRef( { kind, namespace, name }, { defaultKind },