-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdebug_test.go
More file actions
135 lines (105 loc) · 2.84 KB
/
debug_test.go
File metadata and controls
135 lines (105 loc) · 2.84 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package fox
import (
"bytes"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
// TestIsDebugging tests IsDebugging function
func TestIsDebugging(t *testing.T) {
// Save original mode
originalMode := foxMode
defer func() {
foxMode = originalMode
}()
t.Run("debug mode", func(t *testing.T) {
SetMode(DebugMode)
assert.True(t, IsDebugging())
})
t.Run("release mode", func(t *testing.T) {
SetMode(ReleaseMode)
assert.False(t, IsDebugging())
})
t.Run("test mode", func(t *testing.T) {
SetMode(TestMode)
assert.False(t, IsDebugging())
})
}
// TestDebugPrint tests debugPrint function
func TestDebugPrint(t *testing.T) {
// Save original mode and writer
originalMode := foxMode
originalWriter := DefaultWriter
defer func() {
foxMode = originalMode
DefaultWriter = originalWriter
}()
t.Run("debug mode with newline", func(t *testing.T) {
SetMode(DebugMode)
buf := &bytes.Buffer{}
DefaultWriter = buf
debugPrint("test message\n")
output := buf.String()
assert.Contains(t, output, "[FOX-debug] test message")
})
t.Run("debug mode without newline", func(t *testing.T) {
SetMode(DebugMode)
buf := &bytes.Buffer{}
DefaultWriter = buf
debugPrint("test message")
output := buf.String()
assert.Contains(t, output, "[FOX-debug] test message")
assert.True(t, strings.HasSuffix(output, "\n"))
})
t.Run("debug mode with format", func(t *testing.T) {
SetMode(DebugMode)
buf := &bytes.Buffer{}
DefaultWriter = buf
debugPrint("test %s %d", "message", 123)
output := buf.String()
assert.Contains(t, output, "[FOX-debug] test message 123")
})
t.Run("release mode", func(t *testing.T) {
SetMode(ReleaseMode)
buf := &bytes.Buffer{}
DefaultWriter = buf
debugPrint("test message")
output := buf.String()
assert.Empty(t, output)
})
}
// TestDebugPrintRoute tests debugPrintRoute function
func TestDebugPrintRoute(t *testing.T) {
// Save original mode and writer
originalMode := foxMode
originalWriter := DefaultWriter
defer func() {
foxMode = originalMode
DefaultWriter = originalWriter
}()
t.Run("debug mode", func(t *testing.T) {
SetMode(DebugMode)
buf := &bytes.Buffer{}
DefaultWriter = buf
router := New()
handler := func() string { return "test" }
handlers := HandlersChain{handler}
debugPrintRoute(&router.RouterGroup, "GET", "/test", handlers)
output := buf.String()
assert.Contains(t, output, "[FOX-debug]")
assert.Contains(t, output, "GET")
assert.Contains(t, output, "/test")
assert.Contains(t, output, "handlers)")
})
t.Run("release mode", func(t *testing.T) {
SetMode(ReleaseMode)
buf := &bytes.Buffer{}
DefaultWriter = buf
router := New()
handler := func() string { return "test" }
handlers := HandlersChain{handler}
debugPrintRoute(&router.RouterGroup, "GET", "/test", handlers)
output := buf.String()
assert.Empty(t, output)
})
}