diff --git a/amplitude/plugins/destination/internal/amplitude_http_client.go b/amplitude/plugins/destination/internal/amplitude_http_client.go index 5f8420a..dd28885 100644 --- a/amplitude/plugins/destination/internal/amplitude_http_client.go +++ b/amplitude/plugins/destination/internal/amplitude_http_client.go @@ -109,6 +109,9 @@ func (c *amplitudeHTTPClient) Send(payload AmplitudePayload) AmplitudeResponse { var amplitudeResponse AmplitudeResponse if json.Valid(body) { _ = json.Unmarshal(body, &litudeResponse) + }else{ + c.logger.Debugf("HTTP response body is not valid JSON: %s", string(body)) + amplitudeResponse.Code = response.StatusCode } amplitudeResponse.Status = response.StatusCode diff --git a/amplitude/plugins/destination/internal/amplitude_http_client_test.go b/amplitude/plugins/destination/internal/amplitude_http_client_test.go index d047be9..7590134 100644 --- a/amplitude/plugins/destination/internal/amplitude_http_client_test.go +++ b/amplitude/plugins/destination/internal/amplitude_http_client_test.go @@ -27,7 +27,7 @@ type AmplitudeHTTPClientSuiteSuite struct { } func (t *AmplitudeHTTPClientSuiteSuite) TestSend_Success() { - server := t.createTestServer(0) + server := t.createTestServer(0, 200, `{"code": 234, "error": "some server error"}`) client := internal.NewAmplitudeHTTPClient( server.URL, @@ -96,7 +96,7 @@ func (t *AmplitudeHTTPClientSuiteSuite) TestSend_Success() { } func (t *AmplitudeHTTPClientSuiteSuite) TestSend_Empty() { - server := t.createTestServer(0) + server := t.createTestServer(0, 200, `{"code": 234, "error": "some server error"}`) client := internal.NewAmplitudeHTTPClient( server.URL, @@ -122,7 +122,7 @@ func (t *AmplitudeHTTPClientSuiteSuite) TestSend_Empty() { func (t *AmplitudeHTTPClientSuiteSuite) TestSend_Timeout() { timeout := time.Millisecond * 100 - server := t.createTestServer(timeout * 2) + server := t.createTestServer(timeout * 2, 200, `{"code": 234, "error": "some server error"}`) client := internal.NewAmplitudeHTTPClient( server.URL, @@ -147,13 +147,67 @@ func (t *AmplitudeHTTPClientSuiteSuite) TestSend_Timeout() { server.Close() } +func (t *AmplitudeHTTPClientSuiteSuite) TestSend_NonJsonResponse() { + server := t.createTestServer(0, 413, ` +