Parameterize GitHub OAuth2 scopes.

If no scope provided, default will be used:
scope=repo,repo:status,user:email.
This commit is contained in:
alex
2016-03-10 19:30:14 +00:00
parent 671461dc00
commit c2f3cf06ad
3 changed files with 39 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ import (
"net/http"
"testing"
"github.com/drone/drone/shared/envconfig"
"github.com/franela/goblin"
)
@@ -45,3 +46,33 @@ func TestHook(t *testing.T) {
})
})
}
func TestLoad(t *testing.T) {
env := envconfig.Env{
"REMOTE_CONFIG": "https://github.com?client_id=client&client_secret=secret&scope=scope1,scope2",
}
g := Load(env)
if g.URL != "https://github.com" {
t.Errorf("g.URL = %q; want https://github.com")
}
if g.Client != "client" {
t.Errorf("g.Client = %q; want client", g.Client)
}
if g.Secret != "secret" {
t.Errorf("g.Secret = %q; want secret", g.Secret)
}
if g.Scope != "scope1,scope2" {
t.Errorf("g.Scope = %q; want scope1,scope2", g.Scope)
}
if g.API != DefaultAPI {
t.Errorf("g.API = %q; want %q", g.API, DefaultAPI)
}
if g.MergeRef != DefaultMergeRef {
t.Errorf("g.MergeRef = %q; want %q", g.MergeRef, DefaultMergeRef)
}
g = Load(envconfig.Env{})
if g.Scope != DefaultScope {
t.Errorf("g.Scope = %q; want %q", g.Scope, DefaultScope)
}
}