package server_test import ( "net/http" "net/http/httptest" "testing" "testing/fstest" "github.com/gin-gonic/gin" "iblog/internal/server" ) func init() { gin.SetMode(gin.TestMode) } func TestEmbedHandler_ServesFile(t *testing.T) { fsys := fstest.MapFS{ "root/hello.js": {Data: []byte(`console.log("hi")`)}, } r := gin.New() r.GET("/assets/*filepath", server.EmbedHandler(fsys, "root")) w := httptest.NewRecorder() r.ServeHTTP(w, httptest.NewRequest("GET", "/assets/hello.js", nil)) if w.Code != http.StatusOK { t.Fatalf("expected 200, got %d: %s", w.Code, w.Body.String()) } if got := w.Body.String(); got != `console.log("hi")` { t.Fatalf("unexpected body: %q", got) } } func TestEmbedHandler_NotFound(t *testing.T) { fsys := fstest.MapFS{} r := gin.New() r.GET("/assets/*filepath", server.EmbedHandler(fsys, "root")) w := httptest.NewRecorder() r.ServeHTTP(w, httptest.NewRequest("GET", "/assets/missing.js", nil)) if w.Code != http.StatusNotFound { t.Fatalf("expected 404, got %d", w.Code) } }