Files

42 lines
991 B
Go

package main
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/FernandoVideira/LK_API_Temp/internal/auth"
"github.com/FernandoVideira/LK_API_Temp/internal/ratelimiter"
"github.com/FernandoVideira/LK_API_Temp/internal/store"
"github.com/FernandoVideira/LK_API_Temp/internal/store/cache"
"go.uber.org/zap"
)
func newTestApi(t *testing.T, cfg config) *api {
t.Helper()
logger := zap.NewNop().Sugar()
mockStore := store.NewMockStorage()
mockCache := cache.NewMockCache()
testAuth := &auth.TestAuthenticator{}
rateLimiter := ratelimiter.NewFixedWindowLimiter(
cfg.rateLimiter.RequestsPerTimeFrame,
cfg.rateLimiter.TimeFrame,
)
return &api{
logger: logger,
store: mockStore,
cacheStore: mockCache,
authenticator: testAuth,
config: cfg,
rateLimiter: rateLimiter,
}
}
func executeRequest(req *http.Request, mux http.Handler) *httptest.ResponseRecorder {
rr := httptest.NewRecorder()
mux.ServeHTTP(rr, req)
return rr
}