Fix incorrect params when building controller redirect route url.

This commit is contained in:
mikestefanello 2022-07-08 09:58:42 -04:00
parent 0cc95d4c64
commit fb55c3453b
2 changed files with 7 additions and 3 deletions

View File

@ -152,7 +152,7 @@ func (c *Controller) cachePage(ctx echo.Context, page Page, html *bytes.Buffer)
// Redirect redirects to a given route name with optional route parameters
func (c *Controller) Redirect(ctx echo.Context, route string, routeParams ...interface{}) error {
url := ctx.Echo().Reverse(route, routeParams)
url := ctx.Echo().Reverse(route, routeParams...)
if htmx.GetRequest(ctx).Boosted {
htmx.Response{

View File

@ -43,11 +43,15 @@ func TestMain(m *testing.M) {
}
func TestController_Redirect(t *testing.T) {
c.Web.GET("/path/:first/and/:second", func(c echo.Context) error {
return nil
}).Name = "redirect-test"
ctx, _ := tests.NewContext(c.Web, "/abc")
ctr := NewController(c)
err := ctr.Redirect(ctx, "home")
err := ctr.Redirect(ctx, "redirect-test", "one", "two")
require.NoError(t, err)
assert.Equal(t, "", ctx.Response().Header().Get(echo.HeaderLocation))
assert.Equal(t, "/path/one/and/two", ctx.Response().Header().Get(echo.HeaderLocation))
assert.Equal(t, http.StatusFound, ctx.Response().Status)
}