Files
query-orchestration/test/queryAPI/queryservice_test.go
T

88 lines
2.5 KiB
Go
Raw Normal View History

package endtoend_test
import (
"context"
2025-03-05 12:05:46 +00:00
"regexp"
"testing"
"queryorchestration/internal/test"
queryapi "queryorchestration/pkg/queryAPI"
2025-03-19 11:54:14 +00:00
"github.com/stretchr/testify/require"
"github.com/oapi-codegen/runtime/types"
"github.com/stretchr/testify/assert"
)
func TestQueryAPI(t *testing.T) {
ctx := context.Background()
cfg := &Config{}
test.SetCfgProvider(t, cfg)
deps, clean := test.CreateFullDependencies(t, ctx, cfg)
defer clean()
c, cleanup := test.CreateAPINetwork(t, ctx, cfg, &test.ServiceNetworkConfig{
Network: deps.Network,
API: test.QueryAPI,
})
defer cleanup()
client, err := queryapi.NewClientWithResponses(c.URI)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
idRes, err := client.CreateQueryWithResponse(ctx, queryapi.QueryCreate{
Type: queryapi.CONTEXTFULL,
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-15 19:45:51 +00:00
assert.NotNil(t, idRes)
assert.NotNil(t, idRes.JSON201)
2025-01-20 13:31:48 +00:00
contextID := idRes.JSON201.Id
assert.NotEmpty(t, contextID)
jcfg := "{}"
idRes, err = client.CreateQueryWithResponse(ctx, queryapi.QueryCreate{
Type: queryapi.JSONEXTRACTOR,
Config: &jcfg,
2025-01-20 13:31:48 +00:00
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
assert.NotNil(t, idRes)
assert.NotNil(t, idRes.JSON201)
2025-01-20 13:31:48 +00:00
jsonID := idRes.JSON201.Id
2025-01-21 18:24:14 +00:00
queryRes, err := client.GetQueryWithResponse(ctx, jsonID)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-20 13:31:48 +00:00
assert.Equal(t, jsonID, queryRes.JSON200.Id)
assert.Equal(t, queryapi.JSONEXTRACTOR, queryRes.JSON200.Type)
2025-01-15 19:45:51 +00:00
assert.Equal(t, int32(1), queryRes.JSON200.ActiveVersion)
assert.Equal(t, int32(1), queryRes.JSON200.LatestVersion)
assert.Equal(t, jcfg, *queryRes.JSON200.Config)
2025-01-15 19:45:51 +00:00
assert.Nil(t, queryRes.JSON200.RequiredQueries)
queriesRes, err := client.ListQueriesWithResponse(ctx)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-20 13:31:48 +00:00
assert.Len(t, queriesRes.JSON200.Queries, 2)
2025-01-15 19:45:51 +00:00
2025-01-20 13:31:48 +00:00
aV := int32(2)
res, err := client.UpdateQueryWithResponse(ctx, jsonID, queryapi.QueryUpdate{
2025-01-20 13:31:48 +00:00
ActiveVersion: &aV,
RequiredQueries: &[]types.UUID{
2025-01-20 13:31:48 +00:00
contextID,
},
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
assert.NotNil(t, res)
test.AssertMessageBody(t, ctx, cfg, deps.QueueURLs[test.QueryVersionSyncRunnerName], regexp.MustCompile(`{"id":".+"}`))
2025-01-21 18:24:14 +00:00
queryRes, err = client.GetQueryWithResponse(ctx, jsonID)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-20 13:31:48 +00:00
assert.Equal(t, jsonID, queryRes.JSON200.Id)
assert.Equal(t, queryapi.JSONEXTRACTOR, queryRes.JSON200.Type)
2025-01-20 13:31:48 +00:00
assert.Equal(t, int32(2), queryRes.JSON200.ActiveVersion)
assert.Equal(t, int32(2), queryRes.JSON200.LatestVersion)
assert.Equal(t, jcfg, *queryRes.JSON200.Config)
assert.ElementsMatch(t, []types.UUID{contextID}, *queryRes.JSON200.RequiredQueries)
}