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!
Marked As Solved
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".
config :my_app, MyAppWeb.Endpoint,
http: [ip: {127, 0, 0, 1}, port: 4002],
url: [path: "/"],
Also Liked
sodapopcan
If it is a bug, can you manually manipulate %Conn{} for now to set whatever :at sets? I do a similar thing when testing subdomain routes:
def admin_live(%{conn: conn}) do
conn = %{conn | host: "admin.myapp.local"}
%{conn: conn}
end
# ...
setup :admin_live
Popular in Questions
Other popular 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
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








