home/internal/entry/delivery/http/entry_http_test.go

43 lines
1.1 KiB
Go

package http_test
import (
"net/http"
"net/http/httptest"
"testing"
"source.toby3d.me/toby3d/home/internal/common"
"source.toby3d.me/toby3d/home/internal/domain"
delivery "source.toby3d.me/toby3d/home/internal/entry/delivery/http"
entryucase "source.toby3d.me/toby3d/home/internal/entry/usecase"
siteucase "source.toby3d.me/toby3d/home/internal/site/usecase"
"source.toby3d.me/toby3d/home/internal/testutil"
)
func TestHandler_ServeHTTP(t *testing.T) {
t.Parallel()
testEntry := domain.TestEntry(t)
for name, path := range map[string]string{
"person": "/",
"note": testEntry.File.Path(),
} {
name, path := name, path
t.Run(name, func(t *testing.T) {
t.Parallel()
req := httptest.NewRequest(http.MethodGet, "https://example.com/"+path, nil)
req.Header.Set(common.HeaderAccept, common.MIMEApplicationLdJSONProfile)
w := httptest.NewRecorder()
delivery.NewHandler(
siteucase.NewStubSiteUseCase(domain.TestSite(t), nil),
entryucase.NewStubEntryUseCase(domain.TestEntry(t), nil),
).ServeHTTP(w, req)
testutil.GoldenEqual(t, w.Result().Body)
})
}
}