MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / TestMiddleware

Function TestMiddleware

pkg/log/logger_test.go:93–142  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

91}
92
93func TestMiddleware(t *testing.T) {
94 a := assertions.New(t)
95
96 rec := newRecorder()
97 logger := &Logger{
98 Level: InfoLevel,
99 Handler: rec,
100 }
101
102 before := []int{}
103 after := []int{}
104
105 logger.Use(MiddlewareFunc(func(next Handler) Handler {
106 return HandlerFunc(func(entry Entry) error {
107 before = append(before, 1)
108 err := next.HandleLog(entry)
109 after = append(after, 1)
110
111 return err
112 })
113 }))
114
115 logger.Info("Hey!")
116
117 a.So(before, should.Resemble, []int{1})
118 a.So(after, should.Resemble, []int{1})
119
120 a.So(rec.entries, should.HaveLength, 1)
121
122 // reset
123 before = []int{}
124 after = []int{}
125
126 logger.Use(MiddlewareFunc(func(next Handler) Handler {
127 return HandlerFunc(func(entry Entry) error {
128 before = append(before, 2)
129 err := next.HandleLog(entry)
130 after = append(after, 2)
131
132 return err
133 })
134 }))
135
136 logger.Info("Hey!")
137
138 a.So(before, should.Resemble, []int{1, 2})
139 a.So(after, should.Resemble, []int{2, 1})
140
141 a.So(rec.entries, should.HaveLength, 2)
142}

Callers

nothing calls this directly

Calls 7

UseMethod · 0.95
InfoMethod · 0.95
newRecorderFunction · 0.85
MiddlewareFuncFuncType · 0.70
HandlerFuncFuncType · 0.70
NewMethod · 0.65
HandleLogMethod · 0.65

Tested by

no test coverage detected