diff --git a/.changeset/delegate-attach-mock-api-factory.md b/.changeset/delegate-attach-mock-api-factory.md new file mode 100644 index 0000000000..0d1f47bd64 --- /dev/null +++ b/.changeset/delegate-attach-mock-api-factory.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-test-utils': patch +--- + +Removed internal `mockWithApiFactory` helper in favor of using `attachMockApiFactory` directly. diff --git a/packages/frontend-test-utils/src/apis/MockWithApiFactory.ts b/packages/frontend-test-utils/src/apis/MockWithApiFactory.ts index 55bb7653e5..28ce01e314 100644 --- a/packages/frontend-test-utils/src/apis/MockWithApiFactory.ts +++ b/packages/frontend-test-utils/src/apis/MockWithApiFactory.ts @@ -42,26 +42,6 @@ export type MockWithApiFactory = TApi & { [mockApiFactorySymbol]: ApiFactory; }; -/** - * Helper to attach mock API metadata to an instance. - * - * @internal - */ -export function mockWithApiFactory( - apiRef: ApiRef, - implementation: TImpl, -): TImpl & { [mockApiFactorySymbol]: ApiFactory } { - const marked = implementation as TImpl & { - [mockApiFactorySymbol]: ApiFactory; - }; - (marked as any)[mockApiFactorySymbol] = { - api: apiRef, - deps: {}, - factory: () => implementation, - }; - return marked; -} - /** * Attaches mock API factory metadata to an API instance, allowing it to be * passed directly to test utilities without needing to explicitly provide diff --git a/packages/frontend-test-utils/src/apis/mockApis.ts b/packages/frontend-test-utils/src/apis/mockApis.ts index 96932318bb..99b3ebfb67 100644 --- a/packages/frontend-test-utils/src/apis/mockApis.ts +++ b/packages/frontend-test-utils/src/apis/mockApis.ts @@ -54,7 +54,7 @@ import { MockStorageApi } from './StorageApi'; import { MockPermissionApi } from './PermissionApi'; import { MockTranslationApi } from './TranslationApi'; import { - mockWithApiFactory, + attachMockApiFactory, type MockWithApiFactory, } from './MockWithApiFactory'; import { createApiMock } from './createApiMock'; @@ -104,7 +104,7 @@ export namespace mockApis { */ export function alert(): MockWithApiFactory { const instance = new MockAlertApi(); - return mockWithApiFactory( + return attachMockApiFactory( alertApiRef, instance, ) as MockWithApiFactory; @@ -146,7 +146,7 @@ export namespace mockApis { initialStates?: Record; }): MockWithApiFactory { const instance = new MockFeatureFlagsApi(options); - return mockWithApiFactory( + return attachMockApiFactory( featureFlagsApiRef, instance, ) as MockWithApiFactory; @@ -181,7 +181,7 @@ export namespace mockApis { export function analytics(): MockAnalyticsApi & MockWithApiFactory { const instance = new MockAnalyticsApi(); - return mockWithApiFactory(analyticsApiRef, instance) as MockAnalyticsApi & + return attachMockApiFactory(analyticsApiRef, instance) as MockAnalyticsApi & MockWithApiFactory; } @@ -205,7 +205,7 @@ export namespace mockApis { export function translation(): MockTranslationApi & MockWithApiFactory { const instance = MockTranslationApi.create(); - return mockWithApiFactory( + return attachMockApiFactory( translationApiRef, instance, ) as MockTranslationApi & MockWithApiFactory; @@ -237,7 +237,7 @@ export namespace mockApis { data?: JsonObject; }): MockConfigApi & MockWithApiFactory { const instance = new MockConfigApi({ data: options?.data ?? {} }); - return mockWithApiFactory(configApiRef, instance) as MockConfigApi & + return attachMockApiFactory(configApiRef, instance) as MockConfigApi & MockWithApiFactory; } @@ -281,7 +281,7 @@ export namespace mockApis { return `${baseUrl}/api/${pluginId}`; }, }; - return mockWithApiFactory(discoveryApiRef, instance) as DiscoveryApi & + return attachMockApiFactory(discoveryApiRef, instance) as DiscoveryApi & MockWithApiFactory; } @@ -329,7 +329,7 @@ export namespace mockApis { }, async signOut() {}, }; - return mockWithApiFactory(identityApiRef, instance) as IdentityApi & + return attachMockApiFactory(identityApiRef, instance) as IdentityApi & MockWithApiFactory; } @@ -366,8 +366,10 @@ export namespace mockApis { ? authorizeInput : () => authorizeInput ?? AuthorizeResult.ALLOW; const instance = new MockPermissionApi(handler); - return mockWithApiFactory(permissionApiRef, instance) as MockPermissionApi & - MockWithApiFactory; + return attachMockApiFactory( + permissionApiRef, + instance, + ) as MockPermissionApi & MockWithApiFactory; } /** @@ -390,7 +392,7 @@ export namespace mockApis { data?: JsonObject; }): MockStorageApi & MockWithApiFactory { const instance = MockStorageApi.create(options?.data); - return mockWithApiFactory(storageApiRef, instance) as MockStorageApi & + return attachMockApiFactory(storageApiRef, instance) as MockStorageApi & MockWithApiFactory; } @@ -418,7 +420,7 @@ export namespace mockApis { collect?: boolean; }): MockErrorApi & MockWithApiFactory { const instance = new MockErrorApi(options); - return mockWithApiFactory(errorApiRef, instance) as MockErrorApi & + return attachMockApiFactory(errorApiRef, instance) as MockErrorApi & MockWithApiFactory; } @@ -443,7 +445,7 @@ export namespace mockApis { options?: MockFetchApiOptions, ): MockFetchApi & MockWithApiFactory { const instance = new MockFetchApi(options); - return mockWithApiFactory(fetchApiRef, instance) as MockFetchApi & + return attachMockApiFactory(fetchApiRef, instance) as MockFetchApi & MockWithApiFactory; }