From 1cedbc7d1bdb06f5385ab2abab152a0ed3593609 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 10 Feb 2026 10:51:14 +0100 Subject: [PATCH] backend-test-utils: review fixes Signed-off-by: Patrik Oldsberg --- .../backend-test-utils/report-alpha.api.md | 12 +---------- .../services/ActionsRegistryServiceMock.ts | 2 +- .../src/alpha/services/ActionsServiceMock.ts | 2 +- .../src/alpha/services/index.ts | 1 - .../src/alpha/services/simpleMock.ts | 20 ------------------- .../{simpleMock.ts => createServiceMock.ts} | 0 .../backend-test-utils/src/services/index.ts | 2 +- .../src/services/mockServices.ts | 2 +- .../src/testUtils/catalogServiceMock.ts | 1 - plugins/gateway-backend/src/plugin.test.ts | 13 ++++++------ 10 files changed, 12 insertions(+), 43 deletions(-) delete mode 100644 packages/backend-test-utils/src/alpha/services/simpleMock.ts rename packages/backend-test-utils/src/services/{simpleMock.ts => createServiceMock.ts} (100%) diff --git a/packages/backend-test-utils/report-alpha.api.md b/packages/backend-test-utils/report-alpha.api.md index ca6f47191d..98ab2737a3 100644 --- a/packages/backend-test-utils/report-alpha.api.md +++ b/packages/backend-test-utils/report-alpha.api.md @@ -13,6 +13,7 @@ import { JsonObject } from '@backstage/types'; import { JsonValue } from '@backstage/types'; import { LoggerService } from '@backstage/backend-plugin-api'; import { ServiceFactory } from '@backstage/backend-plugin-api'; +import { ServiceMock } from '@backstage/backend-test-utils'; // @alpha (undocumented) export function actionsRegistryServiceMock(options?: { @@ -70,16 +71,5 @@ export class MockActionsRegistry >(options: ActionsRegistryActionOptions): void; } -// @public (undocumented) -export type ServiceMock = { - factory: ServiceFactory; -} & { - [Key in keyof TService]: TService[Key] extends ( - ...args: infer Args - ) => infer Return - ? TService[Key] & jest.MockInstance - : TService[Key]; -}; - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-test-utils/src/alpha/services/ActionsRegistryServiceMock.ts b/packages/backend-test-utils/src/alpha/services/ActionsRegistryServiceMock.ts index a89ad56757..ba2c50c001 100644 --- a/packages/backend-test-utils/src/alpha/services/ActionsRegistryServiceMock.ts +++ b/packages/backend-test-utils/src/alpha/services/ActionsRegistryServiceMock.ts @@ -16,7 +16,7 @@ import { mockServices } from '../../services'; import { LoggerService } from '@backstage/backend-plugin-api'; import { MockActionsRegistry } from './MockActionsRegistry'; -import { createServiceMock } from './simpleMock'; +import { createServiceMock } from '@backstage/backend-test-utils'; import { actionsRegistryServiceRef } from '@backstage/backend-plugin-api/alpha'; import { actionsRegistryServiceFactory } from '@backstage/backend-defaults/alpha'; diff --git a/packages/backend-test-utils/src/alpha/services/ActionsServiceMock.ts b/packages/backend-test-utils/src/alpha/services/ActionsServiceMock.ts index d8c2f35f54..f6e0d136c0 100644 --- a/packages/backend-test-utils/src/alpha/services/ActionsServiceMock.ts +++ b/packages/backend-test-utils/src/alpha/services/ActionsServiceMock.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { createServiceMock } from './simpleMock'; +import { createServiceMock } from '@backstage/backend-test-utils'; import { actionsServiceRef } from '@backstage/backend-plugin-api/alpha'; import { actionsServiceFactory } from '@backstage/backend-defaults/alpha'; diff --git a/packages/backend-test-utils/src/alpha/services/index.ts b/packages/backend-test-utils/src/alpha/services/index.ts index ca9b3f23a0..2d5ad6ec3f 100644 --- a/packages/backend-test-utils/src/alpha/services/index.ts +++ b/packages/backend-test-utils/src/alpha/services/index.ts @@ -17,4 +17,3 @@ export { actionsRegistryServiceMock } from './ActionsRegistryServiceMock'; export { MockActionsRegistry } from './MockActionsRegistry'; export { actionsServiceMock } from './ActionsServiceMock'; -export { type ServiceMock } from './simpleMock'; diff --git a/packages/backend-test-utils/src/alpha/services/simpleMock.ts b/packages/backend-test-utils/src/alpha/services/simpleMock.ts deleted file mode 100644 index e1353d6e78..0000000000 --- a/packages/backend-test-utils/src/alpha/services/simpleMock.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2025 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { createServiceMock } from '../../services/simpleMock'; - -/** @alpha */ -export type { ServiceMock } from '../../services/simpleMock'; diff --git a/packages/backend-test-utils/src/services/simpleMock.ts b/packages/backend-test-utils/src/services/createServiceMock.ts similarity index 100% rename from packages/backend-test-utils/src/services/simpleMock.ts rename to packages/backend-test-utils/src/services/createServiceMock.ts diff --git a/packages/backend-test-utils/src/services/index.ts b/packages/backend-test-utils/src/services/index.ts index e4d21fcdd5..b048586440 100644 --- a/packages/backend-test-utils/src/services/index.ts +++ b/packages/backend-test-utils/src/services/index.ts @@ -15,4 +15,4 @@ */ export { mockServices } from './mockServices'; export { mockCredentials } from './mockCredentials'; -export { createServiceMock, type ServiceMock } from './simpleMock'; +export { createServiceMock, type ServiceMock } from './createServiceMock'; diff --git a/packages/backend-test-utils/src/services/mockServices.ts b/packages/backend-test-utils/src/services/mockServices.ts index 8bb9b5610e..84783f04d7 100644 --- a/packages/backend-test-utils/src/services/mockServices.ts +++ b/packages/backend-test-utils/src/services/mockServices.ts @@ -57,7 +57,7 @@ import { MockUserInfoService } from './MockUserInfoService'; import { mockCredentials } from './mockCredentials'; import { MockEventsService } from './MockEventsService'; import { MockPermissionsService } from './MockPermissionsService'; -import { createServiceMock } from './simpleMock'; +import { createServiceMock } from './createServiceMock'; import { MockSchedulerService } from './MockSchedulerService'; // eslint-disable-next-line @backstage/no-relative-monorepo-imports import { ObservableConfigProxy } from '../../../config-loader/src/sources/ObservableConfigProxy'; diff --git a/plugins/catalog-node/src/testUtils/catalogServiceMock.ts b/plugins/catalog-node/src/testUtils/catalogServiceMock.ts index d413380747..61dfde4ca7 100644 --- a/plugins/catalog-node/src/testUtils/catalogServiceMock.ts +++ b/plugins/catalog-node/src/testUtils/catalogServiceMock.ts @@ -21,7 +21,6 @@ import { import { InMemoryCatalogClient } from '@backstage/catalog-client/testUtils'; import { Entity } from '@backstage/catalog-model'; import { catalogServiceRef } from '@backstage/plugin-catalog-node'; -// eslint-disable-next-line @backstage/no-undeclared-imports import { createServiceMock } from '@backstage/backend-test-utils'; import { CatalogServiceMock } from './types'; diff --git a/plugins/gateway-backend/src/plugin.test.ts b/plugins/gateway-backend/src/plugin.test.ts index 0b2eda838e..301eae3abb 100644 --- a/plugins/gateway-backend/src/plugin.test.ts +++ b/plugins/gateway-backend/src/plugin.test.ts @@ -47,12 +47,13 @@ describe('gateway', () => { }, }); - const discovery = mockServices.discovery.mock(); - discovery.getBaseUrl.mockImplementation(async (pluginId: string) => { - if (pluginId === 'external-plugin') { - return 'http://localhost:7778/api/external-plugin'; - } - return `http://localhost:7777/api/${pluginId}`; + const discovery = mockServices.discovery.mock({ + async getBaseUrl(pluginId) { + if (pluginId === 'external-plugin') { + return 'http://localhost:7778/api/external-plugin'; + } + return `http://localhost:7777/api/${pluginId}`; + }, }); beforeAll(async () => {