From 7af9cef074b666541fc1ec2e5dddf4c67b903064 Mon Sep 17 00:00:00 2001 From: Tim Hansen Date: Fri, 28 May 2021 20:12:01 -0600 Subject: [PATCH] Fix MockStorageApi recreating bucket storage Signed-off-by: Tim Hansen --- .changeset/beige-garlics-doubt.md | 5 +++++ .../src/testUtils/apis/StorageApi/MockStorageApi.ts | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .changeset/beige-garlics-doubt.md 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 {