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;