Skip to content

Commit e38d2dc

Browse files
SDK-364 user email on inapp events payload and corresponding tests (#553)
1 parent ab2e745 commit e38d2dc

2 files changed

Lines changed: 99 additions & 6 deletions

File tree

src/authorization/authorization.test.ts

Lines changed: 98 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@ import MockAdapter from 'axios-mock-adapter';
33
import { initialize, setTypeOfAuthForTestingOnly } from './authorization';
44
import { baseAxiosRequest } from '../request';
55
import { getInAppMessages } from '../inapp';
6-
import { track, trackInAppClose } from '../events';
6+
import {
7+
track,
8+
trackInAppClose,
9+
trackInAppDelivery,
10+
trackInAppOpen,
11+
trackInAppClick,
12+
trackInAppConsume
13+
} from '../events';
714
import { updateSubscriptions, updateUser, updateUserEmail } from '../users';
815
import { trackPurchase, updateCart } from '../commerce';
916
import {
@@ -499,6 +506,55 @@ describe('User Identification', () => {
499506
);
500507
});
501508

509+
it('adds email body to in-app event endpoints (trackInAppDelivery, trackInAppOpen, trackInAppClick, inAppConsume)', async () => {
510+
const { setEmail } = initialize('123');
511+
await setEmail('hello@gmail.com');
512+
513+
mockRequest.onPost('/events/trackInAppDelivery').reply(200, {
514+
data: 'something'
515+
});
516+
mockRequest.onPost('/events/trackInAppOpen').reply(200, {
517+
data: 'something'
518+
});
519+
mockRequest.onPost('/events/trackInAppClick').reply(200, {
520+
data: 'something'
521+
});
522+
mockRequest.onPost('/events/inAppConsume').reply(200, {
523+
data: 'something'
524+
});
525+
526+
const deliveryResponse = await trackInAppDelivery({
527+
messageId: '123',
528+
deviceInfo: { appPackageName: 'my-lil-website' }
529+
});
530+
const openResponse = await trackInAppOpen({
531+
messageId: '123',
532+
deviceInfo: { appPackageName: 'my-lil-website' }
533+
});
534+
const clickResponse = await trackInAppClick({
535+
messageId: '123',
536+
clickedUrl: 'https://example.com',
537+
deviceInfo: { appPackageName: 'my-lil-website' }
538+
});
539+
const consumeResponse = await trackInAppConsume({
540+
messageId: '123',
541+
deviceInfo: { appPackageName: 'my-lil-website' }
542+
});
543+
544+
expect(JSON.parse(deliveryResponse.config.data).email).toBe(
545+
'hello@gmail.com'
546+
);
547+
expect(JSON.parse(openResponse.config.data).email).toBe(
548+
'hello@gmail.com'
549+
);
550+
expect(JSON.parse(clickResponse.config.data).email).toBe(
551+
'hello@gmail.com'
552+
);
553+
expect(JSON.parse(consumeResponse.config.data).email).toBe(
554+
'hello@gmail.com'
555+
);
556+
});
557+
502558
it('adds currentEmail body to endpoint that need an currentEmail as a body', async () => {
503559
const { setEmail } = initialize('123');
504560
await setEmail('hello@gmail.com');
@@ -648,6 +704,47 @@ describe('User Identification', () => {
648704
expect(JSON.parse(trackResponse.config.data).userId).toBe('999');
649705
});
650706

707+
it('adds userId body to in-app event endpoints (trackInAppDelivery, trackInAppOpen, trackInAppClick, inAppConsume)', async () => {
708+
const { setUserID } = initialize('123');
709+
await setUserID('999');
710+
711+
mockRequest.onPost('/events/trackInAppDelivery').reply(200, {
712+
data: 'something'
713+
});
714+
mockRequest.onPost('/events/trackInAppOpen').reply(200, {
715+
data: 'something'
716+
});
717+
mockRequest.onPost('/events/trackInAppClick').reply(200, {
718+
data: 'something'
719+
});
720+
mockRequest.onPost('/events/inAppConsume').reply(200, {
721+
data: 'something'
722+
});
723+
724+
const deliveryResponse = await trackInAppDelivery({
725+
messageId: '123',
726+
deviceInfo: { appPackageName: 'my-lil-website' }
727+
});
728+
const openResponse = await trackInAppOpen({
729+
messageId: '123',
730+
deviceInfo: { appPackageName: 'my-lil-website' }
731+
});
732+
const clickResponse = await trackInAppClick({
733+
messageId: '123',
734+
clickedUrl: 'https://example.com',
735+
deviceInfo: { appPackageName: 'my-lil-website' }
736+
});
737+
const consumeResponse = await trackInAppConsume({
738+
messageId: '123',
739+
deviceInfo: { appPackageName: 'my-lil-website' }
740+
});
741+
742+
expect(JSON.parse(deliveryResponse.config.data).userId).toBe('999');
743+
expect(JSON.parse(openResponse.config.data).userId).toBe('999');
744+
expect(JSON.parse(clickResponse.config.data).userId).toBe('999');
745+
expect(JSON.parse(consumeResponse.config.data).userId).toBe('999');
746+
});
747+
651748
it('adds currentUserId body to endpoint that need an currentUserId as a body', async () => {
652749
const { setUserID } = initialize('123');
653750
await setUserID('999');

src/authorization/authorization.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -277,11 +277,7 @@ const addEmailToRequest = (email: string) => {
277277
body: true,
278278
current: false,
279279
nestedUser: false
280-
}) &&
281-
!config?.url?.includes('/events/trackInAppDelivery') &&
282-
!config?.url?.includes('/events/trackInAppClick') &&
283-
!config?.url?.includes('/events/trackInAppOpen') &&
284-
!config?.url?.includes('/events/inAppConsume')
280+
})
285281
) {
286282
return {
287283
...config,

0 commit comments

Comments
 (0)