2025-02-03 17:30:50 +00:00
|
|
|
package test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
2025-03-05 12:05:46 +00:00
|
|
|
"testing"
|
|
|
|
|
|
2025-03-10 11:03:00 +00:00
|
|
|
clientsyncrunner "queryorchestration/api/clientSyncRunner"
|
2025-02-07 14:15:06 +00:00
|
|
|
doccleanrunner "queryorchestration/api/docCleanRunner"
|
2025-02-03 17:30:50 +00:00
|
|
|
docinitrunner "queryorchestration/api/docInitRunner"
|
2025-02-12 19:00:25 +00:00
|
|
|
docsyncrunner "queryorchestration/api/docSyncRunner"
|
2025-02-07 14:15:06 +00:00
|
|
|
doctextrunner "queryorchestration/api/docTextRunner"
|
2025-02-03 17:30:50 +00:00
|
|
|
queryrunner "queryorchestration/api/queryRunner"
|
2025-02-13 00:23:13 +00:00
|
|
|
querysyncrunner "queryorchestration/api/querySyncRunner"
|
2025-02-14 10:56:24 +00:00
|
|
|
queryversionsyncrunner "queryorchestration/api/queryVersionSyncRunner"
|
2025-02-03 17:30:50 +00:00
|
|
|
|
|
|
|
|
"queryorchestration/internal/serviceconfig"
|
|
|
|
|
|
|
|
|
|
"github.com/testcontainers/testcontainers-go"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Runner = string
|
|
|
|
|
|
|
|
|
|
const (
|
2025-02-14 10:56:24 +00:00
|
|
|
DocInitRunner = docinitrunner.Name
|
|
|
|
|
DocSyncRunner = docsyncrunner.Name
|
|
|
|
|
DocCleanRunner = doccleanrunner.Name
|
|
|
|
|
DocTextRunner = doctextrunner.Name
|
|
|
|
|
QuerySyncRunner = querysyncrunner.Name
|
|
|
|
|
QueryRunner = queryrunner.Name
|
2025-03-10 11:03:00 +00:00
|
|
|
ClientSyncRunner = clientsyncrunner.Name
|
2025-02-14 10:56:24 +00:00
|
|
|
QueryVersionSyncRunner = queryversionsyncrunner.Name
|
2025-02-03 17:30:50 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type RunnerConfig struct {
|
|
|
|
|
Name Runner
|
|
|
|
|
QueueURL string
|
2025-02-05 12:52:41 +00:00
|
|
|
Cfg serviceconfig.ConfigProvider
|
2025-02-03 17:30:50 +00:00
|
|
|
Network *testcontainers.DockerNetwork
|
|
|
|
|
Env map[string]string
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-14 10:56:24 +00:00
|
|
|
func CreateRunner(t testing.TB, ctx context.Context, config *RunnerConfig) (*Container, func()) {
|
2025-02-03 17:30:50 +00:00
|
|
|
if config.Env == nil {
|
|
|
|
|
config.Env = map[string]string{}
|
|
|
|
|
}
|
|
|
|
|
config.Env["QUEUE_URL"] = config.QueueURL
|
|
|
|
|
|
|
|
|
|
c, cleanup := createContainer(t, ctx, &containerConfig{
|
|
|
|
|
Network: config.Network,
|
|
|
|
|
Name: config.Name,
|
|
|
|
|
Cfg: config.Cfg,
|
|
|
|
|
Env: config.Env,
|
|
|
|
|
WaitForMsg: "Listening to queue",
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
return &Container{
|
|
|
|
|
Container: c,
|
|
|
|
|
URI: config.QueueURL,
|
|
|
|
|
}, cleanup
|
|
|
|
|
}
|