-
Notifications
You must be signed in to change notification settings - Fork 3
/
app_test.go
80 lines (66 loc) · 1.06 KB
/
app_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
package cli
import (
"testing"
)
func TestAppRun(t *testing.T) {
run := false
app := &App{
Action: func(ctx *Context) {
run = true
},
}
app.Run([]string{"app"})
if run == false {
t.Fatal("no app run")
}
}
func TestAppRunCmd(t *testing.T) {
run := false
app := &App{
Commands: []*Command{
{
Name: "cmd",
Action: func(ctx *Context) {
run = true
},
},
},
}
app.Run([]string{"app", "cmd"})
if run == false {
t.Fatal("no command run")
}
}
func TestAppRunCmdNotFound(t *testing.T) {
run := false
app := &App{
Commands: []*Command{
{
Name: "xx",
},
},
OnCommandNotFound: func(*Context, string) {
run = true
},
}
app.Run([]string{"app", "cmd", "xxx"})
if run == false {
t.Fatal("OnCommandNotFound not hit")
}
}
func TestAppRunPanic(t *testing.T) {
run := false
app := &App{
Action: func(ctx *Context) {
panic("err")
},
OnActionPanic: func(*Context, error) {
run = true
},
}
exit = func(int) {}
app.Run([]string{"app"})
if run == false {
t.Fatal("OnActionPanic not hit")
}
}