@@ -30,6 +30,7 @@ func TestReadConfig(t *testing.T) {
3030 tests := []struct {
3131 name string
3232 fileContents * config
33+ envCI string
3334 envToken string
3435 envFooHeader string
3536 envHeaders string
@@ -283,6 +284,24 @@ func TestReadConfig(t *testing.T) {
283284 envHeaders : "Authorization:Bearer" ,
284285 wantErr : errConfigAuthorizationConflict .Error (),
285286 },
287+ {
288+ name : "CI requires access token" ,
289+ envCI : "1" ,
290+ wantErr : errCIAccessTokenRequired .Error (),
291+ },
292+ {
293+ name : "CI allows access token from config file" ,
294+ envCI : "1" ,
295+ fileContents : & config {
296+ Endpoint : "https://example.com/" ,
297+ AccessToken : "deadbeef" ,
298+ },
299+ want : & config {
300+ Endpoint : "https://example.com" ,
301+ AccessToken : "deadbeef" ,
302+ AdditionalHeaders : map [string ]string {},
303+ },
304+ },
286305 }
287306
288307 for _ , test := range tests {
@@ -297,6 +316,7 @@ func TestReadConfig(t *testing.T) {
297316 setEnv ("SRC_ACCESS_TOKEN" , test .envToken )
298317 setEnv ("SRC_ENDPOINT" , test .envEndpoint )
299318 setEnv ("SRC_PROXY" , test .envProxy )
319+ setEnv ("CI" , test .envCI )
300320
301321 tmpDir := t .TempDir ()
302322 testHomeDir = tmpDir
@@ -345,3 +365,17 @@ func TestReadConfig(t *testing.T) {
345365 })
346366 }
347367}
368+
369+ func TestConfigAuthMode (t * testing.T ) {
370+ t .Run ("oauth when access token is empty" , func (t * testing.T ) {
371+ if got := (& config {}).AuthMode (); got != AuthModeOAuth {
372+ t .Fatalf ("AuthMode() = %v, want %v" , got , AuthModeOAuth )
373+ }
374+ })
375+
376+ t .Run ("access token when configured" , func (t * testing.T ) {
377+ if got := (& config {AccessToken : "token" }).AuthMode (); got != AuthModeAccessToken {
378+ t .Fatalf ("AuthMode() = %v, want %v" , got , AuthModeAccessToken )
379+ }
380+ })
381+ }
0 commit comments