Merge pull request #2187 from nwt/notifications-fix-expvar

notifications: fix expvar for Go 1.7
This commit is contained in:
Derek McGowan 2017-02-17 11:36:21 -08:00 committed by GitHub
commit df5327f76f
2 changed files with 29 additions and 1 deletions

View file

@ -13,7 +13,7 @@ type EndpointConfig struct {
Threshold int
Backoff time.Duration
IgnoredMediaTypes []string
Transport *http.Transport
Transport *http.Transport `json:"-"`
}
// defaults set any zero-valued fields to a reasonable default.

View file

@ -0,0 +1,28 @@
package notifications
import (
"encoding/json"
"expvar"
"testing"
)
func TestMetricsExpvar(t *testing.T) {
endpointsVar := expvar.Get("registry").(*expvar.Map).Get("notifications").(*expvar.Map).Get("endpoints")
var v interface{}
if err := json.Unmarshal([]byte(endpointsVar.String()), &v); err != nil {
t.Fatalf("unexpected error unmarshaling endpoints: %v", err)
}
if v != nil {
t.Fatalf("expected nil, got %#v", v)
}
NewEndpoint("x", "y", EndpointConfig{})
if err := json.Unmarshal([]byte(endpointsVar.String()), &v); err != nil {
t.Fatalf("unexpected error unmarshaling endpoints: %v", err)
}
if slice, ok := v.([]interface{}); !ok || len(slice) != 1 {
t.Logf("expected one-element []interface{}, got %#v", v)
}
}