cbd1d5f067
Add tests for queuing * startingtest * queuerunnertest * addedtestfuncs * testtests * passintegration * unittests
98 lines
2.6 KiB
Go
98 lines
2.6 KiB
Go
package repository_test
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"queryorchestration/internal/database"
|
|
"queryorchestration/internal/database/repository"
|
|
"queryorchestration/internal/test"
|
|
"testing"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestQueries(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)
|
|
|
|
contextQueryID, err := queries.CreateQuery(ctx, repository.Querytype(repository.QuerytypeContextFull))
|
|
assert.Nil(t, err)
|
|
assert.True(t, contextQueryID.Valid)
|
|
|
|
jsonQueryID, err := queries.CreateQuery(ctx, repository.Querytype(repository.QuerytypeJsonExtractor))
|
|
assert.Nil(t, err)
|
|
assert.True(t, jsonQueryID.Valid)
|
|
|
|
jsonConfig := []byte("{\"path\": \"example_path\"}")
|
|
|
|
err = queries.CreateRequiredQuery(ctx, repository.CreateRequiredQueryParams{
|
|
Queryid: jsonQueryID,
|
|
Requiredqueryid: contextQueryID,
|
|
Addedversion: 1,
|
|
})
|
|
assert.Nil(t, err)
|
|
|
|
err = queries.CreateQueryConfig(ctx, repository.CreateQueryConfigParams{
|
|
Queryid: jsonQueryID,
|
|
Config: jsonConfig,
|
|
Addedversion: 1,
|
|
})
|
|
assert.Nil(t, err)
|
|
|
|
jsonQuery, err := queries.GetQuery(ctx, jsonQueryID)
|
|
assert.Nil(t, err)
|
|
assert.EqualExportedValues(t, repository.Fullactivequery{
|
|
ID: jsonQueryID,
|
|
Type: repository.QuerytypeJsonExtractor,
|
|
Activeversion: 1,
|
|
Latestversion: 1,
|
|
Config: jsonConfig,
|
|
Requiredids: []pgtype.UUID{contextQueryID},
|
|
}, jsonQuery)
|
|
|
|
jsonQueryConfig, err := queries.GetQueryConfig(ctx, repository.GetQueryConfigParams{
|
|
Queryid: jsonQueryID,
|
|
Addedversion: jsonQuery.Activeversion,
|
|
})
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, jsonConfig, jsonQueryConfig.Config)
|
|
|
|
qs, err := queries.ListQueries(ctx)
|
|
assert.Nil(t, err)
|
|
assert.Len(t, qs, 2)
|
|
log.Print(qs)
|
|
assert.ElementsMatch(t, []repository.Fullactivequery{
|
|
{ID: jsonQueryID,
|
|
Type: repository.QuerytypeJsonExtractor,
|
|
Activeversion: 1,
|
|
Latestversion: 1,
|
|
Config: jsonConfig,
|
|
Requiredids: []pgtype.UUID{contextQueryID}},
|
|
{ID: contextQueryID,
|
|
Type: repository.QuerytypeContextFull,
|
|
Activeversion: 1,
|
|
Latestversion: 1,
|
|
Config: nil,
|
|
Requiredids: []pgtype.UUID{{}}},
|
|
}, qs)
|
|
|
|
isDeprecated, err := queries.IsQueryDeprecated(ctx, jsonQueryID)
|
|
assert.Nil(t, err)
|
|
assert.False(t, isDeprecated)
|
|
|
|
err = queries.DeprecateQuery(ctx, jsonQueryID)
|
|
assert.Nil(t, err)
|
|
|
|
isDeprecated, err = queries.IsQueryDeprecated(ctx, jsonQueryID)
|
|
assert.Nil(t, err)
|
|
assert.True(t, isDeprecated)
|
|
}
|