summaryrefslogtreecommitdiffstats
path: root/client/go/internal/cli/cmd/version_test.go
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-02-03 15:20:23 +0100
committerMartin Polden <mpolden@mpolden.no>2023-02-03 15:35:25 +0100
commite1e94812425a487069bf33f781bec987e9e49874 (patch)
tree4a892c3b5c0a7dee2cb76f9971e538cb4aba8a16 /client/go/internal/cli/cmd/version_test.go
parenta08ae588d6035b69f0961dff596fc871fd1c4e58 (diff)
Re-organize Go code
Diffstat (limited to 'client/go/internal/cli/cmd/version_test.go')
-rw-r--r--client/go/internal/cli/cmd/version_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/client/go/internal/cli/cmd/version_test.go b/client/go/internal/cli/cmd/version_test.go
new file mode 100644
index 00000000000..70eaf1814e7
--- /dev/null
+++ b/client/go/internal/cli/cmd/version_test.go
@@ -0,0 +1,45 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package cmd
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/vespa-engine/vespa/client/go/internal/mock"
+)
+
+func TestVersion(t *testing.T) {
+ c := &mock.HTTPClient{}
+ c.NextResponseString(200, `[{"tag_name": "v1.2.3", "published_at": "2021-09-10T12:00:00Z"}]`)
+
+ sp := &mock.Exec{}
+ cli, stdout, stderr := newTestCLI(t)
+ cli.httpClient = c
+ cli.exec = sp
+ cli.isTerminal = func() bool { return true }
+ if err := cli.Run("version", "--color", "never"); err != nil {
+ t.Fatal(err)
+ }
+ assert.Equal(t, "", stderr.String())
+ assert.Contains(t, stdout.String(), "Vespa CLI version 0.0.0-devel compiled with")
+ assert.Contains(t, stdout.String(), "New release available: 1.2.3\nhttps://github.com/vespa-engine/vespa/releases/tag/v1.2.3")
+}
+
+func TestVersionCheckHomebrew(t *testing.T) {
+ c := &mock.HTTPClient{}
+ c.NextResponseString(200, `[{"tag_name": "v1.2.3", "published_at": "2021-09-10T12:00:00Z"}]`)
+
+ sp := &mock.Exec{ProgramPath: "/usr/local/bin/vespa", CombinedOutput: "/usr/local"}
+ cli, stdout, stderr := newTestCLI(t)
+ cli.httpClient = c
+ cli.exec = sp
+ cli.isTerminal = func() bool { return true }
+ if err := cli.Run("version", "--color", "never"); err != nil {
+ t.Fatal(err)
+ }
+ assert.Equal(t, "", stderr.String())
+ assert.Contains(t, stdout.String(), "Vespa CLI version 0.0.0-devel compiled with")
+ assert.Contains(t, stdout.String(), "New release available: 1.2.3\n"+
+ "https://github.com/vespa-engine/vespa/releases/tag/v1.2.3\n"+
+ "\nUpgrade by running:\nbrew update && brew upgrade vespa-cli\n")
+}