@@ -275,6 +275,7 @@ versions.forEach(version => {
275
275
}
276
276
)
277
277
} )
278
+
278
279
it ( 'can report code coverage' , ( done ) => {
279
280
const libraryConfigRequestPromise = receiver . payloadReceived (
280
281
( { url } ) => url . endsWith ( '/api/v2/libraries/tests/services/setting' )
@@ -355,6 +356,7 @@ versions.forEach(version => {
355
356
done ( )
356
357
} )
357
358
} )
359
+
358
360
it ( 'does not report code coverage if disabled by the API' , ( done ) => {
359
361
receiver . setSettings ( {
360
362
itr_enabled : false ,
@@ -390,6 +392,7 @@ versions.forEach(version => {
390
392
}
391
393
)
392
394
} )
395
+
393
396
it ( 'can skip suites received by the intelligent test runner API and still reports code coverage' ,
394
397
( done ) => {
395
398
receiver . setSuitesToSkip ( [ {
@@ -463,6 +466,7 @@ versions.forEach(version => {
463
466
}
464
467
)
465
468
} )
469
+
466
470
it ( 'does not skip tests if git metadata upload fails' , ( done ) => {
467
471
receiver . setSuitesToSkip ( [ {
468
472
type : 'suite' ,
@@ -505,6 +509,7 @@ versions.forEach(version => {
505
509
}
506
510
)
507
511
} )
512
+
508
513
it ( 'does not skip tests if test skipping is disabled by the API' , ( done ) => {
509
514
receiver . setSettings ( {
510
515
itr_enabled : true ,
@@ -543,6 +548,7 @@ versions.forEach(version => {
543
548
}
544
549
)
545
550
} )
551
+
546
552
it ( 'does not skip suites if suite is marked as unskippable' , ( done ) => {
547
553
receiver . setSettings ( {
548
554
itr_enabled : true ,
@@ -611,6 +617,7 @@ versions.forEach(version => {
611
617
} ) . catch ( done )
612
618
} )
613
619
} )
620
+
614
621
it ( 'only sets forced to run if suite was going to be skipped by ITR' , ( done ) => {
615
622
receiver . setSettings ( {
616
623
itr_enabled : true ,
@@ -673,6 +680,7 @@ versions.forEach(version => {
673
680
} ) . catch ( done )
674
681
} )
675
682
} )
683
+
676
684
it ( 'sets _dd.ci.itr.tests_skipped to false if the received suite is not skipped' , ( done ) => {
677
685
receiver . setSuitesToSkip ( [ {
678
686
type : 'suite' ,
@@ -709,6 +717,7 @@ versions.forEach(version => {
709
717
} ) . catch ( done )
710
718
} )
711
719
} )
720
+
712
721
if ( ! isAgentless ) {
713
722
context ( 'if the agent is not event platform proxy compatible' , ( ) => {
714
723
it ( 'does not do any intelligent test runner request' , ( done ) => {
@@ -757,6 +766,7 @@ versions.forEach(version => {
757
766
} )
758
767
} )
759
768
}
769
+
760
770
it ( 'reports itr_correlation_id in test suites' , ( done ) => {
761
771
const itrCorrelationId = '4321'
762
772
receiver . setItrCorrelationId ( itrCorrelationId )
@@ -783,6 +793,45 @@ versions.forEach(version => {
783
793
} ) . catch ( done )
784
794
} )
785
795
} )
796
+
797
+ it ( 'reports code coverage relative to the repository root, not working directory' , ( done ) => {
798
+ receiver . setSettings ( {
799
+ itr_enabled : true ,
800
+ code_coverage : true ,
801
+ tests_skipping : false
802
+ } )
803
+
804
+ const codeCoveragesPromise = receiver
805
+ . gatherPayloadsMaxTimeout ( ( { url } ) => url . endsWith ( '/api/v2/citestcov' ) , ( payloads ) => {
806
+ const coveredFiles = payloads
807
+ . flatMap ( ( { payload } ) => payload )
808
+ . flatMap ( ( { content : { coverages } } ) => coverages )
809
+ . flatMap ( ( { files } ) => files )
810
+ . map ( ( { filename } ) => filename )
811
+
812
+ assert . includeMembers ( coveredFiles , [
813
+ 'ci-visibility/subproject/features/support/steps.js' ,
814
+ 'ci-visibility/subproject/features/greetings.feature'
815
+ ] )
816
+ } )
817
+
818
+ childProcess = exec (
819
+ '../../node_modules/nyc/bin/nyc.js node ../../node_modules/.bin/cucumber-js features/*.feature' ,
820
+ {
821
+ cwd : `${ cwd } /ci-visibility/subproject` ,
822
+ env : {
823
+ ...getCiVisAgentlessConfig ( receiver . port )
824
+ } ,
825
+ stdio : 'inherit'
826
+ }
827
+ )
828
+
829
+ childProcess . on ( 'exit' , ( ) => {
830
+ codeCoveragesPromise . then ( ( ) => {
831
+ done ( )
832
+ } ) . catch ( done )
833
+ } )
834
+ } )
786
835
} )
787
836
788
837
context ( 'early flake detection' , ( ) => {
0 commit comments