forked from shibao/cannery
fix tests
This commit is contained in:
parent
f0676a2433
commit
3674eeaf5a
@ -2,7 +2,8 @@ import Config
|
|||||||
|
|
||||||
# Configure your database
|
# Configure your database
|
||||||
config :lokal, Lokal.Repo,
|
config :lokal, Lokal.Repo,
|
||||||
url: System.get_env("DATABASE_URL") ||
|
url:
|
||||||
|
System.get_env("DATABASE_URL") ||
|
||||||
"ecto://postgres:postgres@localhost/lokal_dev",
|
"ecto://postgres:postgres@localhost/lokal_dev",
|
||||||
show_sensitive_data_on_connection_error: true,
|
show_sensitive_data_on_connection_error: true,
|
||||||
pool_size: 10
|
pool_size: 10
|
||||||
|
@ -18,70 +18,83 @@ defmodule LokalWeb.Component.Topbar do
|
|||||||
<div class="flex flex-row justify-between items-center space-x-4">
|
<div class="flex flex-row justify-between items-center space-x-4">
|
||||||
<div class="flex flex-row justify-start items-center space-x-2">
|
<div class="flex flex-row justify-start items-center space-x-2">
|
||||||
<%= link to: Routes.live_path(LokalWeb.Endpoint, PageLive) do %>
|
<%= link to: Routes.live_path(LokalWeb.Endpoint, PageLive) do %>
|
||||||
<h1 class="leading-5 text-xl text-white hover:underline">Lokal</h1>
|
<h1 class="leading-5 text-xl text-white hover:underline">
|
||||||
|
Lokal
|
||||||
|
</h1>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= if @title_content do %>
|
<%= if @title_content do %>
|
||||||
<span>|</span>
|
<span>|</span>
|
||||||
<%= render_slot(@title_content) %>
|
<%= render_slot(@title_content) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="flex flex-row flex-wrap justify-center items-center
|
<ul class="flex flex-row flex-wrap justify-center items-center
|
||||||
text-lg space-x-4 text-lg text-white">
|
text-lg space-x-4 text-lg text-white">
|
||||||
<%# search %>
|
|
||||||
<form phx-change="suggest" phx-submit="search">
|
<form phx-change="suggest" phx-submit="search">
|
||||||
<input type="text" name="q" class="input input-primary"
|
<input
|
||||||
placeholder="Search" list="results" autocomplete="off"/>
|
type="text"
|
||||||
|
name="q"
|
||||||
|
class="input input-primary"
|
||||||
|
placeholder="Search"
|
||||||
|
list="results"
|
||||||
|
autocomplete="off"
|
||||||
|
/>
|
||||||
<datalist id="results">
|
<datalist id="results">
|
||||||
<%= for {app, _vsn} <- @results do %>
|
<%= for {app, _vsn} <- @results do %>
|
||||||
<option value={app}>"><%= app %></option>
|
<option value={app}>
|
||||||
|
"> <%= app %>
|
||||||
|
</option>
|
||||||
<% end %>
|
<% end %>
|
||||||
</datalist>
|
</datalist>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<%# user settings %>
|
|
||||||
<%= if @current_user do %>
|
<%= if @current_user do %>
|
||||||
<li><%= @current_user.email %></li>
|
|
||||||
<li>
|
<li>
|
||||||
<%= link "Settings", class: "hover:underline",
|
<%= @current_user.email %>
|
||||||
to: Routes.user_settings_path(LokalWeb.Endpoint, :edit) %>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<%= link "Log out", class: "hover:underline",
|
<%= link("Settings",
|
||||||
to: Routes.user_session_path(LokalWeb.Endpoint, :delete), method: :delete %>
|
class: "hover:underline",
|
||||||
|
to: Routes.user_settings_path(LokalWeb.Endpoint, :edit)
|
||||||
|
) %>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<%= link("Log out",
|
||||||
|
class: "hover:underline",
|
||||||
|
to: Routes.user_session_path(LokalWeb.Endpoint, :delete),
|
||||||
|
method: :delete
|
||||||
|
) %>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<%= if function_exported?(Routes, :live_dashboard_path, 2) do %>
|
<%= if function_exported?(Routes, :live_dashboard_path, 2) do %>
|
||||||
<li>
|
<li>
|
||||||
<%= link "LiveDashboard", class: "hover:underline",
|
<%= link("LiveDashboard",
|
||||||
to: Routes.live_dashboard_path(LokalWeb.Endpoint, :home) %>
|
class: "hover:underline",
|
||||||
|
to: Routes.live_dashboard_path(LokalWeb.Endpoint, :home)
|
||||||
|
) %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<li>
|
<li>
|
||||||
<%= link "Register", class: "hover:underline",
|
<%= link("Register",
|
||||||
to: Routes.user_registration_path(LokalWeb.Endpoint, :new) %>
|
class: "hover:underline",
|
||||||
|
to: Routes.user_registration_path(LokalWeb.Endpoint, :new)
|
||||||
|
) %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<%= link "Log in", class: "hover:underline",
|
<%= link("Log in",
|
||||||
to: Routes.user_session_path(LokalWeb.Endpoint, :new) %>
|
class: "hover:underline",
|
||||||
|
to: Routes.user_session_path(LokalWeb.Endpoint, :new)
|
||||||
|
) %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<%= if @flash && @flash |> Map.has_key?(:info) do %>
|
<%= if @flash && @flash |> Map.has_key?(:info) do %>
|
||||||
<p class="alert alert-info" role="alert"
|
<p class="alert alert-info" role="alert" phx-click="lv:clear-flash" phx-value-key="info">
|
||||||
phx-click="lv:clear-flash" phx-value-key="info">
|
|
||||||
<%= live_flash(@flash, :info) %>
|
<%= live_flash(@flash, :info) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= if @flash && @flash |> Map.has_key?(:error) do %>
|
<%= if @flash && @flash |> Map.has_key?(:error) do %>
|
||||||
<p class="alert alert-danger" role="alert"
|
<p class="alert alert-danger" role="alert" phx-click="lv:clear-flash" phx-value-key="error">
|
||||||
phx-click="lv:clear-flash" phx-value-key="error">
|
|
||||||
<%= live_flash(@flash, :error) %>
|
<%= live_flash(@flash, :error) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
@ -1,19 +1,16 @@
|
|||||||
<main class="container min-h-full min-w-full">
|
<main class="container min-h-full min-w-full">
|
||||||
<header class="mb-4 px-8 py-4 w-full bg-primary-400">
|
<header class="mb-4 px-8 py-4 w-full bg-primary-400">
|
||||||
<%= render "topbar.html", assigns %>
|
<%= render("topbar.html", assigns) %>
|
||||||
|
|
||||||
<%= if get_flash(@conn, :info) do %>
|
<%= if get_flash(@conn, :info) do %>
|
||||||
<p class="alert alert-info" role="alert">
|
<p class="alert alert-info" role="alert">
|
||||||
<%= get_flash(@conn, :info) %>
|
<%= get_flash(@conn, :info) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= if get_flash(@conn, :error) do %>
|
<%= if get_flash(@conn, :error) do %>
|
||||||
<p class="alert alert-danger" role="alert">
|
<p class="alert alert-danger" role="alert">
|
||||||
<%= get_flash(@conn, :error) %>
|
<%= get_flash(@conn, :error) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<%= @inner_content %>
|
<%= @inner_content %>
|
||||||
</main>
|
</main>
|
||||||
|
@ -1,19 +1,15 @@
|
|||||||
<main class="container">
|
<main class="container">
|
||||||
<LokalWeb.Component.Topbar.topbar
|
<LokalWeb.Component.Topbar.topbar current_user={assigns[:current_user]}>
|
||||||
current_user={assigns[:current_user]}>
|
|
||||||
</LokalWeb.Component.Topbar.topbar>
|
</LokalWeb.Component.Topbar.topbar>
|
||||||
|
|
||||||
<%= if @flash && @flash |> Map.has_key?(:info) do %>
|
<%= if @flash && @flash |> Map.has_key?(:info) do %>
|
||||||
<p class="alert alert-info" role="alert"
|
<p class="alert alert-info" role="alert" phx-click="lv:clear-flash" phx-value-key="info">
|
||||||
phx-click="lv:clear-flash"
|
<%= live_flash(@flash, :info) %>
|
||||||
phx-value-key="info"><%= live_flash(@flash, :info) %></p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= if @flash && @flash |> Map.has_key?(:error) do %>
|
<%= if @flash && @flash |> Map.has_key?(:error) do %>
|
||||||
<p class="alert alert-danger" role="alert"
|
<p class="alert alert-danger" role="alert" phx-click="lv:clear-flash" phx-value-key="error">
|
||||||
phx-click="lv:clear-flash"
|
<%= live_flash(@flash, :error) %>
|
||||||
phx-value-key="error"><%= live_flash(@flash, :error) %></p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= @inner_content %>
|
<%= @inner_content %>
|
||||||
</main>
|
</main>
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<%= csrf_meta_tag() %>
|
<%= csrf_meta_tag() %>
|
||||||
<%= live_title_tag assigns[:page_title] || "Lokal", suffix: "" %>
|
<%= live_title_tag(assigns[:page_title] || "Lokal", suffix: "") %>
|
||||||
<link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")}/>
|
<link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")} />
|
||||||
<script defer phx-track-static type="text/javascript" src={Routes.static_path(@conn, "/js/app.js")}></script>
|
<script
|
||||||
|
defer
|
||||||
|
phx-track-static
|
||||||
|
type="text/javascript"
|
||||||
|
src={Routes.static_path(@conn, "/js/app.js")}
|
||||||
|
>
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body class="m-0 p-0 min-w-full min-h-full">
|
<body class="m-0 p-0 min-w-full min-h-full">
|
||||||
<%= @inner_content %>
|
<%= @inner_content %>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,6 @@ defmodule LokalWeb.PageControllerTest do
|
|||||||
|
|
||||||
test "GET /", %{conn: conn} do
|
test "GET /", %{conn: conn} do
|
||||||
conn = get(conn, "/")
|
conn = get(conn, "/")
|
||||||
assert html_response(conn, 200) =~ "Welcome to Phoenix!"
|
assert html_response(conn, 200) =~ "Welcome to Lokal"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -140,7 +140,7 @@ defmodule LokalWeb.UserAuthTest do
|
|||||||
|
|
||||||
test "stores the path to redirect to on GET", %{conn: conn} do
|
test "stores the path to redirect to on GET", %{conn: conn} do
|
||||||
halted_conn =
|
halted_conn =
|
||||||
%{conn | request_path: "/foo", query_string: ""}
|
%{conn | path_info: ["foo"], query_string: ""}
|
||||||
|> fetch_flash()
|
|> fetch_flash()
|
||||||
|> UserAuth.require_authenticated_user([])
|
|> UserAuth.require_authenticated_user([])
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ defmodule LokalWeb.UserAuthTest do
|
|||||||
assert get_session(halted_conn, :user_return_to) == "/foo"
|
assert get_session(halted_conn, :user_return_to) == "/foo"
|
||||||
|
|
||||||
halted_conn =
|
halted_conn =
|
||||||
%{conn | request_path: "/foo", query_string: "bar=baz"}
|
%{conn | path_info: ["foo"], query_string: "bar=baz"}
|
||||||
|> fetch_flash()
|
|> fetch_flash()
|
||||||
|> UserAuth.require_authenticated_user([])
|
|> UserAuth.require_authenticated_user([])
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ defmodule LokalWeb.UserAuthTest do
|
|||||||
assert get_session(halted_conn, :user_return_to) == "/foo?bar=baz"
|
assert get_session(halted_conn, :user_return_to) == "/foo?bar=baz"
|
||||||
|
|
||||||
halted_conn =
|
halted_conn =
|
||||||
%{conn | request_path: "/foo?bar", method: "POST"}
|
%{conn | path_info: ["foo"], query_string: "bar", method: "POST"}
|
||||||
|> fetch_flash()
|
|> fetch_flash()
|
||||||
|> UserAuth.require_authenticated_user([])
|
|> UserAuth.require_authenticated_user([])
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ defmodule LokalWeb.UserConfirmationControllerTest do
|
|||||||
test "renders the confirmation page", %{conn: conn} do
|
test "renders the confirmation page", %{conn: conn} do
|
||||||
conn = get(conn, Routes.user_confirmation_path(conn, :new))
|
conn = get(conn, Routes.user_confirmation_path(conn, :new))
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Resend confirmation instructions</h1>"
|
assert response =~ "Resend confirmation instructions"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ defmodule LokalWeb.UserRegistrationControllerTest do
|
|||||||
test "renders registration page", %{conn: conn} do
|
test "renders registration page", %{conn: conn} do
|
||||||
conn = get(conn, Routes.user_registration_path(conn, :new))
|
conn = get(conn, Routes.user_registration_path(conn, :new))
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Register</h1>"
|
assert response =~ "Register"
|
||||||
assert response =~ "Log in</a>"
|
assert response =~ "Log in</a>"
|
||||||
assert response =~ "Register</a>"
|
assert response =~ "Register</a>"
|
||||||
end
|
end
|
||||||
@ -46,7 +46,7 @@ defmodule LokalWeb.UserRegistrationControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Register</h1>"
|
assert response =~ "Register"
|
||||||
assert response =~ "must have the @ sign and no spaces"
|
assert response =~ "must have the @ sign and no spaces"
|
||||||
assert response =~ "should be at least 12 character"
|
assert response =~ "should be at least 12 character"
|
||||||
end
|
end
|
||||||
|
@ -13,7 +13,7 @@ defmodule LokalWeb.UserResetPasswordControllerTest do
|
|||||||
test "renders the reset password page", %{conn: conn} do
|
test "renders the reset password page", %{conn: conn} do
|
||||||
conn = get(conn, Routes.user_reset_password_path(conn, :new))
|
conn = get(conn, Routes.user_reset_password_path(conn, :new))
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Forgot your password?</h1>"
|
assert response =~ "Forgot your password?"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ defmodule LokalWeb.UserResetPasswordControllerTest do
|
|||||||
|
|
||||||
test "renders reset password", %{conn: conn, token: token} do
|
test "renders reset password", %{conn: conn, token: token} do
|
||||||
conn = get(conn, Routes.user_reset_password_path(conn, :edit, token))
|
conn = get(conn, Routes.user_reset_password_path(conn, :edit, token))
|
||||||
assert html_response(conn, 200) =~ "<h1>Reset password</h1>"
|
assert html_response(conn, 200) =~ "Reset password"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not render reset password with invalid token", %{conn: conn} do
|
test "does not render reset password with invalid token", %{conn: conn} do
|
||||||
@ -99,7 +99,7 @@ defmodule LokalWeb.UserResetPasswordControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Reset password</h1>"
|
assert response =~ "Reset password"
|
||||||
assert response =~ "should be at least 12 character(s)"
|
assert response =~ "should be at least 12 character(s)"
|
||||||
assert response =~ "does not match password"
|
assert response =~ "does not match password"
|
||||||
end
|
end
|
||||||
|
@ -11,9 +11,8 @@ defmodule LokalWeb.UserSessionControllerTest do
|
|||||||
test "renders log in page", %{conn: conn} do
|
test "renders log in page", %{conn: conn} do
|
||||||
conn = get(conn, Routes.user_session_path(conn, :new))
|
conn = get(conn, Routes.user_session_path(conn, :new))
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Log in</h1>"
|
assert response =~ "Log in"
|
||||||
assert response =~ "Log in</a>"
|
assert response =~ "Register"
|
||||||
assert response =~ "Register</a>"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test "redirects if already logged in", %{conn: conn, user: user} do
|
test "redirects if already logged in", %{conn: conn, user: user} do
|
||||||
@ -75,7 +74,7 @@ defmodule LokalWeb.UserSessionControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Log in</h1>"
|
assert response =~ "Log in"
|
||||||
assert response =~ "Invalid email or password"
|
assert response =~ "Invalid email or password"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -10,7 +10,7 @@ defmodule LokalWeb.UserSettingsControllerTest do
|
|||||||
test "renders settings page", %{conn: conn} do
|
test "renders settings page", %{conn: conn} do
|
||||||
conn = get(conn, Routes.user_settings_path(conn, :edit))
|
conn = get(conn, Routes.user_settings_path(conn, :edit))
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Settings</h1>"
|
assert response =~ "Settings"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "redirects if user is not logged in" do
|
test "redirects if user is not logged in" do
|
||||||
@ -50,7 +50,7 @@ defmodule LokalWeb.UserSettingsControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(old_password_conn, 200)
|
response = html_response(old_password_conn, 200)
|
||||||
assert response =~ "<h1>Settings</h1>"
|
assert response =~ "Settings"
|
||||||
assert response =~ "should be at least 12 character(s)"
|
assert response =~ "should be at least 12 character(s)"
|
||||||
assert response =~ "does not match password"
|
assert response =~ "does not match password"
|
||||||
assert response =~ "is not valid"
|
assert response =~ "is not valid"
|
||||||
@ -83,7 +83,7 @@ defmodule LokalWeb.UserSettingsControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "<h1>Settings</h1>"
|
assert response =~ "Settings"
|
||||||
assert response =~ "must have the @ sign and no spaces"
|
assert response =~ "must have the @ sign and no spaces"
|
||||||
assert response =~ "is not valid"
|
assert response =~ "is not valid"
|
||||||
end
|
end
|
||||||
|
@ -5,7 +5,7 @@ defmodule LokalWeb.PageLiveTest do
|
|||||||
|
|
||||||
test "disconnected and connected render", %{conn: conn} do
|
test "disconnected and connected render", %{conn: conn} do
|
||||||
{:ok, page_live, disconnected_html} = live(conn, "/")
|
{:ok, page_live, disconnected_html} = live(conn, "/")
|
||||||
assert disconnected_html =~ "Welcome to Phoenix!"
|
assert disconnected_html =~ "Welcome to Lokal"
|
||||||
assert render(page_live) =~ "Welcome to Phoenix!"
|
assert render(page_live) =~ "Welcome to Lokal"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -7,27 +7,6 @@ defmodule Lokal.AccountsFixtures do
|
|||||||
def unique_user_email, do: "user#{System.unique_integer()}@example.com"
|
def unique_user_email, do: "user#{System.unique_integer()}@example.com"
|
||||||
def valid_user_password, do: "hello world!"
|
def valid_user_password, do: "hello world!"
|
||||||
|
|
||||||
def user_fixture(attrs \\ %{}) do
|
|
||||||
{:ok, user} =
|
|
||||||
attrs
|
|
||||||
|> Enum.into(%{
|
|
||||||
email: unique_user_email(),
|
|
||||||
password: valid_user_password()
|
|
||||||
})
|
|
||||||
|> Lokal.Accounts.register_user()
|
|
||||||
|
|
||||||
user
|
|
||||||
end
|
|
||||||
|
|
||||||
def extract_user_token(fun) do
|
|
||||||
{:ok, captured} = fun.(&"[TOKEN]#{&1}[TOKEN]")
|
|
||||||
[_, token, _] = String.split(captured.body, "[TOKEN]")
|
|
||||||
token
|
|
||||||
end
|
|
||||||
|
|
||||||
def unique_user_email, do: "user#{System.unique_integer()}@example.com"
|
|
||||||
def valid_user_password, do: "hello world!"
|
|
||||||
|
|
||||||
def valid_user_attributes(attrs \\ %{}) do
|
def valid_user_attributes(attrs \\ %{}) do
|
||||||
Enum.into(attrs, %{
|
Enum.into(attrs, %{
|
||||||
email: unique_user_email(),
|
email: unique_user_email(),
|
||||||
|
Loading…
Reference in New Issue
Block a user