github.com/soulteary/pocket-bookcase@v0.0.0-20240428065142-0b5a9a0fc98a/internal/http/routes/swagger_test.go (about) 1 package routes 2 3 import ( 4 "net/http/httptest" 5 "testing" 6 7 "github.com/gin-gonic/gin" 8 "github.com/sirupsen/logrus" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestSwaggerRoutes(t *testing.T) { 13 logger := logrus.New() 14 15 g := gin.Default() 16 17 router := NewSwaggerAPIRoutes(logger) 18 router.Setup(g.Group("/swagger")) 19 20 t.Run("/swagger/doc.json", func(t *testing.T) { 21 w := httptest.NewRecorder() 22 req := httptest.NewRequest("GET", "/swagger/doc.json", nil) 23 g.ServeHTTP(w, req) 24 require.Equal(t, 200, w.Code) 25 }) 26 27 t.Run("/swagger/ redirects", func(t *testing.T) { 28 w := httptest.NewRecorder() 29 req := httptest.NewRequest("GET", "/swagger/", nil) 30 g.ServeHTTP(w, req) 31 require.Equal(t, 302, w.Code) 32 require.Equal(t, "/swagger/index.html", w.Header().Get("Location")) 33 }) 34 35 t.Run("/swagger redirects", func(t *testing.T) { 36 w := httptest.NewRecorder() 37 req := httptest.NewRequest("GET", "/swagger/", nil) 38 g.ServeHTTP(w, req) 39 require.Equal(t, 302, w.Code) 40 require.Equal(t, "/swagger/index.html", w.Header().Get("Location")) 41 }) 42 }