@@ -3111,6 +3111,128 @@ describe('Rokt Forwarder', () => {
31113111 'test-attribute' : 'test-value' ,
31123112 } ) ;
31133113 } ) ;
3114+
3115+ describe ( 'event stream' , ( ) => {
3116+ beforeEach ( ( ) => {
3117+ window . mParticle . forwarder . eventStreamQueue = [ ] ;
3118+ window . mParticle . sessionManager = {
3119+ getSession : function ( ) {
3120+ return 'test-mp-session-id' ;
3121+ } ,
3122+ } ;
3123+ } ) ;
3124+
3125+ afterEach ( ( ) => {
3126+ delete window . Rokt . __event_stream__ ;
3127+ window . mParticle . forwarder . eventStreamQueue = [ ] ;
3128+ } ) ;
3129+
3130+ it ( 'should send a set_user_attributes event to window.Rokt.__event_stream__' , ( ) => {
3131+ var receivedEvents = [ ] ;
3132+ window . Rokt . __event_stream__ = function ( event ) {
3133+ receivedEvents . push ( event ) ;
3134+ } ;
3135+
3136+ window . mParticle . forwarder . setUserAttribute (
3137+ 'test-attribute' ,
3138+ 'test-value'
3139+ ) ;
3140+
3141+ receivedEvents . length . should . equal ( 1 ) ;
3142+ receivedEvents [ 0 ] . EventName . should . equal ( 'set_user_attributes' ) ;
3143+ receivedEvents [ 0 ] . EventDataType . should . equal ( 14 ) ;
3144+ } ) ;
3145+
3146+ it ( 'should include updated UserAttributes in the event' , ( ) => {
3147+ var receivedEvents = [ ] ;
3148+ window . Rokt . __event_stream__ = function ( event ) {
3149+ receivedEvents . push ( event ) ;
3150+ } ;
3151+
3152+ window . mParticle . forwarder . setUserAttribute (
3153+ 'new-attr' ,
3154+ 'new-value'
3155+ ) ;
3156+
3157+ receivedEvents [ 0 ] . UserAttributes . should . deepEqual ( {
3158+ 'new-attr' : 'new-value' ,
3159+ } ) ;
3160+ } ) ;
3161+
3162+ it ( 'should include MPID from filteredUser and SessionId from sessionManager' , ( ) => {
3163+ var receivedEvents = [ ] ;
3164+ window . Rokt . __event_stream__ = function ( event ) {
3165+ receivedEvents . push ( event ) ;
3166+ } ;
3167+
3168+ window . mParticle . forwarder . filters . filteredUser = {
3169+ getMPID : function ( ) {
3170+ return 'attr-mpid-123' ;
3171+ } ,
3172+ getUserIdentities : function ( ) {
3173+ return {
3174+ userIdentities : { email : 'user@example.com' } ,
3175+ } ;
3176+ } ,
3177+ } ;
3178+
3179+ window . mParticle . forwarder . setUserAttribute ( 'k' , 'v' ) ;
3180+
3181+ receivedEvents [ 0 ] . MPID . should . equal ( 'attr-mpid-123' ) ;
3182+ receivedEvents [ 0 ] . SessionId . should . equal ( 'test-mp-session-id' ) ;
3183+ receivedEvents [ 0 ] . UserIdentities . should . deepEqual ( {
3184+ email : 'user@example.com' ,
3185+ } ) ;
3186+ } ) ;
3187+
3188+ it ( 'should include null MPID and null UserIdentities when filteredUser is not set' , ( ) => {
3189+ var receivedEvents = [ ] ;
3190+ window . Rokt . __event_stream__ = function ( event ) {
3191+ receivedEvents . push ( event ) ;
3192+ } ;
3193+
3194+ window . mParticle . forwarder . filters . filteredUser = null ;
3195+ window . mParticle . forwarder . setUserAttribute ( 'k' , 'v' ) ;
3196+
3197+ ( receivedEvents [ 0 ] . MPID === null ) . should . be . true ( ) ;
3198+ ( receivedEvents [ 0 ] . UserIdentities === null ) . should . be . true ( ) ;
3199+ } ) ;
3200+
3201+ it ( 'should queue event when window.Rokt.__event_stream__ is not available' , ( ) => {
3202+ window . mParticle . forwarder . setUserAttribute (
3203+ 'queued-attr' ,
3204+ 'queued-value'
3205+ ) ;
3206+
3207+ window . mParticle . forwarder . eventStreamQueue . length . should . equal (
3208+ 1
3209+ ) ;
3210+ window . mParticle . forwarder . eventStreamQueue [ 0 ] . EventName . should . equal (
3211+ 'set_user_attributes'
3212+ ) ;
3213+ window . mParticle . forwarder . eventStreamQueue [ 0 ] . EventDataType . should . equal (
3214+ 14
3215+ ) ;
3216+ } ) ;
3217+
3218+ it ( 'should not throw when window.Rokt is undefined' , ( ) => {
3219+ var savedRokt = window . Rokt ;
3220+ window . Rokt = undefined ;
3221+
3222+ ( function ( ) {
3223+ window . mParticle . forwarder . setUserAttribute ( 'k' , 'v' ) ;
3224+ } ) . should . not . throw ( ) ;
3225+
3226+ window . mParticle . forwarder . eventStreamQueue . length . should . equal (
3227+ 1
3228+ ) ;
3229+ window . mParticle . forwarder . eventStreamQueue [ 0 ] . EventName . should . equal (
3230+ 'set_user_attributes'
3231+ ) ;
3232+
3233+ window . Rokt = savedRokt ;
3234+ } ) ;
3235+ } ) ;
31143236 } ) ;
31153237
31163238 describe ( '#removeUserAttribute' , ( ) => {
0 commit comments