49 lines
966 B
Go
49 lines
966 B
Go
package internal
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/influxdata/influxdb/v2"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestValidateReplication(t *testing.T) {
|
|
tests := []struct {
|
|
status int
|
|
valid bool
|
|
}{
|
|
{http.StatusNoContent, true},
|
|
{http.StatusOK, false},
|
|
{http.StatusBadRequest, false},
|
|
{http.StatusTeapot, false},
|
|
{http.StatusInternalServerError, false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(fmt.Sprintf("status code %d", tt.status), func(t *testing.T) {
|
|
svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
w.WriteHeader(tt.status)
|
|
}))
|
|
defer svr.Close()
|
|
|
|
validator := noopWriteValidator{}
|
|
|
|
config := &influxdb.ReplicationHTTPConfig{
|
|
RemoteURL: svr.URL,
|
|
}
|
|
|
|
err := validator.ValidateReplication(context.Background(), config)
|
|
if tt.valid {
|
|
require.NoError(t, err)
|
|
return
|
|
}
|
|
|
|
require.Error(t, err)
|
|
})
|
|
}
|
|
}
|