Somebody25
ConnCase tests with different root path verified-routes warnings
Hello!
I have created an api application with phoenix 1.7.2 . I have to change the root path for the application because it is located behind a reverse proxy. To achieve this I made the following changes:
In the config.exs I change the Endpoint configuration by adding the path
config :my_app, MyAppWeb.Endpoint,
url: [host: "localhost", path: "/v2"]
Then I configure static resources by changing the plug in endpoint.ex
plug Plug.Static,
at: "/v2",
from: :my_app,
gzip: false,
only: MyAppWeb.static_paths()
(Even though it is a api webservice, it has a static page if you access it in a browser)
Finally I added a scope to the router.ex
scope "/v2" do
scope "/", MyAppWeb do
pipe_through :browser
get "/", PageController, :home
end
scope "/api", MyAppWeb do
pipe_through :api
post "/stuff", StuffController, :post
get "/stuff", StuffController, :get
end
end
This works but when I try to write tests for this configuration, I get lots of verified-routes warning. My issues is, when I use the route like ~p"/api/stuff" the tests execute successfully but produce warnings link warning: no route path for MyApp.Router matches "/api/stuff". When I change the url to incorporate the different root ~p"/v2/api/stuff", the warning is gone but it doesn’t work anymore because the p sigil is resolved to /v2/v2/license/activate.
I’m sure I am just missing some configuration somewhere but I cant figure out where.
Thanks for your help!
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #performance











First 3 of 3 Posts
LostKobrakai
I’d suggest creating an issue on github about that. It sounds like a setup not well considered with verified routes.
sodapopcan
If it is a bug, can you manually manipulate
%Conn{}for now to set whatever:atsets? I do a similar thing when testing subdomain routes:Somebody25
I fixed the issue by overriding the :path attribute of the Endpoint with
"/"in the test configuration. The subpath has to be included in the sigil then~p"/v2/api/stuff".Thanks to: ConnCase tests with different root path verified-routes warnings · Issue #5476 · phoenixframework/phoenix · GitHub