ozzo-routing icon indicating copy to clipboard operation
ozzo-routing copied to clipboard

NewContext() is not populating parameters from provided URL

Open drauschenbach opened this issue 7 years ago • 0 comments

I'm trying to write a unit test, as I would in Express+Supertest. I'm finding that when I provide a test URL, that the parameters are not parsed.

import (
	"context"
	"net/http"
	"net/http/httptest"
	"testing"

	"github.com/go-ozzo/ozzo-routing"
	"github.com/go-ozzo/ozzo-routing/content"
	"github.com/stretchr/testify/assert"
)

func TestContextParamsPopulatedByOzzo(test *testing.T) {
	assert := assert.New(test)

	// Initialize app
	router := routing.New()
	router.Get("/test/<id>", routing.NotFoundHandler)

	// Mock up a request
	res := httptest.NewRecorder()
	req, err := http.NewRequest("GET", "/test/23", nil)
	assert.NoError(err)

	// Mock up a routing context
	routeCtx := routing.NewContext(res, req)

	// Sanity check
	assert.Equal("23", routeCtx.Param("id"))
}

drauschenbach avatar Jul 21 '17 19:07 drauschenbach