package test import ( "context" doccleanrunner "queryorchestration/api/docCleanRunner" docinitrunner "queryorchestration/api/docInitRunner" docsyncrunner "queryorchestration/api/docSyncRunner" doctextrunner "queryorchestration/api/docTextRunner" jobsyncrunner "queryorchestration/api/jobSyncRunner" queryrunner "queryorchestration/api/queryRunner" querysyncrunner "queryorchestration/api/querySyncRunner" queryversionsyncrunner "queryorchestration/api/queryVersionSyncRunner" "testing" "queryorchestration/internal/serviceconfig" "github.com/testcontainers/testcontainers-go" ) type Runner = string const ( DocInitRunner = docinitrunner.Name DocSyncRunner = docsyncrunner.Name DocCleanRunner = doccleanrunner.Name DocTextRunner = doctextrunner.Name QuerySyncRunner = querysyncrunner.Name QueryRunner = queryrunner.Name JobSyncRunner = jobsyncrunner.Name QueryVersionSyncRunner = queryversionsyncrunner.Name ) type RunnerConfig struct { Name Runner QueueURL string Cfg serviceconfig.ConfigProvider Network *testcontainers.DockerNetwork Env map[string]string } func CreateRunner(t testing.TB, ctx context.Context, config *RunnerConfig) (*Container, func()) { 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 }