aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/cmd/test_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/cmd/test_test.go')
-rw-r--r--client/go/cmd/test_test.go38
1 files changed, 24 insertions, 14 deletions
diff --git a/client/go/cmd/test_test.go b/client/go/cmd/test_test.go
index 9c161c091ec..1f7d0cff7b2 100644
--- a/client/go/cmd/test_test.go
+++ b/client/go/cmd/test_test.go
@@ -15,12 +15,13 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/vespa-engine/vespa/client/go/mock"
"github.com/vespa-engine/vespa/client/go/util"
"github.com/vespa-engine/vespa/client/go/vespa"
)
func TestSuite(t *testing.T) {
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
searchResponse, _ := ioutil.ReadFile("testdata/tests/response.json")
client.NextStatus(200)
client.NextStatus(200)
@@ -45,16 +46,25 @@ func TestSuite(t *testing.T) {
}
func TestIllegalFileReference(t *testing.T) {
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
client.NextStatus(200)
client.NextStatus(200)
_, errBytes := execute(command{args: []string{"test", "testdata/tests/production-test/illegal-reference.json"}}, t, client)
- assertRequests([]*http.Request{createRequest("GET", "http://127.0.0.1:8080/search/", "{}")}, client, t)
- assert.Equal(t, "\nError: error in Step 2: path may not point outside src/test/application, but 'foo/../../../../this-is-not-ok.json' does\nHint: See https://cloud.vespa.ai/en/reference/testing\n", errBytes)
+ assertRequests([]*http.Request{createRequest("GET", "https://domain.tld", "{}")}, client, t)
+ assert.Equal(t, "\nError: error in Step 2: path may not point outside src/test/application, but 'foo/../../../../this-is-not-ok.json' does\nHint: See https://docs.vespa.ai/en/reference/testing\n", errBytes)
+}
+
+func TestIllegalRequestUri(t *testing.T) {
+ client := &mock.HTTPClient{}
+ client.NextStatus(200)
+ client.NextStatus(200)
+ _, errBytes := execute(command{args: []string{"test", "testdata/tests/production-test/illegal-uri.json"}}, t, client)
+ assertRequests([]*http.Request{createRequest("GET", "https://domain.tld/my-api", "")}, client, t)
+ assert.Equal(t, "\nError: error in Step 2: production tests may not specify requests against Vespa endpoints\nHint: See https://docs.vespa.ai/en/reference/testing\n", errBytes)
}
func TestProductionTest(t *testing.T) {
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
client.NextStatus(200)
outBytes, errBytes := execute(command{args: []string{"test", "testdata/tests/production-test/external.json"}}, t, client)
assert.Equal(t, "external.json: . OK\n\nSuccess: 1 test OK\n", outBytes)
@@ -63,19 +73,19 @@ func TestProductionTest(t *testing.T) {
}
func TestTestWithoutAssertions(t *testing.T) {
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
_, errBytes := execute(command{args: []string{"test", "testdata/tests/system-test/foo/query.json"}}, t, client)
- assert.Equal(t, "\nError: a test must have at least one step, but none were found in testdata/tests/system-test/foo/query.json\nHint: See https://cloud.vespa.ai/en/reference/testing\n", errBytes)
+ assert.Equal(t, "\nError: a test must have at least one step, but none were found in testdata/tests/system-test/foo/query.json\nHint: See https://docs.vespa.ai/en/reference/testing\n", errBytes)
}
func TestSuiteWithoutTests(t *testing.T) {
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
_, errBytes := execute(command{args: []string{"test", "testdata/tests/staging-test"}}, t, client)
- assert.Equal(t, "Error: failed to find any tests at testdata/tests/staging-test\nHint: See https://cloud.vespa.ai/en/reference/testing\n", errBytes)
+ assert.Equal(t, "Error: failed to find any tests at testdata/tests/staging-test\nHint: See https://docs.vespa.ai/en/reference/testing\n", errBytes)
}
func TestSingleTest(t *testing.T) {
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
searchResponse, _ := ioutil.ReadFile("testdata/tests/response.json")
client.NextStatus(200)
client.NextStatus(200)
@@ -112,7 +122,7 @@ func TestSingleTestWithCloudAndEndpoints(t *testing.T) {
ioutil.WriteFile(keyFile, kp.PrivateKey, 0600)
ioutil.WriteFile(certFile, kp.Certificate, 0600)
- client := &mockHttpClient{}
+ client := &mock.HTTPClient{}
searchResponse, _ := ioutil.ReadFile("testdata/tests/response.json")
client.NextStatus(200)
client.NextStatus(200)
@@ -149,10 +159,10 @@ func createRequest(method string, uri string, body string) *http.Request {
}
}
-func assertRequests(requests []*http.Request, client *mockHttpClient, t *testing.T) {
- if assert.Equal(t, len(requests), len(client.requests)) {
+func assertRequests(requests []*http.Request, client *mock.HTTPClient, t *testing.T) {
+ if assert.Equal(t, len(requests), len(client.Requests)) {
for i, e := range requests {
- a := client.requests[i]
+ a := client.Requests[i]
assert.Equal(t, e.URL.String(), a.URL.String())
assert.Equal(t, e.Method, a.Method)
assert.Equal(t, util.ReaderToJSON(e.Body), util.ReaderToJSON(a.Body))