@@ -139,6 +139,19 @@ function createFakePerformanceObs(url: string) {
139
139
return FakePerfObs ;
140
140
}
141
141
142
+ function testForCorrectEvents (
143
+ events : tracing . TimedEvent [ ] ,
144
+ eventNames : string [ ]
145
+ ) {
146
+ for ( let i = 0 ; i < events . length ; i ++ ) {
147
+ assert . strictEqual (
148
+ events [ i ] . name ,
149
+ eventNames [ i ] ,
150
+ `event ${ eventNames [ i ] } is not defined`
151
+ ) ;
152
+ }
153
+ }
154
+
142
155
describe ( 'fetch' , ( ) => {
143
156
let contextManager : ZoneContextManager ;
144
157
let lastResponse : any | undefined ;
@@ -152,6 +165,7 @@ describe('fetch', () => {
152
165
let fetchInstrumentation : FetchInstrumentation ;
153
166
154
167
const url = 'http://localhost:8090/get' ;
168
+ const secureUrl = 'https://localhost:8090/get' ;
155
169
const badUrl = 'http://foo.bar.com/get' ;
156
170
157
171
const clearData = ( ) => {
@@ -399,53 +413,17 @@ describe('fetch', () => {
399
413
it ( 'span should have correct events' , ( ) => {
400
414
const span : tracing . ReadableSpan = exportSpy . args [ 1 ] [ 0 ] [ 0 ] ;
401
415
const events = span . events ;
402
- assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
403
-
404
- assert . strictEqual (
405
- events [ 0 ] . name ,
416
+ assert . strictEqual ( events . length , 8 , 'number of events is wrong' ) ;
417
+ testForCorrectEvents ( events , [
406
418
PTN . FETCH_START ,
407
- `event ${ PTN . FETCH_START } is not defined`
408
- ) ;
409
- assert . strictEqual (
410
- events [ 1 ] . name ,
411
419
PTN . DOMAIN_LOOKUP_START ,
412
- `event ${ PTN . DOMAIN_LOOKUP_START } is not defined`
413
- ) ;
414
- assert . strictEqual (
415
- events [ 2 ] . name ,
416
420
PTN . DOMAIN_LOOKUP_END ,
417
- `event ${ PTN . DOMAIN_LOOKUP_END } is not defined`
418
- ) ;
419
- assert . strictEqual (
420
- events [ 3 ] . name ,
421
421
PTN . CONNECT_START ,
422
- `event ${ PTN . CONNECT_START } is not defined`
423
- ) ;
424
- assert . strictEqual (
425
- events [ 4 ] . name ,
426
- PTN . SECURE_CONNECTION_START ,
427
- `event ${ PTN . SECURE_CONNECTION_START } is not defined`
428
- ) ;
429
- assert . strictEqual (
430
- events [ 5 ] . name ,
431
422
PTN . CONNECT_END ,
432
- `event ${ PTN . CONNECT_END } is not defined`
433
- ) ;
434
- assert . strictEqual (
435
- events [ 6 ] . name ,
436
423
PTN . REQUEST_START ,
437
- `event ${ PTN . REQUEST_START } is not defined`
438
- ) ;
439
- assert . strictEqual (
440
- events [ 7 ] . name ,
441
424
PTN . RESPONSE_START ,
442
- `event ${ PTN . RESPONSE_START } is not defined`
443
- ) ;
444
- assert . strictEqual (
445
- events [ 8 ] . name ,
446
425
PTN . RESPONSE_END ,
447
- `event ${ PTN . RESPONSE_END } is not defined`
448
- ) ;
426
+ ] ) ;
449
427
} ) ;
450
428
451
429
it ( 'should create a span for preflight request' , ( ) => {
@@ -479,53 +457,17 @@ describe('fetch', () => {
479
457
it ( 'preflight request span should have correct events' , ( ) => {
480
458
const span : tracing . ReadableSpan = exportSpy . args [ 0 ] [ 0 ] [ 0 ] ;
481
459
const events = span . events ;
482
- assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
483
-
484
- assert . strictEqual (
485
- events [ 0 ] . name ,
460
+ assert . strictEqual ( events . length , 8 , 'number of events is wrong' ) ;
461
+ testForCorrectEvents ( events , [
486
462
PTN . FETCH_START ,
487
- `event ${ PTN . FETCH_START } is not defined`
488
- ) ;
489
- assert . strictEqual (
490
- events [ 1 ] . name ,
491
463
PTN . DOMAIN_LOOKUP_START ,
492
- `event ${ PTN . DOMAIN_LOOKUP_START } is not defined`
493
- ) ;
494
- assert . strictEqual (
495
- events [ 2 ] . name ,
496
464
PTN . DOMAIN_LOOKUP_END ,
497
- `event ${ PTN . DOMAIN_LOOKUP_END } is not defined`
498
- ) ;
499
- assert . strictEqual (
500
- events [ 3 ] . name ,
501
465
PTN . CONNECT_START ,
502
- `event ${ PTN . CONNECT_START } is not defined`
503
- ) ;
504
- assert . strictEqual (
505
- events [ 4 ] . name ,
506
- PTN . SECURE_CONNECTION_START ,
507
- `event ${ PTN . SECURE_CONNECTION_START } is not defined`
508
- ) ;
509
- assert . strictEqual (
510
- events [ 5 ] . name ,
511
466
PTN . CONNECT_END ,
512
- `event ${ PTN . CONNECT_END } is not defined`
513
- ) ;
514
- assert . strictEqual (
515
- events [ 6 ] . name ,
516
467
PTN . REQUEST_START ,
517
- `event ${ PTN . REQUEST_START } is not defined`
518
- ) ;
519
- assert . strictEqual (
520
- events [ 7 ] . name ,
521
468
PTN . RESPONSE_START ,
522
- `event ${ PTN . RESPONSE_START } is not defined`
523
- ) ;
524
- assert . strictEqual (
525
- events [ 8 ] . name ,
526
469
PTN . RESPONSE_END ,
527
- `event ${ PTN . RESPONSE_END } is not defined`
528
- ) ;
470
+ ] ) ;
529
471
} ) ;
530
472
531
473
it ( 'should set trace headers' , ( ) => {
@@ -639,6 +581,51 @@ describe('fetch', () => {
639
581
} ) ;
640
582
} ) ;
641
583
584
+ describe ( 'when request is secure and successful' , ( ) => {
585
+ beforeEach ( async ( ) => {
586
+ const propagateTraceHeaderCorsUrls = [ secureUrl ] ;
587
+ await prepareData ( secureUrl , { propagateTraceHeaderCorsUrls } ) ;
588
+ } ) ;
589
+
590
+ afterEach ( ( ) => {
591
+ clearData ( ) ;
592
+ } ) ;
593
+
594
+ it ( 'span should have correct events' , ( ) => {
595
+ const span : tracing . ReadableSpan = exportSpy . args [ 1 ] [ 0 ] [ 0 ] ;
596
+ const events = span . events ;
597
+ assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
598
+ testForCorrectEvents ( events , [
599
+ PTN . FETCH_START ,
600
+ PTN . DOMAIN_LOOKUP_START ,
601
+ PTN . DOMAIN_LOOKUP_END ,
602
+ PTN . CONNECT_START ,
603
+ PTN . SECURE_CONNECTION_START ,
604
+ PTN . CONNECT_END ,
605
+ PTN . REQUEST_START ,
606
+ PTN . RESPONSE_START ,
607
+ PTN . RESPONSE_END ,
608
+ ] ) ;
609
+ } ) ;
610
+
611
+ it ( 'preflight request span should have correct events' , ( ) => {
612
+ const span : tracing . ReadableSpan = exportSpy . args [ 0 ] [ 0 ] [ 0 ] ;
613
+ const events = span . events ;
614
+ assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
615
+ testForCorrectEvents ( events , [
616
+ PTN . FETCH_START ,
617
+ PTN . DOMAIN_LOOKUP_START ,
618
+ PTN . DOMAIN_LOOKUP_END ,
619
+ PTN . CONNECT_START ,
620
+ PTN . SECURE_CONNECTION_START ,
621
+ PTN . CONNECT_END ,
622
+ PTN . REQUEST_START ,
623
+ PTN . RESPONSE_START ,
624
+ PTN . RESPONSE_END ,
625
+ ] ) ;
626
+ } ) ;
627
+ } ) ;
628
+
642
629
describe ( 'applyCustomAttributesOnSpan option' , ( ) => {
643
630
const prepare = async (
644
631
url : string ,
@@ -815,13 +802,18 @@ describe('fetch', () => {
815
802
`Wrong number of spans: ${ exportSpy . args . length } `
816
803
) ;
817
804
818
- assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
805
+ assert . strictEqual ( events . length , 8 , 'number of events is wrong' ) ;
819
806
820
- assert . strictEqual (
821
- events [ 6 ] . name ,
807
+ testForCorrectEvents ( events , [
808
+ PTN . FETCH_START ,
809
+ PTN . DOMAIN_LOOKUP_START ,
810
+ PTN . DOMAIN_LOOKUP_END ,
811
+ PTN . CONNECT_START ,
812
+ PTN . CONNECT_END ,
822
813
PTN . REQUEST_START ,
823
- `event ${ PTN . REQUEST_START } is not defined`
824
- ) ;
814
+ PTN . RESPONSE_START ,
815
+ PTN . RESPONSE_END ,
816
+ ] ) ;
825
817
} ) ;
826
818
} ) ;
827
819
@@ -844,12 +836,17 @@ describe('fetch', () => {
844
836
`Wrong number of spans: ${ exportSpy . args . length } `
845
837
) ;
846
838
847
- assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
848
- assert . strictEqual (
849
- events [ 6 ] . name ,
839
+ assert . strictEqual ( events . length , 8 , 'number of events is wrong' ) ;
840
+ testForCorrectEvents ( events , [
841
+ PTN . FETCH_START ,
842
+ PTN . DOMAIN_LOOKUP_START ,
843
+ PTN . DOMAIN_LOOKUP_END ,
844
+ PTN . CONNECT_START ,
845
+ PTN . CONNECT_END ,
850
846
PTN . REQUEST_START ,
851
- `event ${ PTN . REQUEST_START } is not defined`
852
- ) ;
847
+ PTN . RESPONSE_START ,
848
+ PTN . RESPONSE_END ,
849
+ ] ) ;
853
850
} ) ;
854
851
855
852
it ( 'should have an absolute http.url attribute' , ( ) => {
@@ -882,12 +879,17 @@ describe('fetch', () => {
882
879
2 ,
883
880
`Wrong number of spans: ${ exportSpy . args . length } `
884
881
) ;
885
- assert . strictEqual ( events . length , 9 , 'number of events is wrong' ) ;
886
- assert . strictEqual (
887
- events [ 6 ] . name ,
882
+ assert . strictEqual ( events . length , 8 , 'number of events is wrong' ) ;
883
+ testForCorrectEvents ( events , [
884
+ PTN . FETCH_START ,
885
+ PTN . DOMAIN_LOOKUP_START ,
886
+ PTN . DOMAIN_LOOKUP_END ,
887
+ PTN . CONNECT_START ,
888
+ PTN . CONNECT_END ,
888
889
PTN . REQUEST_START ,
889
- `event ${ PTN . REQUEST_START } is not defined`
890
- ) ;
890
+ PTN . RESPONSE_START ,
891
+ PTN . RESPONSE_END ,
892
+ ] ) ;
891
893
} ) ;
892
894
} ) ;
893
895
0 commit comments