Add disabling handler
Add tests to disabling handler Cover 100% of disabling handler code
This commit is contained in:
parent
6192cec7d2
commit
c669c09a22
19
swagger.go
19
swagger.go
|
|
@ -1,10 +1,12 @@
|
|||
package ginSwagger
|
||||
|
||||
import (
|
||||
"golang.org/x/net/webdav"
|
||||
"html/template"
|
||||
"os"
|
||||
"regexp"
|
||||
|
||||
"golang.org/x/net/webdav"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/swaggo/swag"
|
||||
)
|
||||
|
|
@ -49,6 +51,21 @@ func WrapHandler(h *webdav.Handler) gin.HandlerFunc {
|
|||
}
|
||||
}
|
||||
|
||||
// DisablingWrapHandler turn handler off
|
||||
// if specified environment variable passed
|
||||
func DisablingWrapHandler(h *webdav.Handler, envName string) gin.HandlerFunc {
|
||||
eFlag := os.Getenv(envName)
|
||||
if eFlag != "" {
|
||||
return func(c *gin.Context) {
|
||||
// Simulate behavior when route unspecified and
|
||||
// return 404 HTTP code
|
||||
c.String(404, "")
|
||||
}
|
||||
}
|
||||
|
||||
return WrapHandler(h)
|
||||
}
|
||||
|
||||
const swagger_index_templ = `<!-- HTML for static distribution bundle build -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ginSwagger
|
|||
|
||||
import (
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
|
@ -28,7 +29,43 @@ func TestWrapHandler(t *testing.T) {
|
|||
|
||||
w4 := performRequest("GET", "/notfound", router)
|
||||
assert.Equal(t, 404, w4.Code)
|
||||
}
|
||||
|
||||
func TestDisablingWrapHandler(t *testing.T) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
router := gin.New()
|
||||
disablingKey := "SWAGGER_DISABLE"
|
||||
|
||||
router.GET("/simple/*any", DisablingWrapHandler(swaggerFiles.Handler, disablingKey))
|
||||
|
||||
w1 := performRequest("GET", "/simple/index.html", router)
|
||||
assert.Equal(t, 200, w1.Code)
|
||||
|
||||
w2 := performRequest("GET", "/simple/doc.json", router)
|
||||
assert.Equal(t, 200, w2.Code)
|
||||
|
||||
w3 := performRequest("GET", "/simple/favicon-16x16.png", router)
|
||||
assert.Equal(t, 200, w3.Code)
|
||||
|
||||
w4 := performRequest("GET", "/simple/notfound", router)
|
||||
assert.Equal(t, 404, w4.Code)
|
||||
|
||||
os.Setenv(disablingKey, "true")
|
||||
|
||||
router.GET("/disabling/*any", DisablingWrapHandler(swaggerFiles.Handler, disablingKey))
|
||||
|
||||
w11 := performRequest("GET", "/disabling/index.html", router)
|
||||
assert.Equal(t, 404, w11.Code)
|
||||
|
||||
w22 := performRequest("GET", "/disabling/doc.json", router)
|
||||
assert.Equal(t, 404, w22.Code)
|
||||
|
||||
w33 := performRequest("GET", "/disabling/favicon-16x16.png", router)
|
||||
assert.Equal(t, 404, w33.Code)
|
||||
|
||||
w44 := performRequest("GET", "/disabling/notfound", router)
|
||||
assert.Equal(t, 404, w44.Code)
|
||||
}
|
||||
|
||||
func performRequest(method, target string, router *gin.Engine) *httptest.ResponseRecorder {
|
||||
|
|
|
|||
Loading…
Reference in New Issue