Files
karma/alertmanager/remote_test.go
Łukasz Mierzwa b47788d9ce Move joinURL to the transport package
Move it and make it public so it can be reused outside of alertmanager package
2017-04-06 19:09:16 -07:00

44 lines
1.1 KiB
Go

package alertmanager
import (
"io/ioutil"
"testing"
"time"
log "github.com/Sirupsen/logrus"
httpmock "gopkg.in/jarcoal/httpmock.v1"
)
type mockJSONResponse struct {
status string
integer int
yes bool
no bool
}
func TestGetJSONFromURL(t *testing.T) {
log.SetOutput(ioutil.Discard) // disable logging to console
httpmock.Activate()
defer httpmock.DeactivateAndReset()
mockJSON := `{
"response": "success",
"integer": 123,
"yes": true,
"no": false
}`
httpmock.RegisterResponder("GET", "http://localhost/", httpmock.NewStringResponder(200, mockJSON))
response := mockJSONResponse{}
err := getJSONFromURL("http://localhost/", time.Second, &response)
if err != nil {
t.Errorf("getJSONFromURL() failed: %s", err.Error())
}
httpmock.RegisterResponder("GET", "http://localhost/404", httpmock.NewStringResponder(404, "Not found"))
response = mockJSONResponse{}
err = getJSONFromURL("http://localhost/404", time.Second, &response)
if err == nil {
t.Errorf("getJSONFromURL() on invalid url didn't return 404, response: %v", response)
}
}