summaryrefslogtreecommitdiff
path: root/internal/console/console_test.go
diff options
context:
space:
mode:
authorIgor <idrozdov@gitlab.com>2019-10-23 08:19:23 +0000
committerIgor <idrozdov@gitlab.com>2019-10-23 08:19:23 +0000
commit7d36bc3bba67d42f7d23bd16624ef5e6aab2bddc (patch)
treeb768c10328ca69591ca1613e18a38131b950ae08 /internal/console/console_test.go
parent629e3bf9c31687f7b824cf29ba07ad2ce402e280 (diff)
parentaa82832f7ba0a6ca7017f019be17810579f9a688 (diff)
downloadgitlab-shell-7d36bc3bba67d42f7d23bd16624ef5e6aab2bddc.tar.gz
Merge branch 'ashmckenzie/make-console-messages-consistent' into 'master'
Make console messages consistent See merge request gitlab-org/gitlab-shell!334
Diffstat (limited to 'internal/console/console_test.go')
-rw-r--r--internal/console/console_test.go201
1 files changed, 201 insertions, 0 deletions
diff --git a/internal/console/console_test.go b/internal/console/console_test.go
new file mode 100644
index 0000000..bcd8444
--- /dev/null
+++ b/internal/console/console_test.go
@@ -0,0 +1,201 @@
+package console
+
+import (
+ "bytes"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+)
+
+func TestDisplayWarningMessage(t *testing.T) {
+ tests := []struct {
+ name string
+ message string
+ wantOut string
+ }{
+ {
+ name: "empty",
+ message: "",
+ wantOut: "",
+ },
+ {
+ name: "basically empty",
+ message: " ",
+ wantOut: "",
+ },
+ {
+ name: "something",
+ message: "something",
+ wantOut: `remote:
+remote: ========================================================================
+remote:
+remote: something
+remote:
+remote: ========================================================================
+remote:
+`,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ out := &bytes.Buffer{}
+ DisplayWarningMessage(tt.message, out)
+
+ require.Equal(t, tt.wantOut, out.String())
+ })
+ }
+}
+
+func TestDisplayWarningMessages(t *testing.T) {
+ tests := []struct {
+ name string
+ messages []string
+ wantOut string
+ }{
+ {
+ name: "empty",
+ messages: []string{""},
+ wantOut: "",
+ },
+ {
+ name: "basically empty",
+ messages: []string{" "},
+ wantOut: "",
+ },
+ {
+ name: "something",
+ messages: []string{"something", "here"},
+ wantOut: `remote:
+remote: ========================================================================
+remote:
+remote: something
+remote: here
+remote:
+remote: ========================================================================
+remote:
+`,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ out := &bytes.Buffer{}
+ DisplayWarningMessages(tt.messages, out)
+
+ require.Equal(t, tt.wantOut, out.String())
+ })
+ }
+}
+
+func TestDisplayInfoMessage(t *testing.T) {
+ tests := []struct {
+ name string
+ message string
+ wantOut string
+ }{
+ {
+ name: "empty",
+ message: "",
+ wantOut: "",
+ },
+ {
+ name: "basically empty",
+ message: " ",
+ wantOut: "",
+ },
+ {
+ name: "something",
+ message: "something",
+ wantOut: `remote:
+remote: something
+remote:
+`,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ out := &bytes.Buffer{}
+ DisplayInfoMessage(tt.message, out)
+
+ require.Equal(t, tt.wantOut, out.String())
+ })
+ }
+}
+
+func TestDisplayInfoMessages(t *testing.T) {
+ tests := []struct {
+ name string
+ messages []string
+ wantOut string
+ }{
+ {
+ name: "empty",
+ messages: []string{""},
+ wantOut: "",
+ },
+ {
+ name: "basically empty",
+ messages: []string{" "},
+ wantOut: "",
+ },
+ {
+ name: "something",
+ messages: []string{"something", "here"},
+ wantOut: "remote: \nremote: something\nremote: here\nremote: \n",
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ out := &bytes.Buffer{}
+ DisplayInfoMessages(tt.messages, out)
+
+ require.Equal(t, tt.wantOut, out.String())
+ })
+ }
+}
+
+func Test_noMessages(t *testing.T) {
+ tests := []struct {
+ name string
+ messages []string
+ want bool
+ }{
+ {
+ name: "empty",
+ messages: []string{""},
+ want: true,
+ },
+ {
+ name: "basically empty",
+ messages: []string{" "},
+ want: true,
+ },
+ {
+ name: "something",
+ messages: []string{"something", "here"},
+ want: false,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ require.Equal(t, tt.want, noMessages(tt.messages))
+ })
+ }
+}
+
+func Test_formatLine(t *testing.T) {
+ require.Equal(t, "remote: something\n", formatLine("something"))
+}
+
+func Test_divider(t *testing.T) {
+ want := `remote:
+remote: ========================================================================
+remote:
+`
+
+ require.Equal(t, want, divider())
+}