From 8fa6ef3452de0b5c778021c07a8bb7a43ac60701 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 10 Feb 2026 10:29:28 +0100 Subject: [PATCH] frontend-test-utils: review fixes Signed-off-by: Patrik Oldsberg --- docs/frontend-system/utility-apis/05-testing.md | 2 +- packages/frontend-test-utils/report.api.md | 9 ++------- .../src/apis/StorageApi/MockStorageApi.ts | 17 +++++------------ .../src/apis/StorageApi/index.ts | 1 - packages/frontend-test-utils/src/apis/index.ts | 2 +- .../frontend-test-utils/src/apis/mockApis.ts | 2 +- 6 files changed, 10 insertions(+), 23 deletions(-) diff --git a/docs/frontend-system/utility-apis/05-testing.md b/docs/frontend-system/utility-apis/05-testing.md index 70b8ca70e9..ba1e93e505 100644 --- a/docs/frontend-system/utility-apis/05-testing.md +++ b/docs/frontend-system/utility-apis/05-testing.md @@ -139,7 +139,7 @@ import { import { myApiRef, type MyApi } from '@internal/plugin-example-react'; // Fake instance with real behavior -export function myApiMock(options?: { greeting?: string }): MyApi { +export function myApiMock(options?: { greeting?: string }) { return attachMockApiFactory(myApiRef, { greet: async () => options?.greeting ?? 'Hello!', }); diff --git a/packages/frontend-test-utils/report.api.md b/packages/frontend-test-utils/report.api.md index cbf48cbb17..748eee15d3 100644 --- a/packages/frontend-test-utils/report.api.md +++ b/packages/frontend-test-utils/report.api.md @@ -234,7 +234,7 @@ export namespace mockApis { email?: string; displayName?: string; picture?: string; - }): IdentityApi & MockWithApiFactory; + }): MockWithApiFactory; export namespace identity { const // (undocumented) mock: ( @@ -376,7 +376,7 @@ export class MockPermissionApi implements PermissionApi { // @public export class MockStorageApi implements StorageApi { // (undocumented) - static create(data?: MockStorageBucket): MockStorageApi; + static create(data?: JsonObject): MockStorageApi; // (undocumented) forBucket(name: string): StorageApi; // (undocumented) @@ -391,11 +391,6 @@ export class MockStorageApi implements StorageApi { snapshot(key: string): StorageValueSnapshot; } -// @public -export type MockStorageBucket = { - [key: string]: any; -}; - // @public export class MockTranslationApi implements TranslationApi { // (undocumented) diff --git a/packages/frontend-test-utils/src/apis/StorageApi/MockStorageApi.ts b/packages/frontend-test-utils/src/apis/StorageApi/MockStorageApi.ts index 2585264259..b4cf762599 100644 --- a/packages/frontend-test-utils/src/apis/StorageApi/MockStorageApi.ts +++ b/packages/frontend-test-utils/src/apis/StorageApi/MockStorageApi.ts @@ -15,16 +15,9 @@ */ import { StorageApi, StorageValueSnapshot } from '@backstage/core-plugin-api'; -import { JsonValue, Observable } from '@backstage/types'; +import { JsonObject, JsonValue, Observable } from '@backstage/types'; import ObservableImpl from 'zen-observable'; -/** - * Type for map holding data in {@link MockStorageApi} - * - * @public - */ -export type MockStorageBucket = { [key: string]: any }; - /** * Mock implementation of the {@link core-plugin-api#StorageApi} to be used in tests * @@ -32,20 +25,20 @@ export type MockStorageBucket = { [key: string]: any }; */ export class MockStorageApi implements StorageApi { private readonly namespace: string; - private readonly data: MockStorageBucket; + private readonly data: JsonObject; private readonly bucketStorageApis: Map; private constructor( namespace: string, bucketStorageApis: Map, - data?: MockStorageBucket, + data?: JsonObject, ) { this.namespace = namespace; this.bucketStorageApis = bucketStorageApis; this.data = { ...data }; } - static create(data?: MockStorageBucket) { + static create(data?: JsonObject) { // Translate a nested data object structure into a flat object with keys // like `/a/b` with their corresponding leaf values const keyValues: { [key: string]: any } = {}; @@ -83,7 +76,7 @@ export class MockStorageApi implements StorageApi { return { key, presence: 'present', - value: data, + value: data as T, }; } return { diff --git a/packages/frontend-test-utils/src/apis/StorageApi/index.ts b/packages/frontend-test-utils/src/apis/StorageApi/index.ts index a42fbb3b50..6e2ebc6918 100644 --- a/packages/frontend-test-utils/src/apis/StorageApi/index.ts +++ b/packages/frontend-test-utils/src/apis/StorageApi/index.ts @@ -15,4 +15,3 @@ */ export { MockStorageApi } from './MockStorageApi'; -export type { MockStorageBucket } from './MockStorageApi'; diff --git a/packages/frontend-test-utils/src/apis/index.ts b/packages/frontend-test-utils/src/apis/index.ts index 5be2398595..6e09833298 100644 --- a/packages/frontend-test-utils/src/apis/index.ts +++ b/packages/frontend-test-utils/src/apis/index.ts @@ -78,7 +78,7 @@ export type { MockPermissionApi } from './PermissionApi'; /** * @public */ -export type { MockStorageApi, MockStorageBucket } from './StorageApi'; +export type { MockStorageApi } from './StorageApi'; /** * @public diff --git a/packages/frontend-test-utils/src/apis/mockApis.ts b/packages/frontend-test-utils/src/apis/mockApis.ts index efbc56bde8..9e3dce1e3a 100644 --- a/packages/frontend-test-utils/src/apis/mockApis.ts +++ b/packages/frontend-test-utils/src/apis/mockApis.ts @@ -313,7 +313,7 @@ export namespace mockApis { email?: string; displayName?: string; picture?: string; - }): IdentityApi & MockWithApiFactory { + }): MockWithApiFactory { const { userEntityRef = 'user:default/test', ownershipEntityRefs = ['user:default/test'],