@@ -3,7 +3,6 @@ package codeowners_test
33import (
44 "fmt"
55 "reflect"
6- "strings"
76 "testing"
87
98 "github.com/fmenezes/codeowners"
@@ -60,7 +59,7 @@ func TestSeverityLevelLabels(t *testing.T) {
6059}
6160
6261func TestSimpleCheck (t * testing.T ) {
63- input := `filepattern @owner`
62+ input := "./test/data/pass"
6463 want := []codeowners.CheckResult {
6564 {
6665 LineNo : 1 ,
@@ -71,7 +70,7 @@ func TestSimpleCheck(t *testing.T) {
7170 }
7271
7372 codeowners .RegisterChecker (dummyCheckerName , dummyChecker {})
74- got , err := codeowners .Check (strings . NewReader ( input ) , dummyCheckerName )
73+ got , err := codeowners .Check (input , dummyCheckerName )
7574 if err != nil {
7675 t .Errorf ("Input %s, Error %v" , input , err )
7776 }
@@ -80,15 +79,73 @@ func TestSimpleCheck(t *testing.T) {
8079 }
8180}
8281
83- func ExampleCheck () {
84- contents := strings .NewReader (`filepattern` )
85- checks , err := codeowners .Check (contents , "NoOwner" )
82+ func TestNoProblemsFound (t * testing.T ) {
83+ input := "./test/data/pass"
84+ got , err := codeowners .Check (input )
85+ if err != nil {
86+ t .Errorf ("Input %s, Error %v" , input , err )
87+ }
88+ if got != nil {
89+ t .Errorf ("Input %s, Want %v, Got %v" , input , nil , got )
90+ }
91+ }
92+
93+ func TestCheckerNotFound (t * testing.T ) {
94+ input := "./test/data/pass"
95+ _ , err := codeowners .Check (input , "NonExistentChecker" )
96+ if err == nil {
97+ t .Error ("Should have errored" )
98+ }
99+ }
100+
101+ func TestNoCodeownersCheck (t * testing.T ) {
102+ input := "./test/data"
103+ want := []codeowners.CheckResult {
104+ {
105+ LineNo : 0 ,
106+ Message : "No CODEOWNERS file found" ,
107+ Severity : codeowners .Error ,
108+ CheckName : "NoCodeowners" ,
109+ },
110+ }
111+
112+ got , err := codeowners .Check (input , dummyCheckerName )
113+ if err != nil {
114+ t .Errorf ("Input %s, Error %v" , input , err )
115+ }
116+ if ! reflect .DeepEqual (want , got ) {
117+ t .Errorf ("Input %s, Want %v, Got %v" , input , want , got )
118+ }
119+ }
120+
121+ func TestMultipleCodeownersCheck (t * testing.T ) {
122+ input := "./test/data/multiple_codeowners"
123+ want := []codeowners.CheckResult {
124+ {
125+ LineNo : 0 ,
126+ Message : "Multiple CODEOWNERS files found (CODEOWNERS, docs/CODEOWNERS)" ,
127+ Severity : codeowners .Warning ,
128+ CheckName : "MultipleCodeowners" ,
129+ },
130+ }
131+
132+ got , err := codeowners .Check (input , dummyCheckerName )
86133 if err != nil {
134+ t .Errorf ("Input %s, Error %v" , input , err )
135+ }
136+ if ! reflect .DeepEqual (want , got ) {
137+ t .Errorf ("Input %s, Want %v, Got %v" , input , want , got )
138+ }
139+ }
87140
141+ func ExampleCheck () {
142+ checks , err := codeowners .Check ("." , codeowners .AvailableCheckers ()... )
143+ if err != nil {
144+ panic (err )
88145 }
89146 for _ , check := range checks {
90147 fmt .Printf ("%d ::%s:: %s [%s]\n " , check .LineNo , check .Severity , check .Message , check .CheckName )
91148 }
92149 //Output:
93- //1 ::Error:: No owners specified [NoOwner ]
150+ //0 ::Error:: No CODEOWNERS file found [NoCodeowners ]
94151}
0 commit comments