diff --git a/.changeset/beige-garlics-doubt.md b/.changeset/beige-garlics-doubt.md new file mode 100644 index 0000000000..436abce45e --- /dev/null +++ b/.changeset/beige-garlics-doubt.md @@ -0,0 +1,5 @@ +--- +'@backstage/test-utils': patch +--- + +Fix a bug in `MockStorageApi` where it unhelpfully returned new empty buckets every single time diff --git a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts index 006b44a49c..5cb4bdfff6 100644 --- a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts +++ b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts @@ -23,6 +23,8 @@ import ObservableImpl from 'zen-observable'; export type MockStorageBucket = { [key: string]: any }; +const bucketStorageApis = new Map(); + export class MockStorageApi implements StorageApi { private readonly namespace: string; private readonly data: MockStorageBucket; @@ -37,7 +39,13 @@ export class MockStorageApi implements StorageApi { } forBucket(name: string): StorageApi { - return new MockStorageApi(`${this.namespace}/${name}`, this.data); + if (!bucketStorageApis.has(name)) { + bucketStorageApis.set( + name, + new MockStorageApi(`${this.namespace}/${name}`, this.data), + ); + } + return bucketStorageApis.get(name)!; } get(key: string): T | undefined {