From f4ef651605d8402701bbd1401e84438d1f9ea2db Mon Sep 17 00:00:00 2001 From: Oskar Eichler <62393985+OskarEichler@users.noreply.github.com> Date: Thu, 27 Aug 2026 20:34:33 +0300 Subject: [PATCH] fix(mock): clear held storage instances when resetting --- .changeset/review-mock-reset.md | 6 ++++++ packages/async-storage/src/jest/AsyncStorageMock.ts | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .changeset/review-mock-reset.md diff --git a/.changeset/review-mock-reset.md b/.changeset/review-mock-reset.md new file mode 100644 index 00000000..23d37960 --- /dev/null +++ b/.changeset/review-mock-reset.md @@ -0,0 +1,6 @@ +--- +"@react-native-async-storage/async-storage": patch +--- + +Clear existing mock stores before resetting the registry and preserve the default legacy instance's registry identity. + diff --git a/packages/async-storage/src/jest/AsyncStorageMock.ts b/packages/async-storage/src/jest/AsyncStorageMock.ts index 70bc9ee6..e615a991 100644 --- a/packages/async-storage/src/jest/AsyncStorageMock.ts +++ b/packages/async-storage/src/jest/AsyncStorageMock.ts @@ -43,7 +43,7 @@ class AsyncStorageMemoryImpl implements AsyncStorage { }; } -const inMemoryDbRegistry = new Map(); +const inMemoryDbRegistry = new Map(); export function createAsyncStorage(databaseName: string): AsyncStorage { if (!inMemoryDbRegistry.has(databaseName)) { @@ -53,7 +53,12 @@ export function createAsyncStorage(databaseName: string): AsyncStorage { } export function clearAllMockStorages(): void { + for (const storage of inMemoryDbRegistry.values()) { + void storage.clear(); + } inMemoryDbRegistry.clear(); + inMemoryDbRegistry.set("legacy", legacyStorage); } -export default createAsyncStorage("legacy"); +const legacyStorage = createAsyncStorage("legacy"); +export default legacyStorage;