Merged in bugfix/toomanythreads (pull request #136)
Too Many Threads * dropthreads * assertstatus * assertstatus
This commit is contained in:
@@ -3,12 +3,15 @@ package test
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
queryapi "queryorchestration/api/queryAPI"
|
||||
"queryorchestration/internal/serviceconfig"
|
||||
|
||||
"github.com/docker/go-connections/nat"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
@@ -64,3 +67,11 @@ var QueryAPI = API{
|
||||
var apis = []API{
|
||||
QueryAPI,
|
||||
}
|
||||
|
||||
func AssertStatus(t testing.TB, statusCode int, response *http.Response) {
|
||||
if !assert.Equal(t, statusCode, response.StatusCode) && response.Body != nil {
|
||||
response, err := io.ReadAll(response.Body)
|
||||
require.NoError(t, err)
|
||||
t.Log("response: ", string(response))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package test_test
|
||||
|
||||
import (
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"queryorchestration/internal/test"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestAssertStatus(t *testing.T) {
|
||||
t.Run("pass", func(t *testing.T) {
|
||||
mockT := &testing.T{}
|
||||
test.AssertStatus(mockT, http.StatusOK, &http.Response{
|
||||
StatusCode: 200,
|
||||
})
|
||||
assert.False(t, mockT.Failed())
|
||||
})
|
||||
t.Run("fail with nil body", func(t *testing.T) {
|
||||
mockT := &testing.T{}
|
||||
test.AssertStatus(mockT, http.StatusOK, &http.Response{
|
||||
StatusCode: 500,
|
||||
})
|
||||
assert.True(t, mockT.Failed())
|
||||
})
|
||||
t.Run("fail with body", func(t *testing.T) {
|
||||
mockT := &testing.T{}
|
||||
test.AssertStatus(mockT, http.StatusOK, &http.Response{
|
||||
StatusCode: 500,
|
||||
Body: io.NopCloser(strings.NewReader("my body")),
|
||||
})
|
||||
assert.True(t, mockT.Failed())
|
||||
})
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"queryorchestration/internal/test"
|
||||
queryapi "queryorchestration/pkg/queryAPI"
|
||||
|
||||
"github.com/google/uuid"
|
||||
@@ -84,7 +85,7 @@ func CreateDependentQueries(t testing.TB, client *queryapi.ClientWithResponses)
|
||||
Type: queryapi.CONTEXTFULL,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusCreated, contextQueryRes.StatusCode())
|
||||
test.AssertStatus(t, http.StatusCreated, contextQueryRes.HTTPResponse)
|
||||
jcfg := `{"path":"keyone"}`
|
||||
jsonQueryRes, err := client.CreateQueryWithResponse(t.Context(), queryapi.QueryCreate{
|
||||
Type: queryapi.JSONEXTRACTOR,
|
||||
@@ -92,7 +93,7 @@ func CreateDependentQueries(t testing.TB, client *queryapi.ClientWithResponses)
|
||||
RequiredQueries: &[]types.UUID{contextQueryRes.JSON201.Id},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusCreated, jsonQueryRes.StatusCode())
|
||||
test.AssertStatus(t, http.StatusCreated, jsonQueryRes.HTTPResponse)
|
||||
|
||||
return contextQueryRes.JSON201.Id, jsonQueryRes.JSON201.Id
|
||||
}
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ vars:
|
||||
echo "4" # Default fallback value
|
||||
fi
|
||||
TEST_PARALLEL:
|
||||
sh: echo $(( {{.CPU_COUNT}} * 2))
|
||||
sh: echo $(( {{.CPU_COUNT}} ))
|
||||
# yamllint disable-line rule:line-length
|
||||
EXCLUDED_FILES: ".gen.go|internal/serviceconfig/observability/prometheus/generator/main.go|internal/cognitoauth/middleware.go|internal/cognitoauth/token.go|internal/cognitoauth/auth.go|internal/cognitoauth/handler.go|internal/cognitoauth/models.go|api/queryAPI/authHandlers.go|api/queryAPI/homehandler.go"
|
||||
|
||||
|
||||
+29
-18
@@ -119,28 +119,39 @@ func TestProcess(t *testing.T) {
|
||||
"JSON_QUERY": "valuetwo",
|
||||
}
|
||||
|
||||
queryapitest.WaitForClientStatus(t, t.Context(), net.Client, clientId, queryapi.NOTSYNCED)
|
||||
queryapitest.WaitForClientStatus(t, t.Context(), net.Client, clientId, queryapi.INSYNC)
|
||||
|
||||
docRes, err = net.Client.GetDocumentWithResponse(t.Context(), doc.Id)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, docRes)
|
||||
require.NotNil(t, docRes.JSON200)
|
||||
assert.EqualExportedValues(t, expectedDoc, *docRes.JSON200)
|
||||
wg.Add(3)
|
||||
go func(t testing.TB) {
|
||||
docRes, err = net.Client.GetDocumentWithResponse(t.Context(), doc.Id)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, docRes)
|
||||
require.NotNil(t, docRes.JSON200)
|
||||
assert.EqualExportedValues(t, expectedDoc, *docRes.JSON200)
|
||||
wg.Done()
|
||||
}(t)
|
||||
|
||||
testRes, err := net.Client.TestQueryWithResponse(t.Context(), jsonId, queryapi.QueryTestRequest{
|
||||
QueryVersion: 1,
|
||||
DocumentId: doc.Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "valueone", testRes.JSON200.Value)
|
||||
go func(t testing.TB) {
|
||||
testRes, err := net.Client.TestQueryWithResponse(t.Context(), jsonId, queryapi.QueryTestRequest{
|
||||
QueryVersion: 1,
|
||||
DocumentId: doc.Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "valueone", testRes.JSON200.Value)
|
||||
wg.Done()
|
||||
}(t)
|
||||
|
||||
testRes, err = net.Client.TestQueryWithResponse(t.Context(), jsonId, queryapi.QueryTestRequest{
|
||||
QueryVersion: 2,
|
||||
DocumentId: doc.Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "valuetwo", testRes.JSON200.Value)
|
||||
go func(t testing.TB) {
|
||||
testRes, err := net.Client.TestQueryWithResponse(t.Context(), jsonId, queryapi.QueryTestRequest{
|
||||
QueryVersion: 2,
|
||||
DocumentId: doc.Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "valuetwo", testRes.JSON200.Value)
|
||||
wg.Done()
|
||||
}(t)
|
||||
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
const pdfHelloWorld = `%PDF-1.4
|
||||
|
||||
@@ -26,7 +26,7 @@ func TestClient(t *testing.T) {
|
||||
|
||||
clientErrRes, err := client.GetClientWithResponse(ctx, "INVALID")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, http.StatusBadRequest, clientErrRes.StatusCode())
|
||||
test.AssertStatus(t, http.StatusBadRequest, clientErrRes.HTTPResponse)
|
||||
assert.Equal(t, "Unable to get client: no rows in result set", clientErrRes.JSON400.Message)
|
||||
|
||||
idRes, err := client.CreateClientWithResponse(ctx, queryapi.ClientCreate{
|
||||
@@ -34,14 +34,14 @@ func TestClient(t *testing.T) {
|
||||
Id: "EXA",
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusCreated, idRes.StatusCode())
|
||||
test.AssertStatus(t, http.StatusCreated, idRes.HTTPResponse)
|
||||
assert.NotNil(t, idRes.JSON201)
|
||||
assert.Equal(t, "EXA", idRes.JSON201.Id)
|
||||
id := idRes.JSON201.Id
|
||||
|
||||
clientRes, err := client.GetClientWithResponse(ctx, id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusOK, clientRes.StatusCode())
|
||||
test.AssertStatus(t, http.StatusOK, clientRes.HTTPResponse)
|
||||
assert.Equal(t, id, clientRes.JSON200.Id)
|
||||
assert.Equal(t, "example_name", clientRes.JSON200.Name)
|
||||
assert.False(t, clientRes.JSON200.CanSync)
|
||||
|
||||
@@ -2,6 +2,7 @@ package endtoend_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"testing"
|
||||
|
||||
@@ -61,6 +62,7 @@ func TestCollectorService(t *testing.T) {
|
||||
|
||||
collRes, err := client.GetCollectorByClientIdWithResponse(ctx, id)
|
||||
require.NoError(t, err)
|
||||
test.AssertStatus(t, http.StatusOK, collRes.HTTPResponse)
|
||||
assert.Equal(t, id, collRes.JSON200.ClientId)
|
||||
assert.Equal(t, int32(0), collRes.JSON200.ActiveVersion)
|
||||
assert.Equal(t, int32(0), collRes.JSON200.LatestVersion)
|
||||
@@ -83,10 +85,11 @@ func TestCollectorService(t *testing.T) {
|
||||
Fields: &fields,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, 200, uRes.StatusCode())
|
||||
test.AssertStatus(t, http.StatusOK, uRes.HTTPResponse)
|
||||
|
||||
collRes, err = client.GetCollectorByClientIdWithResponse(ctx, id)
|
||||
require.NoError(t, err)
|
||||
test.AssertStatus(t, http.StatusOK, collRes.HTTPResponse)
|
||||
assert.Equal(t, id, collRes.JSON200.ClientId)
|
||||
assert.Equal(t, int32(1), collRes.JSON200.ActiveVersion)
|
||||
assert.Equal(t, int32(1), collRes.JSON200.LatestVersion)
|
||||
|
||||
Reference in New Issue
Block a user