diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx index 71456a6942..da193430d5 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx @@ -148,6 +148,28 @@ describe('', () => { }); }); + it('should not render a techdocs page header if techdocs metadata is missing', async () => { + getTechDocsMetadata.mockResolvedValue(undefined); + + await act(async () => { + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name/*': entityRouteRef, + '/docs': rootRouteRef, + }, + }, + ); + + await waitFor(() => { + expect(rendered.container.innerHTML).not.toContain('header'); + }); + }); + }); + it('should render a link back to the component page', async () => { getTechDocsMetadata.mockResolvedValue(mockTechDocsMetadata); diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.tsx index c0ef1fa95a..204ac835e4 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.tsx @@ -71,7 +71,7 @@ export const TechDocsReaderPageHeader = ( subtitle, setSubtitle, entityRef, - metadata: { value: metadata }, + metadata: { value: metadata, loading: metadataLoading }, entityMetadata: { value: entityMetadata, loading: entityMetadataLoading }, } = useTechDocsReaderPage(); @@ -146,9 +146,11 @@ export const TechDocsReaderPageHeader = ( ); - // If there is no entity metadata, there's no reason to show the header. - if (entityMetadataLoading === false && entityMetadata === undefined) - return null; + // If there is no entity or techdocs metadata, there's no reason to show the + // header (hides the header on 404 error pages). + const noEntMetadata = !entityMetadataLoading && entityMetadata === undefined; + const noTdMetadata = !metadataLoading && metadata === undefined; + if (noEntMetadata || noTdMetadata) return null; return (