MCPcopy
hub / github.com/gofiber/fiber / Test_CSRF_Chain_Extractor_Metadata

Function Test_CSRF_Chain_Extractor_Metadata

middleware/csrf/config_test.go:196–229  ·  view source on GitHub ↗

Test chain extractor metadata

(t *testing.T)

Source from the content-addressed store, hash-verified

194
195// Test chain extractor metadata
196func Test_CSRF_Chain_Extractor_Metadata(t *testing.T) {
197 t.Parallel()
198
199 t.Run("EmptyChain", func(t *testing.T) {
200 t.Parallel()
201 chained := extractors.Chain()
202 require.Equal(t, extractors.SourceCustom, chained.Source)
203 require.Empty(t, chained.Key)
204 require.Empty(t, chained.Chain)
205 })
206
207 t.Run("SingleExtractor", func(t *testing.T) {
208 t.Parallel()
209 header := extractors.FromHeader("X-Token")
210 chained := extractors.Chain(header)
211 require.Equal(t, extractors.SourceHeader, chained.Source)
212 require.Equal(t, "X-Token", chained.Key)
213 require.Len(t, chained.Chain, 1)
214 })
215
216 t.Run("MultipleExtractors", func(t *testing.T) {
217 t.Parallel()
218 header := extractors.FromHeader("X-Token")
219 form := extractors.FromForm("_csrf")
220 chained := extractors.Chain(header, form)
221
222 // Should use first extractor's metadata
223 require.Equal(t, extractors.SourceHeader, chained.Source)
224 require.Equal(t, "X-Token", chained.Key)
225 require.Len(t, chained.Chain, 2)
226 require.Equal(t, header.Source, chained.Chain[0].Source)
227 require.Equal(t, form.Source, chained.Chain[1].Source)
228 })
229}
230
231// Test custom extractor with new struct pattern
232func Test_CSRF_Custom_Extractor_Struct(t *testing.T) {

Callers

nothing calls this directly

Calls 4

ChainFunction · 0.92
FromHeaderFunction · 0.92
FromFormFunction · 0.92
LenMethod · 0.65

Tested by

no test coverage detected