42 lines
991 B
Go
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
|
|
}
|