package endtoend import ( "context" "net/http" "testing" "queryorchestration/internal/test" queryapi "queryorchestration/pkg/queryAPI" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestClient(t *testing.T) { ctx := context.Background() c, cleanup := test.CreateAPINetwork(t, ctx, &test.ServiceNetworkConfig{ API: test.QueryAPI, }) defer cleanup() client, err := queryapi.NewClientWithResponses(c.URI) require.NoError(t, err) clientErrRes, err := client.GetClientWithResponse(ctx, "INVALID") require.NoError(t, err) assert.Equal(t, http.StatusBadRequest, clientErrRes.StatusCode()) assert.Equal(t, "Unable to get client: no rows in result set", clientErrRes.JSON400.Message) idRes, err := client.CreateClientWithResponse(ctx, queryapi.ClientCreate{ Name: "example_name", Id: "EXA", }) require.NoError(t, err) require.Equal(t, http.StatusCreated, idRes.StatusCode()) assert.NotNil(t, idRes.JSON201) assert.Equal(t, "EXA", idRes.JSON201.Id) id := idRes.JSON201.Id clientRes, err := client.GetClientWithResponse(ctx, id) require.NoError(t, err) require.Equal(t, http.StatusOK, clientRes.StatusCode()) assert.Equal(t, id, clientRes.JSON200.Id) assert.Equal(t, "example_name", clientRes.JSON200.Name) assert.False(t, clientRes.JSON200.CanSync) updateName := "update_name" updateCanSync := true updateRes, err := client.UpdateClientWithResponse(ctx, id, queryapi.ClientUpdate{ Name: &updateName, CanSync: &updateCanSync, }) require.NoError(t, err) assert.NotNil(t, updateRes) clientRes, err = client.GetClientWithResponse(ctx, id) require.NoError(t, err) assert.Equal(t, id, clientRes.JSON200.Id) assert.Equal(t, updateName, clientRes.JSON200.Name) assert.True(t, clientRes.JSON200.CanSync) }