55 lines
1 KiB
Go
55 lines
1 KiB
Go
package context
|
|
|
|
import (
|
|
"errors"
|
|
"reflect"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func eq(t *testing.T, got interface{}, expected interface{}) {
|
|
t.Helper()
|
|
if !reflect.DeepEqual(got, expected) {
|
|
t.Errorf("expected: %v, got: %v", expected, got)
|
|
}
|
|
}
|
|
|
|
func Test_parseConfig(t *testing.T) {
|
|
c := strings.NewReader(`---
|
|
github.com:
|
|
- user: monalisa
|
|
oauth_token: OTOKEN
|
|
protocol: https
|
|
- user: wronguser
|
|
oauth_token: NOTTHIS
|
|
`)
|
|
entry, err := parseConfig(c)
|
|
eq(t, err, nil)
|
|
eq(t, entry.User, "monalisa")
|
|
eq(t, entry.Token, "OTOKEN")
|
|
}
|
|
|
|
func Test_parseConfig_multipleHosts(t *testing.T) {
|
|
c := strings.NewReader(`---
|
|
example.com:
|
|
- user: wronguser
|
|
oauth_token: NOTTHIS
|
|
github.com:
|
|
- user: monalisa
|
|
oauth_token: OTOKEN
|
|
`)
|
|
entry, err := parseConfig(c)
|
|
eq(t, err, nil)
|
|
eq(t, entry.User, "monalisa")
|
|
eq(t, entry.Token, "OTOKEN")
|
|
}
|
|
|
|
func Test_parseConfig_notFound(t *testing.T) {
|
|
c := strings.NewReader(`---
|
|
example.com:
|
|
- user: wronguser
|
|
oauth_token: NOTTHIS
|
|
`)
|
|
_, err := parseConfig(c)
|
|
eq(t, err, errors.New(`could not find config entry for "github.com"`))
|
|
}
|