package client_test import ( "bytes" "net/http" "testing" gock "gopkg.in/h2non/gock.v1" "github.com/BBVA/kapow/internal/client" ) // Test an HTTP OK request func TestSetDataSuccessOnCorrectRequest(t *testing.T) { defer gock.Off() gock.New("http://localhost:8080"). Put("/HANDLER_FOO/response/status/code"). Reply(http.StatusOK) if err := client.SetData( "http://localhost:8080", "HANDLER_FOO", "/response/status/code", bytes.NewReader([]byte("200")), ); err != nil { t.Error("Unexpected error") } if !gock.IsDone() { t.Errorf("No endpoint called") } } // Test that Not Found errors are detected when an invalid handler id is sent func TestSetDataErrIfBadHandlerID(t *testing.T) { defer gock.Off() gock.New("http://localhost:8080"). Put("/HANDLER_BAD/response/status/code"). Reply(http.StatusNotFound) if err := client.SetData( "http://localhost:8080", "HANDLER_BAD", "/response/status/code", bytes.NewReader([]byte("200")), ); err == nil { t.Error("Expected error not present") } else if err.Error() != "Not Found" { t.Errorf(`Error mismatch: expected "Not Found", got %q`, err) } if !gock.IsDone() { t.Errorf("No endpoint called") } }