Quantcast
Viewing all articles
Browse latest Browse all 3667

Getting 404 Error when passing params to URL using Chi router in Golang

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?


Viewing all articles
Browse latest Browse all 3667

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>