Test_AuthSources() — fiber Function Reference
Architecture documentation for the Test_AuthSources() function in keyauth_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 30cac84a_0ad2_dbf6_13e6_1b83bfb80e98["Test_AuthSources()"] 71f55784_a001_0646_0ce7_7ad97067c49c["keyauth_test.go"] 30cac84a_0ad2_dbf6_13e6_1b83bfb80e98 -->|defined in| 71f55784_a001_0646_0ce7_7ad97067c49c style 30cac84a_0ad2_dbf6_13e6_1b83bfb80e98 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
middleware/keyauth/keyauth_test.go lines 35–190
func Test_AuthSources(t *testing.T) {
// define test cases
testSources := []string{headerExtractorName, authHeaderExtractorName, cookieExtractorName, queryExtractorName, paramExtractorName, formExtractorName}
tests := []struct {
route string
authTokenName string
description string
APIKey string
expectedBody string
expectedCode int
}{
{
route: "/",
authTokenName: "access_token",
description: "auth with correct key",
APIKey: CorrectKey,
expectedCode: 200,
expectedBody: "Success!",
},
{
route: "/",
authTokenName: "access_token",
description: "auth with no key",
APIKey: "",
expectedCode: 401, // 404 in case of param authentication
expectedBody: ErrMissingOrMalformedAPIKey.Error(),
},
{
route: "/",
authTokenName: "access_token",
description: "auth with wrong key",
APIKey: "WRONGKEY",
expectedCode: 401,
expectedBody: ErrMissingOrMalformedAPIKey.Error(),
},
}
for _, authSource := range testSources {
t.Run(authSource, func(t *testing.T) {
for _, test := range tests {
app := fiber.New(fiber.Config{UnescapePath: true})
testKey := test.APIKey
correctKey := CorrectKey
// Use a simple key for param and cookie to avoid encoding issues in the test setup
if authSource == paramExtractorName || authSource == cookieExtractorName {
if test.APIKey != "" && test.APIKey != "WRONGKEY" {
testKey = "simple-key"
correctKey = "simple-key"
}
}
authMiddleware := New(Config{
Extractor: func() extractors.Extractor {
switch authSource {
case headerExtractorName:
return extractors.FromHeader(test.authTokenName)
case authHeaderExtractorName:
return extractors.FromAuthHeader("Bearer")
case cookieExtractorName:
return extractors.FromCookie(test.authTokenName)
case queryExtractorName:
return extractors.FromQuery(test.authTokenName)
case paramExtractorName:
return extractors.FromParam(test.authTokenName)
case formExtractorName:
return extractors.FromForm(test.authTokenName)
default:
panic("unknown source")
}
}(),
Validator: func(_ fiber.Ctx, key string) (bool, error) {
if key == correctKey {
return true, nil
}
return false, errors.New("invalid key")
},
})
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_AuthSources() do?
Test_AuthSources() is a function in the fiber codebase, defined in middleware/keyauth/keyauth_test.go.
Where is Test_AuthSources() defined?
Test_AuthSources() is defined in middleware/keyauth/keyauth_test.go at line 35.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free