package integration_test import ( "context" "queryorchestration/internal/test" queryservice "queryorchestration/pkg/queryService" "testing" "github.com/stretchr/testify/assert" ) func TestQueryService(t *testing.T) { ctx := context.Background() address, cleanup := test.CreateAPIWithDependencies(t, ctx, "queryService") defer cleanup() client, err := queryservice.NewClientWithResponses(address) assert.Nil(t, err) idRes, err := client.CreateQueryWithResponse(ctx, queryservice.QueryCreate{ Type: queryservice.CONTEXTFULL, }) assert.Nil(t, err) assert.NotNil(t, idRes) assert.NotNil(t, idRes.JSON201) contextID := idRes.JSON201.Id assert.NotEmpty(t, contextID) idRes, err = client.CreateQueryWithResponse(ctx, queryservice.QueryCreate{ Type: queryservice.JSONEXTRACTOR, }) assert.Nil(t, err) jsonID := idRes.JSON201.Id queryRes, err := client.GetQueryByIdWithResponse(ctx, jsonID) assert.Nil(t, err) assert.Equal(t, jsonID, queryRes.JSON200.Id) assert.Equal(t, queryservice.JSONEXTRACTOR, queryRes.JSON200.Type) assert.Equal(t, int32(1), queryRes.JSON200.ActiveVersion) assert.Equal(t, int32(1), queryRes.JSON200.LatestVersion) assert.Nil(t, queryRes.JSON200.Config) assert.Nil(t, queryRes.JSON200.RequiredQueries) queriesRes, err := client.ListQueriesWithResponse(ctx) assert.Nil(t, err) assert.Len(t, queriesRes.JSON200.Queries, 2) cfg := "{}" aV := int32(2) res, err := client.UpdateQueryWithResponse(ctx, jsonID, queryservice.QueryUpdate{ Config: &cfg, ActiveVersion: &aV, RequiredQueries: &[]string{ contextID, }, }) assert.Nil(t, err) assert.NotNil(t, res) queryRes, err = client.GetQueryByIdWithResponse(ctx, jsonID) assert.Nil(t, err) assert.Equal(t, jsonID, queryRes.JSON200.Id) assert.Equal(t, queryservice.JSONEXTRACTOR, queryRes.JSON200.Type) assert.Equal(t, int32(2), queryRes.JSON200.ActiveVersion) assert.Equal(t, int32(2), queryRes.JSON200.LatestVersion) assert.Nil(t, queryRes.JSON200.Config) assert.ElementsMatch(t, []string{contextID}, *queryRes.JSON200.RequiredQueries) }