-
Notifications
You must be signed in to change notification settings - Fork 2.9k
/
Copy pathphx.routes_test.exs
46 lines (37 loc) · 1.45 KB
/
phx.routes_test.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Code.require_file "../../../installer/test/mix_helper.exs", __DIR__
defmodule PhoenixTest.Web.Router do
use Phoenix.Router
get "/", PageController, :index, as: :page
end
defmodule PhoenixTestOld.Router do
use Phoenix.Router
get "/old", PageController, :index, as: :page
end
defmodule Mix.Tasks.Phx.RoutesTest do
use ExUnit.Case, async: true
test "format routes for specific router" do
Mix.Tasks.Phx.Routes.run(["PhoenixTest.Web.Router"])
assert_received {:mix_shell, :info, [routes]}
assert routes =~ "page_path GET / PageController :index"
end
test "prints error when explicit router cannot be found" do
assert_raise Mix.Error, "the provided router, Foo.UnknownBar.CantFindBaz, does not exist", fn ->
Mix.Tasks.Phx.Routes.run(["Foo.UnknownBar.CantFindBaz"])
end
end
test "prints error when implicit router cannot be found" do
assert_raise Mix.Error, ~r/no router found at Foo.Web.Router or Foo.Router/, fn ->
Mix.Tasks.Phx.Routes.run([], Foo)
end
end
test "implicit router detection for web namescape" do
Mix.Tasks.Phx.Routes.run([], PhoenixTest)
assert_received {:mix_shell, :info, [routes]}
assert routes =~ "page_path GET / PageController :index"
end
test "implicit router detection fallback for old namescape" do
Mix.Tasks.Phx.Routes.run([], PhoenixTestOld)
assert_received {:mix_shell, :info, [routes]}
assert routes =~ "page_path GET /old PageController :index"
end
end