@@ -578,6 +578,110 @@ test("file coverage information enabled when env var enables it on PRs", async (
578578 ) ;
579579} ) ;
580580
581+ test ( "file coverage information disabled when env var disables it on PRs" , async ( t ) => {
582+ sinon . stub ( actionsUtil , "isAnalyzingPullRequest" ) . returns ( true ) ;
583+ process . env [ EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ] = "false" ;
584+ t . teardown ( ( ) => {
585+ delete process . env [ EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ] ;
586+ } ) ;
587+
588+ const messages : LoggedMessage [ ] = [ ] ;
589+ const logger = getRecordingLogger ( messages ) ;
590+
591+ t . false (
592+ await getFileCoverageInformationEnabled (
593+ false , // debugMode
594+ parseRepositoryNwo ( "other-org/some-repo" ) ,
595+ createFeatures ( [ ] ) ,
596+ { } ,
597+ logger ,
598+ ) ,
599+ ) ;
600+
601+ t . true (
602+ messages . some (
603+ ( m ) =>
604+ m . type === "info" &&
605+ typeof m . message === "string" &&
606+ m . message . includes ( EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ) &&
607+ m . message . includes ( "disabled" ) ,
608+ ) ,
609+ ) ;
610+ } ) ;
611+
612+ test ( "file coverage information disabled when repository property disables it on PRs" , async ( t ) => {
613+ sinon . stub ( actionsUtil , "isAnalyzingPullRequest" ) . returns ( true ) ;
614+
615+ const messages : LoggedMessage [ ] = [ ] ;
616+ const logger = getRecordingLogger ( messages ) ;
617+
618+ t . false (
619+ await getFileCoverageInformationEnabled (
620+ false , // debugMode
621+ parseRepositoryNwo ( "other-org/some-repo" ) ,
622+ createFeatures ( [ ] ) ,
623+ {
624+ [ RepositoryPropertyName . ENABLE_FILE_COVERAGE_ON_PRS ] : false ,
625+ } ,
626+ logger ,
627+ ) ,
628+ ) ;
629+
630+ t . true (
631+ messages . some (
632+ ( m ) =>
633+ m . type === "info" &&
634+ typeof m . message === "string" &&
635+ m . message . includes (
636+ RepositoryPropertyName . ENABLE_FILE_COVERAGE_ON_PRS ,
637+ ) &&
638+ m . message . includes ( "disabled" ) ,
639+ ) ,
640+ ) ;
641+ } ) ;
642+
643+ test ( "file coverage env var 'false' takes precedence over repository property 'true'" , async ( t ) => {
644+ sinon . stub ( actionsUtil , "isAnalyzingPullRequest" ) . returns ( true ) ;
645+ process . env [ EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ] = "false" ;
646+ t . teardown ( ( ) => {
647+ delete process . env [ EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ] ;
648+ } ) ;
649+
650+ const messages : LoggedMessage [ ] = [ ] ;
651+ const logger = getRecordingLogger ( messages ) ;
652+
653+ t . false (
654+ await getFileCoverageInformationEnabled (
655+ false , // debugMode
656+ parseRepositoryNwo ( "github/codeql-action" ) ,
657+ createFeatures ( [ Feature . SkipFileCoverageOnPrs ] ) ,
658+ {
659+ [ RepositoryPropertyName . ENABLE_FILE_COVERAGE_ON_PRS ] : true ,
660+ } ,
661+ logger ,
662+ ) ,
663+ ) ;
664+
665+ // Should mention the env var, not the repo property
666+ t . true (
667+ messages . some (
668+ ( m ) =>
669+ m . type === "info" &&
670+ typeof m . message === "string" &&
671+ m . message . includes ( EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ) &&
672+ m . message . includes ( "disabled" ) ,
673+ ) ,
674+ ) ;
675+ t . false (
676+ messages . some (
677+ ( m ) =>
678+ m . type === "info" &&
679+ typeof m . message === "string" &&
680+ m . message . includes ( RepositoryPropertyName . ENABLE_FILE_COVERAGE_ON_PRS ) ,
681+ ) ,
682+ ) ;
683+ } ) ;
684+
581685test ( "file coverage env var takes precedence over repository property" , async ( t ) => {
582686 sinon . stub ( actionsUtil , "isAnalyzingPullRequest" ) . returns ( true ) ;
583687 process . env [ EnvVar . ENABLE_FILE_COVERAGE_ON_PRS ] = "true" ;
0 commit comments