@@ -3,7 +3,14 @@ import MockAdapter from 'axios-mock-adapter';
33import { initialize , setTypeOfAuthForTestingOnly } from './authorization' ;
44import { baseAxiosRequest } from '../request' ;
55import { 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' ;
714import { updateSubscriptions , updateUser , updateUserEmail } from '../users' ;
815import { trackPurchase , updateCart } from '../commerce' ;
916import {
@@ -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' ) ;
0 commit comments