package port_test import ( "io" "net/http" "net/http/httptest" "testing" "gitea.dwysokinski.me/twhelp/corev3/internal/adapter" "gitea.dwysokinski.me/twhelp/corev3/internal/app" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest" "gitea.dwysokinski.me/twhelp/corev3/internal/port" ) type apiHTTPHandlerConfig struct { options []port.APIHTTPHandlerOption } func newAPIHTTPHandler(tb testing.TB, opts ...func(cfg *apiHTTPHandlerConfig)) http.Handler { tb.Helper() cfg := &apiHTTPHandlerConfig{} for _, opt := range opts { opt(cfg) } versionRepo := adapter.NewVersionBunRepository(buntest.NewSQLiteDB(tb)) return port.NewAPIHTTPHandler( app.NewVersionService(versionRepo), cfg.options..., ) } func doRequest(h http.Handler, method, target string, body io.Reader) *http.Response { return doCustomRequest(h, httptest.NewRequest(method, target, body)) } func doCustomRequest(h http.Handler, r *http.Request) *http.Response { rr := httptest.NewRecorder() h.ServeHTTP(rr, r) return rr.Result() }