diff --git a/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.test.tsx b/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.test.tsx index 3c3b61f529..68bde5c762 100644 --- a/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.test.tsx +++ b/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.test.tsx @@ -171,4 +171,68 @@ describe('ReportIssue', () => { ); }); }); + + it('renders using a custom template builder', async () => { + byUrl.mockReturnValue({ type: 'gitlab' }); + + const templateBuilder = (options: { selection: Selection }) => ({ + title: 'Custom', + body: options.selection.toString().trim(), + }); + + const { shadowRoot, getByText } = + await TechDocsAddonTester.buildAddonsInTechDocs([ + , + ]) + .withDom( + + + +
+
+
+
+ + +
+ + , + ) + .withApis([[scmIntegrationsApiRef, { byUrl }]]) + .renderWithEffects(); + + (shadowRoot as ShadowRoot & Pick).getSelection = + () => selection; + + await waitFor(() => { + expect(getByText('Edit page')).toBeInTheDocument(); + }); + + fireSelectionChangeEvent(window); + + await waitFor(() => { + const link = getByText('Open new Gitlab issue'); + expect(link).toHaveAttribute( + 'href', + 'https://gitlab.com/backstage/backstage/issues/new?issue[title]=Custom&issue[description]=his', + ); + }); + }); });