diff --git a/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts b/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts index 94475367ec3..701bcc53072 100644 --- a/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts +++ b/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts @@ -57,7 +57,7 @@ describe('DefaultIdentityIdStore', () => { }); it('should store guest identityId in keyValueStorage', async () => { - defaultIdStore.storeIdentityId(validGuestIdentityId); + await defaultIdStore.storeIdentityId(validGuestIdentityId); expect(mockKeyValueStorage.setItem).toHaveBeenCalledWith( validAuthKey.identityId, validGuestIdentityId.id, @@ -73,7 +73,8 @@ describe('DefaultIdentityIdStore', () => { }); it('should store primary identityId in keyValueStorage', async () => { - defaultIdStore.storeIdentityId(validPrimaryIdentityId); + mockKeyValueStorage.getItem.mockResolvedValue(validGuestIdentityId.id); + await defaultIdStore.storeIdentityId(validPrimaryIdentityId); expect(mockKeyValueStorage.removeItem).toHaveBeenCalledWith( validAuthKey.identityId, ); @@ -114,12 +115,13 @@ describe('DefaultIdentityIdStore', () => { }); it('should not call keyValueStorage.removeItem when there is no guest identityId to clear', async () => { + mockKeyValueStorage.getItem.mockResolvedValue(null); const refreshIdentityIdStore = new DefaultIdentityIdStore( mockKeyValueStorage, ); refreshIdentityIdStore.setAuthConfig(validAuthConfig.Auth!); - refreshIdentityIdStore.storeIdentityId(validPrimaryIdentityId); + await refreshIdentityIdStore.storeIdentityId(validPrimaryIdentityId); expect(mockKeyValueStorage.removeItem).not.toHaveBeenCalled(); }); }); diff --git a/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts b/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts index 283b0e9cd3f..e982bc2fe21 100644 --- a/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts +++ b/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts @@ -7,7 +7,10 @@ import { Identity, KeyValueStorageInterface, } from '@aws-amplify/core'; -import { assertIdentityPoolIdConfig } from '@aws-amplify/core/internals/utils'; +import { + assertIdentityPoolIdConfig, + isBrowser, +} from '@aws-amplify/core/internals/utils'; import { getAuthStorageKeys } from '../tokenProvider/TokenStore'; import { AuthKeys } from '../tokenProvider/types'; @@ -80,10 +83,10 @@ export class DefaultIdentityIdStore implements IdentityIdStore { } else { this._primaryIdentityId = identity.id; // Clear locally stored guest id - if (this._hasGuestIdentityId) { + if (this._hasGuestIdentityId || isBrowser()) { this.keyValueStorage.removeItem(this._authKeys.identityId); - this._hasGuestIdentityId = false; } + this._hasGuestIdentityId = false; } }