@@ -118,6 +118,24 @@ describe('EventSender', () => {
118118 expect ( r . headers [ 'x-launchdarkly-wrapper' ] ) . toBeUndefined ( ) ;
119119 } ) ;
120120
121+ it ( 'should send unique payload IDs' , async ( ) => {
122+ const options = { sendLDHeaders : true } ;
123+ const server = platform . testing . http . newServer ( ) ;
124+ server . byDefault ( respond ( 202 ) ) ;
125+ const sender = EventSender ( platform , server . url , envId , options ) ;
126+ const event = { kind : 'identify' , key : 'userKey' } ;
127+ await sender . sendEvents ( [ event ] , false ) ;
128+ await sender . sendEvents ( [ event ] , false ) ;
129+
130+ const r0 = await server . nextRequest ( ) ;
131+ const r1 = await server . nextRequest ( ) ;
132+ const id0 = r0 . headers [ 'x-launchdarkly-payload-id' ] ;
133+ const id1 = r1 . headers [ 'x-launchdarkly-payload-id' ] ;
134+ expect ( id0 ) . toBeTruthy ( ) ;
135+ expect ( id1 ) . toBeTruthy ( ) ;
136+ expect ( id0 ) . not . toEqual ( id1 ) ;
137+ } ) ;
138+
121139 it ( 'should send wrapper info if present' , async ( ) => {
122140 const options = { sendLDHeaders : true , wrapperName : 'FakeSDK' } ;
123141 const server = platform . testing . http . newServer ( ) ;
@@ -146,9 +164,13 @@ describe('EventSender', () => {
146164 await sender . sendEvents ( [ event ] , false ) ;
147165
148166 expect ( server . requests . length ( ) ) . toEqual ( 2 ) ;
149- await server . nextRequest ( ) ;
167+ const r0 = await server . nextRequest ( ) ;
150168 const r1 = await server . nextRequest ( ) ;
169+ expect ( JSON . parse ( r0 . body ) ) . toEqual ( [ event ] ) ;
151170 expect ( JSON . parse ( r1 . body ) ) . toEqual ( [ event ] ) ;
171+ const id0 = r0 . headers [ 'x-launchdarkly-payload-id' ] ;
172+ expect ( id0 ) . toBeTruthy ( ) ;
173+ expect ( r1 . headers [ 'x-launchdarkly-payload-id' ] ) . toEqual ( id0 ) ;
152174 } ) ;
153175 }
154176
0 commit comments