-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathoutput_test.go
60 lines (50 loc) · 1.33 KB
/
output_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package prettycli
import (
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestPlainOutput(t *testing.T) {
assert.Equal(t, "Test", PlainOutput{"Test"}.ToPrettyOutput())
}
func TestListOutput(t *testing.T) {
lo := ListOutput{Labels: []string{"ID"}}
lo.AddRow(map[string]string{"ID": "10"})
s := lo.ToPrettyOutput()
assert.Contains(t, s, "ID")
assert.Contains(t, s, "10")
assert.False(t, strings.HasSuffix(s, "\n"))
}
func TestDetailOutput(t *testing.T) {
do := DetailOutput{
Details: map[string]string{
"Z": "Other",
"Name": "Test Name",
},
}
s := do.ToPrettyOutput()
assert.Regexp(t, `Name\s+Test Name\s+Z`, s)
assert.False(t, strings.HasSuffix(s, "\n"))
}
func TestOrderedDetailOutput(t *testing.T) {
do := DetailOutput{
Details: map[string]string{
"Order Me Z": "v",
"Order Me X": "v",
"Alpha Z": "v",
"Alpha X": "v",
},
Order: []string{"Order Me Z", "Order Me X"},
}
s := do.ToPrettyOutput()
assert.Regexp(t, `Order Me Z\s+v\s+Order Me X\s+v\s+Alpha X\s+v\s+Alpha Z`, s)
assert.False(t, strings.HasSuffix(s, "\n"))
}
func TestCombinedOutput(t *testing.T) {
first := PlainOutput{"First"}
second := PlainOutput{"Second"}
o := CombinedOutput{}
o.AddOutput("", first)
o.AddOutput("Heading 2", second)
assert.Equal(t, "First\n\nHEADING 2\nSecond", o.ToPrettyOutput())
}