Merged in feature/docresult (pull request #105)
Document Result Endpoint * testing * cleantesting * progress * query * lint * readme * dockerclient * api * passtest * tests * test
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
queryapi "queryorchestration/api/queryAPI"
|
||||
"queryorchestration/internal/serviceconfig"
|
||||
|
||||
"github.com/docker/go-connections/nat"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/testcontainers/testcontainers-go"
|
||||
)
|
||||
|
||||
type APIName = string
|
||||
|
||||
const (
|
||||
QueryAPIName APIName = queryapi.Name
|
||||
)
|
||||
|
||||
type API struct {
|
||||
Name APIName
|
||||
DownstreamQueues []RunnerName
|
||||
}
|
||||
|
||||
type APIConfig struct {
|
||||
API API
|
||||
Cfg serviceconfig.ConfigProvider
|
||||
Network *testcontainers.DockerNetwork
|
||||
}
|
||||
|
||||
func CreateAPI(t testing.TB, ctx context.Context, config *APIConfig) (*Container, func()) {
|
||||
port, err := nat.NewPort("tcp", "8080")
|
||||
require.NoError(t, err)
|
||||
|
||||
container, cleanup := createContainer(t, ctx, &containerConfig{
|
||||
Cfg: config.Cfg,
|
||||
Name: config.API.Name,
|
||||
DownstreamQueues: config.API.DownstreamQueues,
|
||||
Network: config.Network,
|
||||
WaitForMsg: "⇨ http server started on [::]:8080",
|
||||
})
|
||||
|
||||
host, err := container.Host(ctx)
|
||||
require.NoError(t, err)
|
||||
mappedPort, err := container.MappedPort(ctx, port)
|
||||
require.NoError(t, err)
|
||||
|
||||
address := fmt.Sprintf("http://%s:%s", host, mappedPort.Port())
|
||||
|
||||
return &Container{
|
||||
URI: address,
|
||||
Container: container,
|
||||
}, cleanup
|
||||
}
|
||||
|
||||
var QueryAPI = API{
|
||||
Name: QueryAPIName,
|
||||
DownstreamQueues: []RunnerName{
|
||||
ClientSyncRunnerName,
|
||||
QueryVersionSyncRunnerName,
|
||||
},
|
||||
}
|
||||
|
||||
var apis = []API{
|
||||
QueryAPI,
|
||||
}
|
||||
Reference in New Issue
Block a user