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  }