From 9bf6fe97cb3a7a71e8eff86738dde120bf36ef24 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Wed, 29 Sep 2021 14:22:49 +0200 Subject: [PATCH] add tests for TechDocsPage with custom header Signed-off-by: Emma Indal --- .../reader/components/TechDocsPage.test.tsx | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/plugins/techdocs/src/reader/components/TechDocsPage.test.tsx b/plugins/techdocs/src/reader/components/TechDocsPage.test.tsx index 584ce534fa..272edb0373 100644 --- a/plugins/techdocs/src/reader/components/TechDocsPage.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsPage.test.tsx @@ -22,6 +22,7 @@ import { scmIntegrationsApiRef, } from '@backstage/integration-react'; import { wrapInTestApp } from '@backstage/test-utils'; +import { Header } from '@backstage/core-components'; import { techdocsApiRef, TechDocsApi, @@ -107,4 +108,69 @@ describe('', () => { expect(rendered.getByTestId('techdocs-content')).toBeInTheDocument(); }); }); + + it('should render techdocs page with custom header', async () => { + useParams.mockReturnValue({ + entityId: 'Component::backstage', + }); + + const scmIntegrationsApi: ScmIntegrationsApi = + ScmIntegrationsApi.fromConfig( + new ConfigReader({ + integrations: {}, + }), + ); + const techdocsApi: Partial = { + getEntityMetadata: () => + Promise.resolve({ + apiVersion: 'v1', + kind: 'Component', + metadata: { + name: 'backstage', + }, + }), + getTechDocsMetadata: () => + Promise.resolve({ + site_name: 'string', + site_description: 'string', + }), + }; + + const techdocsStorageApi: Partial = { + getEntityDocs: (): Promise => Promise.resolve('String'), + getBaseUrl: (): Promise => Promise.resolve('String'), + getApiOrigin: (): Promise => Promise.resolve('String'), + }; + const searchApi = { + query: () => + Promise.resolve({ + results: [], + }), + }; + const apiRegistry = ApiRegistry.from([ + [scmIntegrationsApiRef, scmIntegrationsApi], + [techdocsApiRef, techdocsApi], + [techdocsStorageApiRef, techdocsStorageApi], + [searchApiRef, searchApi], + ]); + + await act(async () => { + const rendered = render( + wrapInTestApp( + + + {({ techdocsMetadataValue }) => ( +
+ )} + + , + ), + ); + expect(rendered.getByText('A custom header')).toBeInTheDocument(); + }); + }); });