From 82870656c08afe94a7a2e965550cfbec8298f3d7 Mon Sep 17 00:00:00 2001 From: k1LoW Date: Mon, 1 Apr 2024 18:10:39 +0900 Subject: [PATCH] Add tests --- parameters/validate_security_test.go | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/parameters/validate_security_test.go b/parameters/validate_security_test.go index 775c2d6..908afce 100644 --- a/parameters/validate_security_test.go +++ b/parameters/validate_security_test.go @@ -291,6 +291,53 @@ components: assert.Equal(t, 1, len(errors)) } +func TestParamValidator_ValidateSecurity_MissingSecuritySchemes(t *testing.T) { + + spec := `openapi: 3.1.0 +paths: + /products: + post: + security: + - ApiKeyAuth: + - write:products +components: {} +` + + doc, _ := libopenapi.NewDocument([]byte(spec)) + + m, _ := doc.BuildV3Model() + + v := NewParameterValidator(&m.Model) + + request, _ := http.NewRequest(http.MethodPost, "https://things.com/products", nil) + valid, errors := v.ValidateSecurity(request) + assert.False(t, valid) + assert.Equal(t, 1, len(errors)) +} + +func TestParamValidator_ValidateSecurity_NoComponents(t *testing.T) { + + spec := `openapi: 3.1.0 +paths: + /products: + post: + security: + - ApiKeyAuth: + - write:products +` + + doc, _ := libopenapi.NewDocument([]byte(spec)) + + m, _ := doc.BuildV3Model() + + v := NewParameterValidator(&m.Model) + + request, _ := http.NewRequest(http.MethodPost, "https://things.com/products", nil) + valid, errors := v.ValidateSecurity(request) + assert.False(t, valid) + assert.Equal(t, 1, len(errors)) +} + func TestParamValidator_ValidateSecurity_PresetPath(t *testing.T) { spec := `openapi: 3.1.0