@@ -849,6 +849,131 @@ describe('ConstructorIO - Utils - Request Queue', function utilsRequestQueue() {
849849 } , waitInterval ) ;
850850 } ) ;
851851 } ) ;
852+
853+ describe ( 'headers' , ( ) => {
854+ describe ( 'securityToken' , ( ) => {
855+ it ( 'Should send x-cnstrc-token header on POST requests when securityToken is provided' , ( done ) => {
856+ const requests = new RequestQueue ( {
857+ ...requestQueueOptions ,
858+ securityToken : 'test-security-token' ,
859+ } ) ;
860+
861+ store . session . set ( humanityStorageKey , true ) ;
862+
863+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' , 'POST' , { action : 'session_start' } ) ;
864+ requests . send ( ) ;
865+
866+ setTimeout ( ( ) => {
867+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
868+ expect ( requestHeaders ) . to . have . property ( 'x-cnstrc-token' ) . to . equal ( 'test-security-token' ) ;
869+ done ( ) ;
870+ } , waitInterval ) ;
871+ } ) ;
872+
873+ it ( 'Should send x-cnstrc-token header on GET requests when securityToken is provided' , ( done ) => {
874+ const requests = new RequestQueue ( {
875+ ...requestQueueOptions ,
876+ securityToken : 'test-security-token' ,
877+ } ) ;
878+
879+ store . session . set ( humanityStorageKey , true ) ;
880+
881+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' ) ;
882+ requests . send ( ) ;
883+
884+ setTimeout ( ( ) => {
885+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
886+ expect ( requestHeaders ) . to . have . property ( 'x-cnstrc-token' ) . to . equal ( 'test-security-token' ) ;
887+ done ( ) ;
888+ } , waitInterval ) ;
889+ } ) ;
890+
891+ it ( 'Should not send x-cnstrc-token header when securityToken is not provided' , ( done ) => {
892+ const requests = new RequestQueue ( requestQueueOptions ) ;
893+
894+ store . session . set ( humanityStorageKey , true ) ;
895+
896+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' , 'POST' , { action : 'session_start' } ) ;
897+ requests . send ( ) ;
898+
899+ setTimeout ( ( ) => {
900+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
901+ expect ( requestHeaders ) . to . not . have . property ( 'x-cnstrc-token' ) ;
902+ done ( ) ;
903+ } , waitInterval ) ;
904+ } ) ;
905+ } ) ;
906+
907+ describe ( 'userIp' , ( ) => {
908+ it ( 'Should send X-Forwarded-For header when userIp is provided' , ( done ) => {
909+ const requests = new RequestQueue ( {
910+ ...requestQueueOptions ,
911+ userIp : '127.0.0.1' ,
912+ } ) ;
913+
914+ store . session . set ( humanityStorageKey , true ) ;
915+
916+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' , 'POST' , { action : 'session_start' } ) ;
917+ requests . send ( ) ;
918+
919+ setTimeout ( ( ) => {
920+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
921+ expect ( requestHeaders ) . to . have . property ( 'X-Forwarded-For' ) . to . equal ( '127.0.0.1' ) ;
922+ done ( ) ;
923+ } , waitInterval ) ;
924+ } ) ;
925+
926+ it ( 'Should not send X-Forwarded-For header when userIp is not provided' , ( done ) => {
927+ const requests = new RequestQueue ( requestQueueOptions ) ;
928+
929+ store . session . set ( humanityStorageKey , true ) ;
930+
931+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' , 'POST' , { action : 'session_start' } ) ;
932+ requests . send ( ) ;
933+
934+ setTimeout ( ( ) => {
935+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
936+ expect ( requestHeaders ) . to . not . have . property ( 'X-Forwarded-For' ) ;
937+ done ( ) ;
938+ } , waitInterval ) ;
939+ } ) ;
940+ } ) ;
941+
942+ describe ( 'userAgent' , ( ) => {
943+ it ( 'Should send User-Agent header when userAgent is provided' , ( done ) => {
944+ const requests = new RequestQueue ( {
945+ ...requestQueueOptions ,
946+ userAgent : 'custom-agent/1.0' ,
947+ } ) ;
948+
949+ store . session . set ( humanityStorageKey , true ) ;
950+
951+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' , 'POST' , { action : 'session_start' } ) ;
952+ requests . send ( ) ;
953+
954+ setTimeout ( ( ) => {
955+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
956+ expect ( requestHeaders ) . to . have . property ( 'User-Agent' ) . to . equal ( 'custom-agent/1.0' ) ;
957+ done ( ) ;
958+ } , waitInterval ) ;
959+ } ) ;
960+
961+ it ( 'Should not send User-Agent header when userAgent is not provided' , ( done ) => {
962+ const requests = new RequestQueue ( requestQueueOptions ) ;
963+
964+ store . session . set ( humanityStorageKey , true ) ;
965+
966+ requests . queue ( 'https://ac.cnstrc.com/behavior?action=session_start' , 'POST' , { action : 'session_start' } ) ;
967+ requests . send ( ) ;
968+
969+ setTimeout ( ( ) => {
970+ const requestHeaders = helpers . extractHeadersFromFetch ( fetchSpy ) ;
971+ expect ( requestHeaders ) . to . not . have . property ( 'User-Agent' ) ;
972+ done ( ) ;
973+ } , waitInterval ) ;
974+ } ) ;
975+ } ) ;
976+ } ) ;
852977 } ) ;
853978
854979 describe ( 'domless' , ( ) => {
0 commit comments