github.com/soulteary/pocket-bookcase@v0.0.0-20240428065142-0b5a9a0fc98a/internal/http/routes/frontend_test.go (about) 1 package routes 2 3 import ( 4 "context" 5 "net/http" 6 "net/http/httptest" 7 "testing" 8 9 "github.com/gin-gonic/gin" 10 "github.com/sirupsen/logrus" 11 "github.com/soulteary/pocket-bookcase/internal/http/templates" 12 "github.com/soulteary/pocket-bookcase/internal/testutil" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestFrontendRoutes(t *testing.T) { 17 logger := logrus.New() 18 19 cfg, _ := testutil.GetTestConfigurationAndDependencies(t, context.Background(), logger) 20 21 g := gin.Default() 22 templates.SetupTemplates(g) 23 24 router := NewFrontendRoutes(logger, cfg) 25 router.Setup(g) 26 27 t.Run("/", func(t *testing.T) { 28 w := httptest.NewRecorder() 29 req, _ := http.NewRequest("GET", "/", nil) 30 g.ServeHTTP(w, req) 31 require.Equal(t, 200, w.Code) 32 }) 33 34 t.Run("/login", func(t *testing.T) { 35 w := httptest.NewRecorder() 36 req, _ := http.NewRequest("GET", "/login", nil) 37 g.ServeHTTP(w, req) 38 require.Equal(t, 200, w.Code) 39 }) 40 41 t.Run("/css/style.css", func(t *testing.T) { 42 w := httptest.NewRecorder() 43 req, _ := http.NewRequest("GET", "/assets/css/style.css", nil) 44 g.ServeHTTP(w, req) 45 require.Equal(t, 200, w.Code) 46 }) 47 }