forked from gofiber/fiber
/
hooks_test.go
107 lines (74 loc) · 2 KB
/
hooks_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
97
98
99
100
101
102
103
104
105
106
107
package fiber
import (
"testing"
"time"
"github.com/gofiber/fiber/v2/internal/bytebufferpool"
"github.com/gofiber/fiber/v2/utils"
)
func Test_Hook_OnRoute(t *testing.T) {
app := New()
app.Hooks().OnRoute(func(c *Ctx, m Map) error {
utils.AssertEqual(t, "", m["route"].(Route).Name)
return nil
})
app.Get("/", testSimpleHandler).Name("x")
subApp := New()
subApp.Get("/test", testSimpleHandler)
app.Mount("/sub", subApp)
}
func Test_Hook_OnName(t *testing.T) {
app := New()
buf := bytebufferpool.Get()
defer bytebufferpool.Put(buf)
app.Hooks().OnName(func(c *Ctx, m Map) error {
buf.WriteString(m["route"].(Route).Name)
return nil
})
app.Get("/", testSimpleHandler).Name("index")
subApp := New()
subApp.Get("/test", testSimpleHandler)
subApp.Get("/test2", testSimpleHandler)
app.Mount("/sub", subApp)
utils.AssertEqual(t, "index", buf.String())
}
func Test_Hook_OnGroupName(t *testing.T) {
app := New()
buf := bytebufferpool.Get()
defer bytebufferpool.Put(buf)
app.Hooks().OnGroupName(func(c *Ctx, m Map) error {
buf.WriteString(m["group"].(Group).name)
return nil
})
grp := app.Group("/x").Name("x.")
grp.Get("/test", testSimpleHandler)
grp.Get("/test2", testSimpleHandler)
utils.AssertEqual(t, "x.", buf.String())
}
func Test_Hook_OnShutdown(t *testing.T) {
app := New()
buf := bytebufferpool.Get()
defer bytebufferpool.Put(buf)
app.Hooks().OnShutdown(func(c *Ctx, m Map) error {
buf.WriteString("shutdowning")
return nil
})
utils.AssertEqual(t, nil, app.Shutdown())
utils.AssertEqual(t, "shutdowning", buf.String())
}
func Test_Hook_OnListen(t *testing.T) {
app := New(Config{
DisableStartupMessage: true,
})
buf := bytebufferpool.Get()
defer bytebufferpool.Put(buf)
app.Hooks().OnListen(func(c *Ctx, m Map) error {
buf.WriteString("ready")
return nil
})
go func() {
time.Sleep(1000 * time.Millisecond)
utils.AssertEqual(t, nil, app.Shutdown())
}()
utils.AssertEqual(t, nil, app.Listen(":9000"))
utils.AssertEqual(t, "ready", buf.String())
}