Home / Function/ Test_WWWAuthenticateHeader() — fiber Function Reference

Test_WWWAuthenticateHeader() — fiber Function Reference

Architecture documentation for the Test_WWWAuthenticateHeader() function in keyauth_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  3245697d_b499_3fae_b632_c917757ce7e4["Test_WWWAuthenticateHeader()"]
  71f55784_a001_0646_0ce7_7ad97067c49c["keyauth_test.go"]
  3245697d_b499_3fae_b632_c917757ce7e4 -->|defined in| 71f55784_a001_0646_0ce7_7ad97067c49c
  style 3245697d_b499_3fae_b632_c917757ce7e4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/keyauth/keyauth_test.go lines 789–886

func Test_WWWAuthenticateHeader(t *testing.T) {
	t.Parallel()

	tests := []struct {
		name               string
		expectedHeader     string
		config             Config
		expectedStatusCode int
	}{
		{
			name: "default config on failure",
			config: Config{
				Validator: func(_ fiber.Ctx, _ string) (bool, error) {
					return false, errors.New("validation failed")
				},
			},
			expectedHeader:     `Bearer realm="Restricted"`,
			expectedStatusCode: fiber.StatusUnauthorized,
		},
		{
			name: "custom realm on failure",
			config: Config{
				Validator: func(_ fiber.Ctx, _ string) (bool, error) {
					return false, errors.New("validation failed")
				},
				Realm: "My Custom Realm",
			},
			expectedHeader:     `Bearer realm="My Custom Realm"`,
			expectedStatusCode: fiber.StatusUnauthorized,
		},
		{
			name: "default header for non-auth-header extractor",
			config: Config{
				Validator: func(_ fiber.Ctx, _ string) (bool, error) {
					return false, errors.New("validation failed")
				},
				Extractor: extractors.FromQuery("api_key"),
			},
			expectedHeader:     `ApiKey realm="Restricted"`,
			expectedStatusCode: fiber.StatusUnauthorized,
		},
		{
			name: "no header on success",
			config: Config{
				Validator: func(_ fiber.Ctx, _ string) (bool, error) {
					return true, nil
				},
			},
			expectedHeader:     "",
			expectedStatusCode: fiber.StatusOK,
		},
		{
			name: "chained extractor with auth header",
			config: Config{
				Validator: func(_ fiber.Ctx, _ string) (bool, error) {
					return false, errors.New("validation failed")
				},
				Extractor: extractors.Chain(extractors.FromQuery("q"), extractors.FromAuthHeader("MyScheme")),
			},
			expectedHeader:     `MyScheme realm="Restricted"`,
			expectedStatusCode: fiber.StatusUnauthorized,
		},
		{
			name: "chained extractor without auth header",
			config: Config{
				Validator: func(_ fiber.Ctx, _ string) (bool, error) {
					return false, errors.New("validation failed")
				},
				Extractor: extractors.Chain(extractors.FromQuery("q"), extractors.FromCookie("c")),
			},
			expectedHeader:     `ApiKey realm="Restricted"`,
			expectedStatusCode: fiber.StatusUnauthorized,
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			t.Parallel()
			app := fiber.New()
			app.Use(New(tt.config))
			app.Get("/", func(c fiber.Ctx) error {

Domain

Subdomains

Frequently Asked Questions

What does Test_WWWAuthenticateHeader() do?
Test_WWWAuthenticateHeader() is a function in the fiber codebase, defined in middleware/keyauth/keyauth_test.go.
Where is Test_WWWAuthenticateHeader() defined?
Test_WWWAuthenticateHeader() is defined in middleware/keyauth/keyauth_test.go at line 789.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free