I'm trying to pass url parameter into endpoint but getting 404 page not found error when trying to run test or send request via Postman.
My method with routes:
func NewListRoutes( r *chi.Mux, log *slog.Logger, jwt *jwtoken.TokenService, usecase port.ListUsecase,) { c := &listController{ logger: log, jwt: jwt, usecase: usecase, } // Protected routes r.Group(func(r chi.Router) { r.Use(jwtoken.Verifier(jwt)) r.Use(jwtoken.Authenticator()) r.Route("/user/lists", func(r chi.Router) { r.Get("/", c.GetListsByUserID()) r.Post("/", c.CreateList()) r.Route("/{list_id}", func(r chi.Router) { r.Get("/", c.GetListByID()) r.Put("/", c.UpdateList()) r.Delete("/", c.DeleteList()) }) }) })}
My test:
func TestGetListByID_HappyPath(t *testing.T) { u := url.URL{ Scheme: "http", Host: host, } e := httpexpect.Default(t, u.String()) // Register user r := e.POST("/register"). WithJSON(model.UserRequestData{ Email: gofakeit.Email(), Password: randomFakePassword(), }). Expect(). Status(http.StatusCreated). JSON().Object() accessToken := r.Value(jwtoken.AccessTokenKey).String().Raw() t.Log(accessToken) // Create list c := e.POST("/user/lists/"). WithHeader("Authorization", "Bearer "+accessToken). WithJSON(model.ListRequestData{ Title: gofakeit.Word(), }). Expect(). Status(http.StatusCreated). JSON().Object() listID := c.Value("data").Object().Value("id").String().Raw() t.Log(listID) // Get list by ID getListResp := e.GET("/user/lists/{list_id}"). WithPath("list_id", listID). WithHeader("Authorization", "Bearer "+accessToken). Expect(). Status(http.StatusOK). JSON().Object().NotEmpty() t.Log(getListResp.Raw())}
=== RUN TestGetListByID_HappyPath printer.go:57: POST http://localhost:8082/register get_list_test.go:31: printer.go:57: POST http://localhost:8082/user/lists/ get_list_test.go:45: 2gqBx2IyOcrXwvJi97stAdpdpIG printer.go:57: GET http://localhost:8082/user/lists/2gqBx2IyOcrXwvJi97stAdpdpIG reporter.go:24: Error: unexpected http status value test name: TestGetListByID_HappyPath request: GET /user/lists/2gqBx2IyOcrXwvJi97stAdpdpIG HTTP/1.1 Host: localhost:8082 Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Im9nemoxTEhQZHdfY1V1S1p1TVF0a1hKTkxHaz0iLCJ0eXAiOiJKV1QifQ.eyJhcHBfaWQiOjEsImVtYWlsIjoibGVyYXRlcnJ5QGJyZWl0ZW5iZXJnLmluZm8iLCJleHAiOjE3MTY0MTYzNjksImlzcyI6InNzby5yc2hlbGVraG92LmNvbSIsInVzZXJfaWQiOiIyZ3FCeDBUOE83cllrczJvaFBLdkJNNkpGOWkifQ.mZPy2cnp133IJs78AjL_B5q17vkIKtfWBHH0F8hLDTsYWHhAQ8CDgI7QwmusnNNR6ktkrouhncp53IMDoGi7NACbtWigA22K2XIZXJOKMKYzVGAUEkCV3gdFeDnWWX9-isyPXZvH1YS_XXjaqrjsEgQWRIl7Kd1j8M9vLTjiHoJJU3eWTADrxe5BJWvFZ9286ePJKUVWoCrm1fN3Xi_i7U9QL2FLVTYwa-9Q6BOo5d1hHtjfgS6HoRA3y6-EpIC2DLfxO78CgU6Pwpore8TrkAvqTK2yIzV7jPUgrM5dWjxaxZt4aQAy_aSYqJWGPUMthrJg_5_ZXk-uFa6sCKXnUw Cookie: refresh_token=2gqBwxbSh7ZUo3UlCHKWarn0KQd response: HTTP/1.1 404 Not Found 228.666µs Content-Length: 19 Content-Type: text/plain; charset=utf-8 Date: Wed, 22 May 2024 22:04:29 GMT X-Content-Type-Options: nosniff X-Ratelimit-Limit: 100 X-Ratelimit-Remaining: 98 X-Ratelimit-Reset: 1716415500 assertion: Request("GET").Expect().Status() expected value:"200 OK" actual value:"404 Not Found" Test: TestGetListByID_HappyPath get_list_test.go:55: map[]--- FAIL: TestGetListByID_HappyPath (0.13s)
In logs I see that other requests work correctly (registering user, creating list), but with url param I have this issue.
What I did wrong?