Skip to content

Commit f1d89c5

Browse files
removed any no identity available event reference
1 parent c16234b commit f1d89c5

File tree

3 files changed

+4
-161
lines changed

3 files changed

+4
-161
lines changed

src/callbackManager.ts

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export enum EventType {
77
IdentityUpdated = 'IdentityUpdated',
88
SdkLoaded = 'SdkLoaded',
99
OptoutReceived = 'OptoutReceived',
10-
NoIdentityAvailable = 'NoIdentityAvailable',
1110
}
1211

1312
export type CallbackPayload = SdkLoadedPayload | PayloadWithIdentity;

src/integrationTests/options.test.ts

-144
Original file line numberDiff line numberDiff line change
@@ -556,147 +556,3 @@ describe('Store config UID2', () => {
556556
});
557557
});
558558
});
559-
560-
describe('calls the NoIdentityAvailable event', () => {
561-
let handler: ReturnType<typeof jest.fn>;
562-
let expiredIdentity = makeIdentity({
563-
identity_expires: Date.now() - 100000,
564-
refresh_expires: Date.now() - 100000,
565-
});
566-
567-
beforeEach(() => {
568-
handler = jest.fn();
569-
uid2.callbacks.push(handler);
570-
});
571-
572-
test('when init is called for the first time with no identity', () => {
573-
uid2.init({});
574-
575-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
576-
});
577-
test('when init is already complete and called again with no identity', () => {
578-
uid2.init({});
579-
uid2.init({});
580-
581-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
582-
});
583-
test('when init is already complete and called again with an expired identity', () => {
584-
uid2.init({});
585-
uid2.init({
586-
identity: expiredIdentity,
587-
});
588-
589-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, {
590-
identity: expiredIdentity,
591-
});
592-
});
593-
test('when init is already complete but the existing identity is expired', () => {
594-
uid2.init({
595-
identity: expiredIdentity,
596-
});
597-
uid2.init({});
598-
599-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, {
600-
identity: expiredIdentity,
601-
});
602-
});
603-
test('when identity is expired but refreshable', () => {
604-
let expiredRefreshableIdentity = makeIdentity({
605-
identity_expires: Date.now() - 10000,
606-
refresh_expires: Date.now() + 10000,
607-
});
608-
uid2.init({ identity: expiredRefreshableIdentity });
609-
610-
// in this case, identity is temporarily unavailable but still unavailable
611-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
612-
});
613-
test('when login is required', () => {
614-
uid2.isLoginRequired();
615-
616-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
617-
});
618-
test('when get identity returns null', () => {
619-
uid2.getIdentity();
620-
621-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
622-
});
623-
test('when there is no advertising token', () => {
624-
uid2.getAdvertisingToken();
625-
626-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
627-
});
628-
test('when cstg does not succeed', () => {
629-
uid2.init({});
630-
631-
expect(uid2.setIdentityFromEmail('a', mocks.makeUid2CstgOption())).rejects.toThrow(
632-
'Invalid email address'
633-
);
634-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
635-
});
636-
test('when identity was valid on init but has since expired', () => {
637-
const originalIdentity = makeIdentity({
638-
advertising_token: 'original_advertising_token',
639-
identity_expires: Date.now() + 100,
640-
});
641-
uid2.init({ identity: originalIdentity });
642-
643-
expect(handler).not.toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, {
644-
identity: null,
645-
});
646-
647-
// set time to an expired date for this identity
648-
jest.setSystemTime(originalIdentity.refresh_expires * 1000 + 1);
649-
650-
uid2.isIdentityAvailable();
651-
652-
expect(handler).toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, {
653-
identity: originalIdentity,
654-
});
655-
});
656-
});
657-
658-
describe('does not call NoIdentityAvailable event', () => {
659-
let validIdentity = makeIdentity();
660-
let handler: ReturnType<typeof jest.fn>;
661-
beforeEach(() => {
662-
handler = jest.fn();
663-
uid2.callbacks.push(handler);
664-
});
665-
666-
test('when setIdentity is run with a valid identity, should not call NoIdentityAvailable on set or get', () => {
667-
uid2.init({});
668-
handler = jest.fn();
669-
670-
uid2.setIdentity(validIdentity);
671-
uid2.getIdentity();
672-
uid2.getAdvertisingToken();
673-
674-
expect(handler).not.toHaveBeenCalledWith(EventType.NoIdentityAvailable, { identity: null });
675-
});
676-
test('when identity is set with opted out identity', () => {
677-
uid2.init({ identity: makeIdentity({ status: 'optout' }) });
678-
679-
expect(handler).not.toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
680-
});
681-
test('when cstg is successful', async () => {
682-
uid2.init({});
683-
handler = jest.fn();
684-
685-
expect(async () => {
686-
await uid2.setIdentityFromEmail('test@test.com', mocks.makeUid2CstgOption());
687-
}).not.toThrow();
688-
expect(handler).not.toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
689-
});
690-
test('when identity is set with local storage and init has never been called', () => {
691-
mocks.setUid2LocalStorage(validIdentity);
692-
uid2.isIdentityAvailable();
693-
694-
expect(handler).not.toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
695-
});
696-
test('when identity is set with cookie and init has never been called', () => {
697-
mocks.setUid2Cookie(validIdentity);
698-
uid2.isIdentityAvailable();
699-
700-
expect(handler).not.toHaveBeenLastCalledWith(EventType.NoIdentityAvailable, { identity: null });
701-
});
702-
});

src/sdkBase.ts

+4-16
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ export abstract class SdkBase {
165165
public getIdentity(): Identity | null {
166166
const identity = this._identity ?? this.getIdentityNoInit();
167167
if (!isValidIdentity(identity) || this.temporarilyUnavailable(identity)) {
168-
this._callbackManager.runCallbacks(EventType.NoIdentityAvailable, {});
169168
return null;
170169
}
171170
return identity;
@@ -199,17 +198,10 @@ export abstract class SdkBase {
199198

200199
public isIdentityAvailable() {
201200
const identity = this._identity ?? this.getIdentityNoInit();
202-
const identityAvailable =
203-
(this.isIdentityValid(identity) && !this.temporarilyUnavailable(identity)) ||
204-
this._apiClient?.hasActiveRequests();
205-
206-
if (!identityAvailable) {
207-
if (this._callbackManager) {
208-
this._callbackManager.runCallbacks(EventType.NoIdentityAvailable, {});
209-
}
210-
return false;
211-
}
212-
return true;
201+
return (
202+
(identity && !hasExpired && !this.temporarilyUnavailable(identity)) ||
203+
this._apiClient?.hasActiveRequests()
204+
);
213205
}
214206

215207
public hasOptedOut() {
@@ -309,10 +301,6 @@ export abstract class SdkBase {
309301
if (this.hasOptedOut()) this._callbackManager.runCallbacks(EventType.OptoutReceived, {});
310302
}
311303

312-
private isIdentityValid(identity: Identity | OptoutIdentity | null | undefined) {
313-
return identity && !hasExpired(identity.refresh_expires);
314-
}
315-
316304
private temporarilyUnavailable(identity: Identity | OptoutIdentity | null | undefined) {
317305
if (!identity && this._apiClient?.hasActiveRequests()) return true;
318306
// returns true if identity is expired but refreshable

0 commit comments

Comments
 (0)