Merged in feature/testquery (pull request #39)

Test Query

* depstextandclean

* startedcleaningresult

* resulttidyup

* roundone

* cleaning

* unsyncedquery

* startedtestsandsimplification

* api

* querytests

* resultprocessortests

* unittests

* cleanup
This commit is contained in:
Michael McGuinness
2025-01-29 11:52:37 +00:00
parent c36b0cdcf8
commit 0ac5ff9e15
109 changed files with 2804 additions and 2100 deletions
+64 -10
View File
@@ -8,7 +8,12 @@ import (
queryservice "queryorchestration/api/queryService"
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/document"
documentclean "queryorchestration/internal/document/clean"
documenttext "queryorchestration/internal/document/text"
"queryorchestration/internal/job/collector"
"queryorchestration/internal/query"
"queryorchestration/internal/query/result"
"strings"
"testing"
@@ -33,7 +38,7 @@ func TestCreateQuery(t *testing.T) {
}
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{
Query: query.New(db),
Query: query.New(db, &query.Services{}),
})
body := queryservice.QueryCreate{
@@ -75,7 +80,7 @@ func TestListQueries(t *testing.T) {
}
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{
Query: query.New(db),
Query: query.New(db, &query.Services{}),
})
e := echo.New()
@@ -85,7 +90,7 @@ func TestListQueries(t *testing.T) {
id := uuid.New()
pool.ExpectQuery("-- name: ListQueries :many").WithArgs().WillReturnRows(
pool.ExpectQuery("name: ListQueries :many").WithArgs().WillReturnRows(
pgxmock.NewRows([]string{"id", "type", "activeVersion", "latestVersion", "config", "requiredIds"}).
AddRow(database.MustToDBUUID(id), repository.QuerytypeContextFull, int32(1), int32(2), []byte(""), []pgtype.UUID{}),
)
@@ -120,7 +125,7 @@ func TestGetQuery(t *testing.T) {
}
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{
Query: query.New(db),
Query: query.New(db, &query.Services{}),
})
e := echo.New()
@@ -164,7 +169,7 @@ func TestUpdateQuery(t *testing.T) {
}
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{
Query: query.New(db),
Query: query.New(db, &query.Services{}),
})
av := int32(2)
@@ -211,12 +216,38 @@ func TestTestQuery(t *testing.T) {
Pool: pool,
}
docsvc := document.New(db)
col := collector.New(db, &collector.Services{
Clean: documentclean.New(),
Text: documenttext.New(),
})
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{
Query: query.New(db),
Collector: col,
Query: query.New(db, &query.Services{
Document: docsvc,
Collector: col,
Result: result.New(db),
}),
})
coll := collector.Collector{
ID: uuid.New(),
JobID: uuid.New(),
}
doc := document.Document{
ID: uuid.New(),
JobID: coll.JobID,
Hash: "example_hash",
Location: "example_location",
}
params := &query.Test{
QueryID: uuid.New(),
DocumentID: doc.ID,
QueryVersion: int32(3),
}
body := queryservice.QueryTestRequest{
DocumentId: uuid.New(),
DocumentId: params.DocumentID,
QueryVersion: params.QueryVersion,
}
bodyBytes, err := json.Marshal(body)
assert.Nil(t, err)
@@ -227,9 +258,32 @@ func TestTestQuery(t *testing.T) {
rec := httptest.NewRecorder()
ctx := e.NewContext(req, rec)
id := uuid.New()
reqID := database.MustToDBUUID(uuid.New())
pool.ExpectQuery("name: GetDocument :one").WithArgs(database.MustToDBUUID(doc.ID)).
WillReturnRows(
pgxmock.NewRows([]string{"id", "jobId", "hash", "location"}).
AddRow(database.MustToDBUUID(doc.ID), database.MustToDBUUID(doc.JobID), doc.Hash, doc.Location),
)
pool.ExpectQuery("name: GetCollectorByJobID :one").WithArgs(database.MustToDBUUID(doc.JobID)).
WillReturnRows(
pgxmock.NewRows([]string{"id", "jobId", "minCleanVersion", "minTextVersion", "activeVersion", "latestVersion", "fields"}).
AddRow(database.MustToDBUUID(coll.ID), database.MustToDBUUID(doc.JobID), coll.MinCleanVersion, coll.MinTextVersion, int32(1), int32(2), []byte("")),
)
pool.ExpectQuery("name: GetQueryWithVersion :one").WithArgs(database.MustToDBUUID(params.QueryID), params.QueryVersion).WillReturnRows(
pgxmock.NewRows([]string{"id", "type", "activeVersion", "latestVersion", "config", "requiredIds"}).
AddRow(database.MustToDBUUID(params.QueryID), repository.QuerytypeJsonExtractor, int32(1), params.QueryVersion+1, []byte("{\"path\":\"oldkey\"}"), []pgtype.UUID{reqID}),
)
pool.ExpectQuery("name: ListQueryRequirementValues :many").WithArgs(database.MustToDBUUID(params.QueryID), params.QueryVersion, database.MustToDBUUID(params.DocumentID), coll.MinCleanVersion, coll.MinTextVersion).
WillReturnRows(
pgxmock.NewRows([]string{"queryId", "value", "type"}).
AddRow(reqID, "{\"mykey\":\"example_value\",\"oldkey\":\"old_value\"}", repository.QuerytypeContextFull),
)
pool.ExpectQuery("name: GetQueryConfig :one").WithArgs(database.MustToDBUUID(params.QueryID), params.QueryVersion).WillReturnRows(
pgxmock.NewRows([]string{"id", "config"}).
AddRow(pgtype.UUID{}, []byte("{\"path\":\"oldkey\"}")),
)
err = cons.TestQuery(ctx, id)
err = cons.TestQuery(ctx, params.QueryID)
assert.Nil(t, err)
assert.Equal(t, http.StatusOK, rec.Code)
@@ -237,6 +291,6 @@ func TestTestQuery(t *testing.T) {
err = json.Unmarshal(rec.Body.Bytes(), &res)
assert.Nil(t, err)
assert.EqualExportedValues(t, queryservice.QueryTestResponse{
Value: "",
Value: "old_value",
}, res)
}