Files
query-orchestration/internal/database/repository/result_test.go
T
Michael McGuinness cbd1d5f067 Merged in feature/queuetest (pull request #14)
Add tests for queuing

* startingtest

* queuerunnertest

* addedtestfuncs

* testtests

* passintegration

* unittests
2025-01-10 19:17:20 +00:00

75 lines
1.9 KiB
Go

package repository_test
import (
"context"
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/test"
"testing"
"github.com/google/uuid"
"github.com/jackc/pgx/v5/pgtype"
"github.com/stretchr/testify/assert"
)
func TestResults(t *testing.T) {
ctx := context.Background()
db, cleanup := test.CreateDB(t, ctx, &test.CreateDatabaseConfig{
Migrations: &database.MigrationConfig{
BasePath: "../../..",
}})
defer cleanup()
queries := repository.New(db.Pool)
jsonQueryID, err := queries.CreateQuery(ctx, repository.Querytype(repository.QuerytypeJsonExtractor))
assert.Nil(t, err)
documentID := database.MustToDBUUID(uuid.New())
jsonQuery, err := queries.GetQuery(ctx, jsonQueryID)
assert.Nil(t, err)
cleanVersion := int32(1)
textVersion := int32(1)
jsonResultValue := "example_value"
jsonResultID, err := queries.SetResult(ctx, repository.SetResultParams{
Queryid: jsonQueryID,
Documentid: documentID,
Value: jsonResultValue,
Cleanversion: cleanVersion,
Textversion: textVersion,
Queryversion: jsonQuery.Activeversion,
})
assert.Nil(t, err)
assert.True(t, jsonResultID.Valid)
resultsByDoc, err := queries.ListResultsByDocumentID(ctx, repository.ListResultsByDocumentIDParams{
Documentid: documentID,
Cleanversion: cleanVersion,
Textversion: textVersion,
})
assert.Nil(t, err)
assert.Len(t, resultsByDoc, 1)
assert.ElementsMatch(t, []repository.ListResultsByDocumentIDRow{
{
ID: jsonResultID,
Queryid: jsonQueryID,
Queryversion: jsonQuery.Activeversion,
},
}, resultsByDoc)
results, err := queries.ListResultValuesByID(ctx, []pgtype.UUID{jsonResultID})
assert.Nil(t, err)
assert.Len(t, results, 1)
assert.ElementsMatch(t, []repository.ListResultValuesByIDRow{
{
ID: jsonResultID,
Queryid: jsonQueryID,
Value: jsonResultValue,
},
}, results)
}