@@ -88,6 +88,16 @@ describe('alias', () => {
8888 expect ( ctx . event . userId ) . toEqual ( 'chris radek' )
8989 expect ( ctx . event . previousId ) . toEqual ( 'chris' )
9090 expect ( ctx . event . timestamp ) . toEqual ( timestamp )
91+ expect ( ctx . event . messageId ) . toEqual ( expect . any ( String ) )
92+ } )
93+ it ( 'allows messageId to be overridden' , async ( ) => {
94+ const analytics = createTestAnalytics ( {
95+ httpClient : testClient ,
96+ } )
97+ const messageId = 'overridden'
98+ analytics . alias ( { userId : 'foo' , previousId : 'bar' , messageId } )
99+ const ctx = await resolveCtx ( analytics , 'alias' )
100+ expect ( ctx . event . messageId ) . toBe ( messageId )
91101 } )
92102} )
93103
@@ -107,6 +117,7 @@ describe('group', () => {
107117 expect ( ctx . event . userId ) . toEqual ( 'foo' )
108118 expect ( ctx . event . anonymousId ) . toBe ( 'bar' )
109119 expect ( ctx . event . timestamp ) . toEqual ( timestamp )
120+ expect ( ctx . event . messageId ) . toEqual ( expect . any ( String ) )
110121 } )
111122
112123 it ( 'invocations are isolated' , async ( ) => {
@@ -134,6 +145,16 @@ describe('group', () => {
134145 expect ( ctx2 . event . anonymousId ) . toBeUndefined ( )
135146 expect ( ctx2 . event . userId ) . toEqual ( 'me' )
136147 } )
148+
149+ it ( 'allows messageId to be overridden' , async ( ) => {
150+ const analytics = createTestAnalytics ( {
151+ httpClient : testClient ,
152+ } )
153+ const messageId = 'overridden'
154+ analytics . group ( { groupId : 'foo' , userId : 'sup' , messageId } )
155+ const ctx = await resolveCtx ( analytics , 'group' )
156+ expect ( ctx . event . messageId ) . toBe ( messageId )
157+ } )
137158} )
138159
139160describe ( 'identify' , ( ) => {
@@ -181,6 +202,7 @@ describe('page', () => {
181202 expect ( ctx1 . event . userId ) . toBeUndefined ( )
182203 expect ( ctx1 . event . properties ) . toEqual ( { category } )
183204 expect ( ctx1 . event . timestamp ) . toEqual ( timestamp )
205+ expect ( ctx1 . event . messageId ) . toEqual ( expect . any ( String ) )
184206
185207 analytics . page ( { name, properties : { title : 'wip' } , userId : 'user-id' } )
186208
@@ -192,6 +214,7 @@ describe('page', () => {
192214 expect ( ctx2 . event . userId ) . toEqual ( 'user-id' )
193215 expect ( ctx2 . event . properties ) . toEqual ( { title : 'wip' } )
194216 expect ( ctx2 . event . timestamp ) . toEqual ( expect . any ( Date ) )
217+ expect ( ctx2 . event . messageId ) . toEqual ( expect . any ( String ) )
195218
196219 analytics . page ( { properties : { title : 'invisible' } , userId : 'user-id' } )
197220 const ctx3 = await resolveCtx ( analytics , 'page' )
@@ -201,6 +224,17 @@ describe('page', () => {
201224 expect ( ctx3 . event . anonymousId ) . toBeUndefined ( )
202225 expect ( ctx3 . event . userId ) . toEqual ( 'user-id' )
203226 expect ( ctx3 . event . properties ) . toEqual ( { title : 'invisible' } )
227+ expect ( ctx3 . event . messageId ) . toEqual ( expect . any ( String ) )
228+ } )
229+
230+ it ( 'allows messageId to be overridden' , async ( ) => {
231+ const analytics = createTestAnalytics ( {
232+ httpClient : testClient ,
233+ } )
234+ const messageId = 'overridden'
235+ analytics . page ( { name : 'foo' , userId : 'sup' , messageId } )
236+ const ctx = await resolveCtx ( analytics , 'page' )
237+ expect ( ctx . event . messageId ) . toBe ( messageId )
204238 } )
205239} )
206240
@@ -224,6 +258,7 @@ describe('screen', () => {
224258 expect ( ctx1 . event . userId ) . toEqual ( 'user-id' )
225259 expect ( ctx1 . event . properties ) . toEqual ( { title : 'wip' } )
226260 expect ( ctx1 . event . timestamp ) . toEqual ( timestamp )
261+ expect ( ctx1 . event . messageId ) . toEqual ( expect . any ( String ) )
227262
228263 analytics . screen ( {
229264 properties : { title : 'invisible' } ,
@@ -238,6 +273,16 @@ describe('screen', () => {
238273 expect ( ctx2 . event . userId ) . toEqual ( 'user-id' )
239274 expect ( ctx2 . event . properties ) . toEqual ( { title : 'invisible' } )
240275 expect ( ctx2 . event . timestamp ) . toEqual ( expect . any ( Date ) )
276+ expect ( ctx2 . event . messageId ) . toEqual ( expect . any ( String ) )
277+ } )
278+ it ( 'allows messageId to be overridden' , async ( ) => {
279+ const analytics = createTestAnalytics ( {
280+ httpClient : testClient ,
281+ } )
282+ const messageId = 'overridden'
283+ analytics . screen ( { name : 'foo' , userId : 'sup' , messageId } )
284+ const ctx = await resolveCtx ( analytics , 'screen' )
285+ expect ( ctx . event . messageId ) . toBe ( messageId )
241286 } )
242287} )
243288
@@ -272,6 +317,7 @@ describe('track', () => {
272317 expect ( ctx1 . event . anonymousId ) . toEqual ( 'unknown' )
273318 expect ( ctx1 . event . userId ) . toEqual ( 'known' )
274319 expect ( ctx1 . event . timestamp ) . toEqual ( timestamp )
320+ expect ( ctx1 . event . messageId ) . toEqual ( expect . any ( String ) )
275321
276322 analytics . track ( {
277323 event : eventName ,
@@ -286,6 +332,17 @@ describe('track', () => {
286332 expect ( ctx2 . event . anonymousId ) . toBeUndefined ( )
287333 expect ( ctx2 . event . userId ) . toEqual ( 'known' )
288334 expect ( ctx2 . event . timestamp ) . toEqual ( expect . any ( Date ) )
335+ expect ( ctx2 . event . messageId ) . toEqual ( expect . any ( String ) )
336+ } )
337+
338+ it ( 'allows messageId to be overridden' , async ( ) => {
339+ const analytics = createTestAnalytics ( {
340+ httpClient : testClient ,
341+ } )
342+ const messageId = 'overridden'
343+ analytics . track ( { event : 'foo' , userId : 'sup' , messageId } )
344+ const ctx = await resolveCtx ( analytics , 'track' )
345+ expect ( ctx . event . messageId ) . toBe ( messageId )
289346 } )
290347} )
291348
0 commit comments