123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package handler
- import (
- "bytes"
- "flag"
- "fmt"
- "github.com/gavv/httpexpect/v2"
- "github.com/gin-gonic/gin"
- "github.com/go-nunu/nunu-layout-advanced/internal/handler"
- "github.com/go-nunu/nunu-layout-advanced/internal/middleware"
- "github.com/go-nunu/nunu-layout-advanced/pkg/config"
- jwt2 "github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
- "github.com/go-nunu/nunu-layout-advanced/pkg/log"
- "net/http"
- "net/http/httptest"
- "os"
- "path/filepath"
- "testing"
- "time"
- )
- var (
- userId = "xxx"
- )
- var logger *log.Logger
- var hdl *handler.Handler
- var jwt *jwt2.JWT
- var router *gin.Engine
- func TestMain(m *testing.M) {
- fmt.Println("begin")
- err := os.Setenv("APP_CONF", "../../../config/local.yml")
- if err != nil {
- fmt.Println("Setenv error", err)
- }
- var envConf = flag.String("conf", "config/local.yml", "config path, eg: -conf ./config/local.yml")
- flag.Parse()
- conf := config.NewConfig(*envConf)
- // modify log directory
- logPath := filepath.Join("../../../", conf.GetString("log.log_file_name"))
- conf.Set("log.log_file_name", logPath)
- logger = log.NewLog(conf)
- hdl = handler.NewHandler(logger)
- jwt = jwt2.NewJwt(conf)
- gin.SetMode(gin.TestMode)
- router = gin.Default()
- router.Use(
- middleware.CORSMiddleware(),
- middleware.ResponseLogMiddleware(logger),
- middleware.RequestLogMiddleware(logger),
- //middleware.SignMiddleware(log),
- )
- code := m.Run()
- fmt.Println("test end")
- os.Exit(code)
- }
- func performRequest(r http.Handler, method, path string, body *bytes.Buffer) *httptest.ResponseRecorder {
- req, _ := http.NewRequest(method, path, body)
- resp := httptest.NewRecorder()
- r.ServeHTTP(resp, req)
- return resp
- }
- func genToken(t *testing.T) string {
- token, err := jwt.GenToken(userId, time.Now().Add(time.Hour*24*90))
- if err != nil {
- t.Error(err)
- return token
- }
- return token
- }
- func newHttpExcept(t *testing.T, router *gin.Engine) *httpexpect.Expect {
- return httpexpect.WithConfig(httpexpect.Config{
- Client: &http.Client{
- Transport: httpexpect.NewBinder(router),
- Jar: httpexpect.NewCookieJar(),
- },
- Reporter: httpexpect.NewAssertReporter(t),
- Printers: []httpexpect.Printer{
- // httpexpect.NewDebugPrinter(t, true),
- },
- })
- }
|