-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain_test.go
96 lines (89 loc) · 1.91 KB
/
main_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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package main
import (
"strings"
"testing"
)
func TestDo(t *testing.T) {
type expect struct {
success bool
contentType string
}
tests := []struct {
title string
text string
mode string
snippetMode bool
filepath string
expect expect
}{
{
title: "normal text",
text: "",
mode: "text",
snippetMode: false,
expect: expect{
success: true,
contentType: "message",
},
},
{
title: "snippet mode",
text: strings.Repeat("a", 3000),
mode: "text",
snippetMode: true,
expect: expect{
success: true,
contentType: "file",
},
},
{
title: "snippet (text over 3001 charactor)",
text: strings.Repeat("a", 3001),
mode: "text",
snippetMode: false,
expect: expect{
success: true,
contentType: "file",
},
},
{
title: "upload file",
snippetMode: true,
mode: "file",
filepath: "tests/upload.txt",
expect: expect{
success: true,
contentType: "file",
},
},
}
for _, tt := range tests {
t.Run(tt.title, func(t *testing.T) {
client := NewSlackMockClient()
opts := &Options{
slackClient: client,
text: tt.text,
mode: tt.mode,
token: "testtoken",
filepath: tt.filepath,
snippetMode: tt.snippetMode,
postOpts: &PostOptions{
username: "test username",
channel: "test channel",
iconEmoji: "test icon emoji",
iconUrl: "test icon url",
},
}
_, err := Do(opts)
if err != nil && tt.expect.success {
t.Errorf("error: Do %s", err.Error())
}
if err == nil && !tt.expect.success {
t.Errorf("error: Do must be error (want:%v got:%v)", false, true)
}
if client.ContentType != tt.expect.contentType {
t.Errorf("error: contentType (want:%v got:%v)", tt.expect.contentType, client.ContentType)
}
})
}
}