1
+ //nolint:bodyclose // Much easier to just ignore memory leaks in tests
1
2
package earlydata_test
2
3
3
4
import (
7
8
"net/http/httptest"
8
9
"testing"
9
10
10
- "github.com/gofiber/fiber/v3 "
11
- "github.com/gofiber/fiber/v3 /middleware/earlydata"
12
- "github.com/stretchr/testify/require "
11
+ "github.com/gofiber/fiber/v2 "
12
+ "github.com/gofiber/fiber/v2 /middleware/earlydata"
13
+ "github.com/gofiber/fiber/v2/utils "
13
14
)
14
15
15
16
const (
@@ -33,12 +34,11 @@ func appWithConfig(t *testing.T, c *fiber.Config) *fiber.App {
33
34
34
35
// Middleware to test IsEarly func
35
36
const localsKeyTestValid = "earlydata_testvalid"
36
- app .Use (func (c fiber.Ctx ) error {
37
+ app .Use (func (c * fiber.Ctx ) error {
37
38
isEarly := earlydata .IsEarly (c )
38
39
39
40
switch h := c .Get (headerName ); h {
40
- case "" ,
41
- headerValOff :
41
+ case "" , headerValOff :
42
42
if isEarly {
43
43
return errors .New ("is early-data even though it's not" )
44
44
}
@@ -64,16 +64,20 @@ func appWithConfig(t *testing.T, c *fiber.Config) *fiber.App {
64
64
return c .Next ()
65
65
})
66
66
67
- app .Add ([]string {
68
- fiber .MethodGet ,
69
- fiber .MethodPost ,
70
- }, "/" , func (c fiber.Ctx ) error {
71
- if ! c .Locals (localsKeyTestValid ).(bool ) {
72
- return errors .New ("handler called even though validation failed" )
73
- }
67
+ {
68
+ {
69
+ handler := func (c * fiber.Ctx ) error {
70
+ if ! c .Locals (localsKeyTestValid ).(bool ) { //nolint:forcetypeassert,errcheck // We store nothing else in the pool
71
+ return errors .New ("handler called even though validation failed" )
72
+ }
74
73
75
- return nil
76
- })
74
+ return nil
75
+ }
76
+
77
+ app .Get ("/" , handler )
78
+ app .Post ("/" , handler )
79
+ }
80
+ }
77
81
78
82
return app
79
83
}
@@ -89,36 +93,36 @@ func Test_EarlyData(t *testing.T) {
89
93
req := httptest .NewRequest (fiber .MethodGet , "/" , http .NoBody )
90
94
91
95
resp , err := app .Test (req )
92
- require . NoError ( t , err )
93
- require . Equal (t , fiber .StatusOK , resp .StatusCode )
96
+ utils . AssertEqual ( t , nil , err )
97
+ utils . AssertEqual (t , fiber .StatusOK , resp .StatusCode )
94
98
95
99
req .Header .Set (headerName , headerValOff )
96
100
resp , err = app .Test (req )
97
- require . NoError ( t , err )
98
- require . Equal (t , fiber .StatusOK , resp .StatusCode )
101
+ utils . AssertEqual ( t , nil , err )
102
+ utils . AssertEqual (t , fiber .StatusOK , resp .StatusCode )
99
103
100
104
req .Header .Set (headerName , headerValOn )
101
105
resp , err = app .Test (req )
102
- require . NoError ( t , err )
103
- require . Equal (t , fiber .StatusOK , resp .StatusCode )
106
+ utils . AssertEqual ( t , nil , err )
107
+ utils . AssertEqual (t , fiber .StatusOK , resp .StatusCode )
104
108
}
105
109
106
110
{
107
111
req := httptest .NewRequest (fiber .MethodPost , "/" , http .NoBody )
108
112
109
113
resp , err := app .Test (req )
110
- require . NoError ( t , err )
111
- require . Equal (t , fiber .StatusOK , resp .StatusCode )
114
+ utils . AssertEqual ( t , nil , err )
115
+ utils . AssertEqual (t , fiber .StatusOK , resp .StatusCode )
112
116
113
117
req .Header .Set (headerName , headerValOff )
114
118
resp , err = app .Test (req )
115
- require . NoError ( t , err )
116
- require . Equal (t , fiber .StatusOK , resp .StatusCode )
119
+ utils . AssertEqual ( t , nil , err )
120
+ utils . AssertEqual (t , fiber .StatusOK , resp .StatusCode )
117
121
118
122
req .Header .Set (headerName , headerValOn )
119
123
resp , err = app .Test (req )
120
- require . NoError ( t , err )
121
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
124
+ utils . AssertEqual ( t , nil , err )
125
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
122
126
}
123
127
}
124
128
@@ -129,36 +133,36 @@ func Test_EarlyData(t *testing.T) {
129
133
req := httptest .NewRequest (fiber .MethodGet , "/" , http .NoBody )
130
134
131
135
resp , err := app .Test (req )
132
- require . NoError ( t , err )
133
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
136
+ utils . AssertEqual ( t , nil , err )
137
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
134
138
135
139
req .Header .Set (headerName , headerValOff )
136
140
resp , err = app .Test (req )
137
- require . NoError ( t , err )
138
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
141
+ utils . AssertEqual ( t , nil , err )
142
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
139
143
140
144
req .Header .Set (headerName , headerValOn )
141
145
resp , err = app .Test (req )
142
- require . NoError ( t , err )
143
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
146
+ utils . AssertEqual ( t , nil , err )
147
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
144
148
}
145
149
146
150
{
147
151
req := httptest .NewRequest (fiber .MethodPost , "/" , http .NoBody )
148
152
149
153
resp , err := app .Test (req )
150
- require . NoError ( t , err )
151
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
154
+ utils . AssertEqual ( t , nil , err )
155
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
152
156
153
157
req .Header .Set (headerName , headerValOff )
154
158
resp , err = app .Test (req )
155
- require . NoError ( t , err )
156
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
159
+ utils . AssertEqual ( t , nil , err )
160
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
157
161
158
162
req .Header .Set (headerName , headerValOn )
159
163
resp , err = app .Test (req )
160
- require . NoError ( t , err )
161
- require . Equal (t , fiber .StatusTooEarly , resp .StatusCode )
164
+ utils . AssertEqual ( t , nil , err )
165
+ utils . AssertEqual (t , fiber .StatusTooEarly , resp .StatusCode )
162
166
}
163
167
}
164
168
0 commit comments