diff --git a/.changeset/techdocs-wee-britain.md b/.changeset/techdocs-wee-britain.md new file mode 100644 index 0000000000..661ff76fc5 --- /dev/null +++ b/.changeset/techdocs-wee-britain.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs-addons-test-utils': patch +--- + +Fixed a type bug preventing `buildAddonsInTechDocs().withApis()` from being called with multiple partial API implementations. diff --git a/plugins/techdocs-addons-test-utils/api-report.md b/plugins/techdocs-addons-test-utils/api-report.md index 14bffbc8b3..6374707b90 100644 --- a/plugins/techdocs-addons-test-utils/api-report.md +++ b/plugins/techdocs-addons-test-utils/api-report.md @@ -29,7 +29,7 @@ export class TechDocsAddonTester { } >; // (undocumented) - withApis(apis: TechdocsAddonTesterApis): this; + withApis(apis: TechdocsAddonTesterApis): this; // (undocumented) withDom(dom: ReactElement): this; // (undocumented) diff --git a/plugins/techdocs-addons-test-utils/src/test-utils.tsx b/plugins/techdocs-addons-test-utils/src/test-utils.tsx index 9d668eaf3d..0bb46001f7 100644 --- a/plugins/techdocs-addons-test-utils/src/test-utils.tsx +++ b/plugins/techdocs-addons-test-utils/src/test-utils.tsx @@ -65,14 +65,18 @@ type TechDocsAddonTesterTestApiPair = TApi extends infer TImpl : never; /** @ignore */ -type TechdocsAddonTesterApis = TechDocsAddonTesterTestApiPair[]; +type TechdocsAddonTesterApis = { + [TIndex in keyof TApiPairs]: TechDocsAddonTesterTestApiPair< + TApiPairs[TIndex] + >; +}; type TechDocsAddonTesterOptions = { dom: ReactElement; entity: Partial; metadata: Partial; componentId: string; - apis: TechdocsAddonTesterApis; + apis: TechdocsAddonTesterApis; path: string; }; @@ -125,7 +129,7 @@ export class TechDocsAddonTester { this.addons = addons; } - withApis(apis: TechdocsAddonTesterApis) { + withApis(apis: TechdocsAddonTesterApis) { const refs = apis.map(([ref]) => ref); this.options.apis = this.options.apis .filter(([ref]) => !refs.includes(ref)) @@ -154,7 +158,7 @@ export class TechDocsAddonTester { } build() { - const apis: TechdocsAddonTesterApis = [ + const apis: TechdocsAddonTesterApis = [ [techdocsApiRef, techdocsApi], [techdocsStorageApiRef, techdocsStorageApi], [searchApiRef, searchApi],