chore(lint): add golang lint config

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu 2022-01-02 14:21:40 +08:00
parent 0b63c38653
commit 7756450638
2 changed files with 59 additions and 14 deletions

43
.golangci.yml Normal file
View File

@ -0,0 +1,43 @@
linters:
enable-all: false
disable-all: true
fast: false
enable:
- bodyclose
- deadcode
- depguard
- dogsled
- dupl
- errcheck
- exportloopref
- exhaustive
- gochecknoinits
- goconst
- gocritic
- gocyclo
- gofmt
- goimports
- goprintffuncname
- gosec
- gosimple
- govet
- ineffassign
- lll
- misspell
- nakedret
- noctx
- nolintlint
- rowserrcheck
- staticcheck
- structcheck
- stylecheck
- typecheck
- unconvert
- unparam
- unused
- varcheck
- whitespace
- gofumpt
run:
timeout: 3m

View File

@ -1,6 +1,7 @@
package static package static
import ( import (
"context"
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"net/http/httptest" "net/http/httptest"
@ -13,8 +14,9 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
// nolint:unparam
func performRequest(r http.Handler, method, path string) *httptest.ResponseRecorder { func performRequest(r http.Handler, method, path string) *httptest.ResponseRecorder {
req, _ := http.NewRequest(method, path, nil) req, _ := http.NewRequestWithContext(context.Background(), method, path, nil)
w := httptest.NewRecorder() w := httptest.NewRecorder()
r.ServeHTTP(w, req) r.ServeHTTP(w, req)
return w return w
@ -36,33 +38,33 @@ func TestEmptyDirectory(t *testing.T) {
router := gin.New() router := gin.New()
router.Use(ServeRoot("/", dir)) router.Use(ServeRoot("/", dir))
router.GET("/", func(c *gin.Context) { router.GET("/", func(c *gin.Context) {
c.String(200, "index") c.String(http.StatusOK, "index")
}) })
router.GET("/a", func(c *gin.Context) { router.GET("/a", func(c *gin.Context) {
c.String(200, "a") c.String(http.StatusOK, "a")
}) })
router.GET("/"+filename, func(c *gin.Context) { router.GET("/"+filename, func(c *gin.Context) {
c.String(200, "this is not printed") c.String(http.StatusOK, "this is not printed")
}) })
w := performRequest(router, "GET", "/") w := performRequest(router, "GET", "/")
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "index") assert.Equal(t, w.Body.String(), "index")
w = performRequest(router, "GET", "/"+filename) w = performRequest(router, "GET", "/"+filename)
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "Gin Web Framework") assert.Equal(t, w.Body.String(), "Gin Web Framework")
w = performRequest(router, "GET", "/"+filename+"a") w = performRequest(router, "GET", "/"+filename+"a")
assert.Equal(t, w.Code, 404) assert.Equal(t, w.Code, 404)
w = performRequest(router, "GET", "/a") w = performRequest(router, "GET", "/a")
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "a") assert.Equal(t, w.Body.String(), "a")
router2 := gin.New() router2 := gin.New()
router2.Use(ServeRoot("/static", dir)) router2.Use(ServeRoot("/static", dir))
router2.GET("/"+filename, func(c *gin.Context) { router2.GET("/"+filename, func(c *gin.Context) {
c.String(200, "this is printed") c.String(http.StatusOK, "this is printed")
}) })
w = performRequest(router2, "GET", "/") w = performRequest(router2, "GET", "/")
@ -71,18 +73,18 @@ func TestEmptyDirectory(t *testing.T) {
w = performRequest(router2, "GET", "/static") w = performRequest(router2, "GET", "/static")
assert.Equal(t, w.Code, 404) assert.Equal(t, w.Code, 404)
router2.GET("/static", func(c *gin.Context) { router2.GET("/static", func(c *gin.Context) {
c.String(200, "index") c.String(http.StatusOK, "index")
}) })
w = performRequest(router2, "GET", "/static") w = performRequest(router2, "GET", "/static")
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
w = performRequest(router2, "GET", "/"+filename) w = performRequest(router2, "GET", "/"+filename)
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "this is printed") assert.Equal(t, w.Body.String(), "this is printed")
w = performRequest(router2, "GET", "/static/"+filename) w = performRequest(router2, "GET", "/static/"+filename)
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "Gin Web Framework") assert.Equal(t, w.Body.String(), "Gin Web Framework")
} }
@ -106,7 +108,7 @@ func TestIndex(t *testing.T) {
assert.Equal(t, w.Code, 301) assert.Equal(t, w.Code, 301)
w = performRequest(router, "GET", "/") w = performRequest(router, "GET", "/")
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "index") assert.Equal(t, w.Body.String(), "index")
} }
@ -126,7 +128,7 @@ func TestListIndex(t *testing.T) {
router.Use(Serve("/", LocalFile(dir, true))) router.Use(Serve("/", LocalFile(dir, true)))
w := performRequest(router, "GET", "/"+filename) w := performRequest(router, "GET", "/"+filename)
assert.Equal(t, w.Code, 200) assert.Equal(t, w.Code, http.StatusOK)
assert.Equal(t, w.Body.String(), "Gin Web Framework") assert.Equal(t, w.Body.String(), "Gin Web Framework")
w = performRequest(router, "GET", "/") w = performRequest(router, "GET", "/")