@@ -658,18 +658,25 @@ func TestGetFinalApplicabilityStatus(t *testing.T) {
658658 testCases := []struct {
659659 name string
660660 input []jasutils.ApplicabilityStatus
661+ hasRuns bool
661662 expectedOutput jasutils.ApplicabilityStatus
662663 }{
663664 {
664665 name : "applicable wins all statuses" ,
665- input : []jasutils.ApplicabilityStatus {jasutils .ApplicabilityUndetermined , jasutils .Applicable , jasutils .NotCovered , jasutils .NotApplicable },
666+ hasRuns : true ,
667+ input : []jasutils.ApplicabilityStatus {jasutils .ApplicabilityUndetermined , jasutils .NotScanned , jasutils .Applicable , jasutils .NotCovered , jasutils .NotApplicable },
666668 expectedOutput : jasutils .Applicable ,
667669 },
668670 {
669671 name : "undetermined wins not covered" ,
670672 input : []jasutils.ApplicabilityStatus {jasutils .NotCovered , jasutils .ApplicabilityUndetermined , jasutils .NotCovered , jasutils .NotApplicable },
671673 expectedOutput : jasutils .ApplicabilityUndetermined ,
672674 },
675+ {
676+ name : "missing context wins not covered" ,
677+ input : []jasutils.ApplicabilityStatus {jasutils .NotCovered , jasutils .MissingContext , jasutils .NotCovered , jasutils .NotApplicable },
678+ expectedOutput : jasutils .MissingContext ,
679+ },
673680 {
674681 name : "not covered wins not applicable" ,
675682 input : []jasutils.ApplicabilityStatus {jasutils .NotApplicable , jasutils .NotCovered , jasutils .NotApplicable },
@@ -681,14 +688,26 @@ func TestGetFinalApplicabilityStatus(t *testing.T) {
681688 expectedOutput : jasutils .NotApplicable ,
682689 },
683690 {
684- name : "no statuses" ,
691+ name : "no statuses - no runs " ,
685692 input : []jasutils.ApplicabilityStatus {},
686693 expectedOutput : jasutils .NotScanned ,
687694 },
695+ {
696+ name : "no statuses - has runs" ,
697+ input : []jasutils.ApplicabilityStatus {},
698+ hasRuns : true ,
699+ expectedOutput : jasutils .NotCovered ,
700+ },
701+ {
702+ name : "ignore not scanned statuses" ,
703+ input : []jasutils.ApplicabilityStatus {jasutils .NotScanned , jasutils .NotScanned },
704+ hasRuns : true ,
705+ expectedOutput : jasutils .NotCovered ,
706+ },
688707 }
689708 for _ , tc := range testCases {
690709 t .Run (tc .name , func (t * testing.T ) {
691- assert .Equal (t , tc .expectedOutput , GetFinalApplicabilityStatus (tc .input ))
710+ assert .Equal (t , tc .expectedOutput , GetFinalApplicabilityStatus (tc .hasRuns , tc . input ))
692711 })
693712 }
694713}
0 commit comments