Skip to content

Commit 3319b6b

Browse files
feat: regulation (#91)
1 parent d572bfc commit 3319b6b

File tree

5 files changed

+120
-120
lines changed

5 files changed

+120
-120
lines changed

lib/ares_web/components/navbar.ex

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ defmodule AresWeb.Components.Navbar do
2424
<div class="flex items-center gap-4 sm:gap-6">
2525
<nav class="hidden sm:block">
2626
<ul class="flex items-center gap-4 lg:gap-6">
27-
<li>
27+
<!--<li>
2828
<.link
2929
class="hover:text-primary transition-colors"
3030
target="_blank"
3131
href="/docs/survival-guide.pdf"
3232
>
3333
Survival Guide
3434
</.link>
35-
</li>
35+
</li> -->
3636
<li>
3737
<.link
3838
class="hover:text-primary transition-colors"
@@ -55,14 +55,14 @@ defmodule AresWeb.Components.Navbar do
5555
Previous edition
5656
</.link>
5757
</li>
58-
<%!-- <li>
58+
<li>
5959
<.link
6060
class="hover:text-primary transition-colors"
6161
navigate="/app/team-formation"
6262
>
6363
Teams
6464
</.link>
65-
</li> --%>
65+
</li>
6666
<%= if @user && @user.is_admin do %>
6767
<li>
6868
<.link
@@ -107,12 +107,12 @@ defmodule AresWeb.Components.Navbar do
107107
</.link>
108108
</div>
109109
<% else %>
110-
<%!-- <.link
110+
<.link
111111
navigate="/register"
112112
class="rounded-full px-3 py-2 text-sm font-semibold text-white shadow-sm ring-1 ring-inset ring-white hover:ring-primary hover:text-primary transition-all"
113113
>
114114
Register
115-
</.link> --%>
115+
</.link>
116116
<% end %>
117117
</li>
118118
</ul>
@@ -183,12 +183,12 @@ defmodule AresWeb.Components.Navbar do
183183
Profile
184184
</.link>
185185
<% else %>
186-
<%!-- <.link
186+
<.link
187187
class="block py-3 sm:py-4 text-center text-lg sm:text-xl hover:text-primary transition-colors"
188188
href="/register"
189189
>
190190
Register
191-
</.link> --%>
191+
</.link>
192192
<% end %>
193193
</li>
194194
<%= if @user do %>
@@ -220,14 +220,14 @@ defmodule AresWeb.Components.Navbar do
220220
</.link>
221221
</li>
222222
<% end %>
223-
<li>
223+
<!--<li>
224224
<.link
225225
class="block py-3 sm:py-4 text-center text-lg sm:text-xl hover:text-primary transition-colors"
226226
href="/docs/survival-guide.pdf"
227227
>
228228
Survival Guide
229229
</.link>
230-
</li>
230+
</li> -->
231231
<li>
232232
<a
233233
class="block py-3 sm:py-4 text-center text-lg sm:text-xl hover:text-primary transition-colors"
@@ -252,14 +252,14 @@ defmodule AresWeb.Components.Navbar do
252252
Previous edition
253253
</.link>
254254
</li>
255-
<%!-- <li>
255+
<li>
256256
<.link
257257
class="block py-3 sm:py-4 text-center text-lg sm:text-xl hover:text-primary transition-colors"
258258
navigate="/app/team-formation"
259259
>
260260
Team formation
261261
</.link>
262-
</li> --%>
262+
</li>
263263
</ul>
264264
</nav>
265265
</div>

lib/ares_web/router.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ defmodule AresWeb.Router do
7575

7676
live_session :current_user,
7777
on_mount: [{AresWeb.UserAuth, :mount_current_scope}] do
78-
# live "/register", UserLive.Registration, :new
78+
live "/register", UserLive.Registration, :new
7979
live "/log-in", UserLive.Login, :new
8080
live "/log-in/:token", UserLive.Confirmation, :new
8181
end

priv/static/docs/regulation.pdf

149 KB
Binary file not shown.

test/ares_web/live/user_live/login_test.exs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -75,19 +75,19 @@ defmodule AresWeb.UserLive.LoginTest do
7575
end
7676
end
7777

78-
# describe "login navigation" do
79-
# test "redirects to registration page when the Register button is clicked", %{conn: conn} do
80-
# {:ok, lv, _html} = live(conn, ~p"/log-in")
81-
82-
# {:ok, _login_live, login_html} =
83-
# lv
84-
# |> element("main a", "Register")
85-
# |> render_click()
86-
# |> follow_redirect(conn, ~p"/register")
87-
88-
# assert login_html =~ "Register"
89-
# end
90-
# end
78+
describe "login navigation" do
79+
test "redirects to registration page when the Register button is clicked", %{conn: conn} do
80+
{:ok, lv, _html} = live(conn, ~p"/log-in")
81+
82+
{:ok, _login_live, login_html} =
83+
lv
84+
|> element("main a", "Register")
85+
|> render_click()
86+
|> follow_redirect(conn, ~p"/register")
87+
88+
assert login_html =~ "Register"
89+
end
90+
end
9191

9292
describe "re-authentication (sudo mode)" do
9393
setup %{conn: conn} do
Lines changed: 94 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,98 @@
11
defmodule AresWeb.UserLive.RegistrationTest do
22
use AresWeb.ConnCase, async: true
33

4-
# import Phoenix.LiveViewTest
5-
# import Ares.AccountsFixtures
6-
7-
# describe "Registration page" do
8-
# test "renders registration page", %{conn: conn} do
9-
# {:ok, _lv, html} = live(conn, ~p"/register")
10-
11-
# assert html =~ "Registration"
12-
# assert html =~ "Log in"
13-
# end
14-
15-
# test "redirects if already logged in", %{conn: conn} do
16-
# result =
17-
# conn
18-
# |> log_in_user(user_fixture())
19-
# |> live(~p"/register")
20-
# |> follow_redirect(conn, ~p"/")
21-
22-
# assert {:ok, _conn} = result
23-
# end
24-
25-
# test "renders errors for invalid data", %{conn: conn} do
26-
# {:ok, lv, _html} = live(conn, ~p"/register")
27-
28-
# result =
29-
# lv
30-
# |> element("#registration_form")
31-
# |> render_change(user: %{"email" => "with spaces"})
32-
33-
# assert result =~ "Registration"
34-
# assert result =~ "must have the @ sign and no spaces"
35-
# end
36-
# end
37-
38-
# describe "register user" do
39-
# test "creates account but does not log in", %{conn: conn} do
40-
# {:ok, lv, _html} = live(conn, ~p"/register")
41-
42-
# email = unique_user_email()
43-
# form = form(lv, "#registration_form", user: valid_user_attributes(email: email))
44-
45-
# fi =
46-
# file_input(lv, "#registration_form", :cv, [
47-
# %{name: "cv.pdf", content: "dummy", type: "application/pdf"}
48-
# ])
49-
50-
# render_upload(fi, "cv.pdf")
51-
52-
# {:ok, _lv, html} =
53-
# render_submit(form)
54-
# |> follow_redirect(conn, ~p"/log-in")
55-
56-
# assert html =~
57-
# ~r/An email was sent to .*, please access it to confirm your account/
58-
# end
59-
60-
# test "renders errors for duplicated email", %{conn: conn} do
61-
# {:ok, lv, _html} = live(conn, ~p"/register")
62-
63-
# user = user_fixture(%{email: "[email protected]"})
64-
65-
# result =
66-
# lv
67-
# |> form("#registration_form",
68-
# user: %{"email" => user.email}
69-
# )
70-
# |> then(fn form ->
71-
# fi =
72-
# file_input(lv, "#registration_form", :cv, [
73-
# %{name: "cv.pdf", content: "dummy", type: "application/pdf"}
74-
# ])
75-
76-
# render_upload(fi, "cv.pdf")
77-
# form
78-
# end)
79-
# |> render_submit()
80-
81-
# assert result =~ "has already been taken"
82-
# end
83-
# end
84-
85-
# describe "registration navigation" do
86-
# test "redirects to login page when the Log in button is clicked", %{conn: conn} do
87-
# {:ok, lv, _html} = live(conn, ~p"/register")
88-
89-
# {:ok, _login_live, login_html} =
90-
# lv
91-
# |> element("main a", "Log in")
92-
# |> render_click()
93-
# |> follow_redirect(conn, ~p"/log-in")
94-
95-
# assert login_html =~ "Log in"
96-
# end
97-
# end
4+
import Phoenix.LiveViewTest
5+
import Ares.AccountsFixtures
6+
7+
describe "Registration page" do
8+
test "renders registration page", %{conn: conn} do
9+
{:ok, _lv, html} = live(conn, ~p"/register")
10+
11+
assert html =~ "Registration"
12+
assert html =~ "Log in"
13+
end
14+
15+
test "redirects if already logged in", %{conn: conn} do
16+
result =
17+
conn
18+
|> log_in_user(user_fixture())
19+
|> live(~p"/register")
20+
|> follow_redirect(conn, ~p"/")
21+
22+
assert {:ok, _conn} = result
23+
end
24+
25+
test "renders errors for invalid data", %{conn: conn} do
26+
{:ok, lv, _html} = live(conn, ~p"/register")
27+
28+
result =
29+
lv
30+
|> element("#registration_form")
31+
|> render_change(user: %{"email" => "with spaces"})
32+
33+
assert result =~ "Registration"
34+
assert result =~ "must have the @ sign and no spaces"
35+
end
36+
end
37+
38+
describe "register user" do
39+
test "creates account but does not log in", %{conn: conn} do
40+
{:ok, lv, _html} = live(conn, ~p"/register")
41+
42+
email = unique_user_email()
43+
form = form(lv, "#registration_form", user: valid_user_attributes(email: email))
44+
45+
fi =
46+
file_input(lv, "#registration_form", :cv, [
47+
%{name: "cv.pdf", content: "dummy", type: "application/pdf"}
48+
])
49+
50+
render_upload(fi, "cv.pdf")
51+
52+
{:ok, _lv, html} =
53+
render_submit(form)
54+
|> follow_redirect(conn, ~p"/log-in")
55+
56+
assert html =~
57+
~r/An email was sent to .*, please access it to confirm your account/
58+
end
59+
60+
test "renders errors for duplicated email", %{conn: conn} do
61+
{:ok, lv, _html} = live(conn, ~p"/register")
62+
63+
user = user_fixture(%{email: "[email protected]"})
64+
65+
result =
66+
lv
67+
|> form("#registration_form",
68+
user: %{"email" => user.email}
69+
)
70+
|> then(fn form ->
71+
fi =
72+
file_input(lv, "#registration_form", :cv, [
73+
%{name: "cv.pdf", content: "dummy", type: "application/pdf"}
74+
])
75+
76+
render_upload(fi, "cv.pdf")
77+
form
78+
end)
79+
|> render_submit()
80+
81+
assert result =~ "has already been taken"
82+
end
83+
end
84+
85+
describe "registration navigation" do
86+
test "redirects to login page when the Log in button is clicked", %{conn: conn} do
87+
{:ok, lv, _html} = live(conn, ~p"/register")
88+
89+
{:ok, _login_live, login_html} =
90+
lv
91+
|> element("main a", "Log in")
92+
|> render_click()
93+
|> follow_redirect(conn, ~p"/log-in")
94+
95+
assert login_html =~ "Log in"
96+
end
97+
end
9898
end

0 commit comments

Comments
 (0)