Files
codit/backend/internal/http/router_test.go

38 lines
1.0 KiB
Go

package httpx
import "net/http"
import "net/http/httptest"
import "testing"
func TestRouterMatchWithParams(t *testing.T) {
var router *Router
var recorder *httptest.ResponseRecorder
var req *http.Request
router = NewRouter()
router.Handle("GET", "/api/repos/:id", func(w http.ResponseWriter, _ *http.Request, params Params) {
if params["id"] != "abc" {
t.Fatalf("unexpected route param: %s", params["id"])
}
w.WriteHeader(http.StatusNoContent)
})
recorder = httptest.NewRecorder()
req = httptest.NewRequest(http.MethodGet, "/api/repos/abc", nil)
router.ServeHTTP(recorder, req)
if recorder.Code != http.StatusNoContent {
t.Fatalf("unexpected status: %d", recorder.Code)
}
}
func TestRouterNotFound(t *testing.T) {
var router *Router
var recorder *httptest.ResponseRecorder
var req *http.Request
router = NewRouter()
recorder = httptest.NewRecorder()
req = httptest.NewRequest(http.MethodGet, "/missing", nil)
router.ServeHTTP(recorder, req)
if recorder.Code != http.StatusNotFound {
t.Fatalf("expected 404, got %d", recorder.Code)
}
}