mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-28 02:18:50 +00:00
@@ -210,7 +210,7 @@ defmodule FzHttpWeb.Router do
|
||||
get "/config.xml", BrowserController, :config
|
||||
end
|
||||
|
||||
if Mix.env() == :dev do
|
||||
if Mix.env() in [:dev, :test] do
|
||||
import Phoenix.LiveDashboard.Router
|
||||
|
||||
scope "/dev" do
|
||||
|
||||
@@ -50,6 +50,52 @@ defmodule FzHttpWeb.Acceptance.AuthenticationTest do
|
||||
|> assert_path("/user_devices")
|
||||
|> Auth.assert_authenticated(user)
|
||||
end
|
||||
|
||||
feature "can not reset password using invalid email", %{session: session} do
|
||||
UsersFixtures.create_user_with_role(:unprivileged)
|
||||
|
||||
session
|
||||
|> visit(~p"/")
|
||||
|> assert_el(Query.link("Sign in with email"))
|
||||
|> click(Query.link("Sign in with email"))
|
||||
|> assert_el(Query.link("Forgot password"))
|
||||
|> click(Query.link("Forgot password"))
|
||||
|> assert_el(Query.text("Reset Password"))
|
||||
|> fill_form(%{"email" => "foo@bar.com"})
|
||||
|> click(Query.button("Send"))
|
||||
|> assert_el(Query.text("Reset Password"))
|
||||
|> visit(~p"/dev/mailbox")
|
||||
|> assert_el(Query.text("Empty mailbox..."))
|
||||
end
|
||||
|
||||
feature "can reset password using email link", %{session: session} do
|
||||
user = UsersFixtures.create_user_with_role(:unprivileged)
|
||||
|
||||
session =
|
||||
session
|
||||
|> visit(~p"/")
|
||||
|> assert_el(Query.link("Sign in with email"))
|
||||
|> click(Query.link("Sign in with email"))
|
||||
|> assert_el(Query.link("Forgot password"))
|
||||
|> click(Query.link("Forgot password"))
|
||||
|> assert_el(Query.text("Reset Password"))
|
||||
|> fill_form(%{
|
||||
"email" => user.email
|
||||
})
|
||||
|> click(Query.button("Send"))
|
||||
|> assert_el(Query.text("Please check your inbox for the magic link."))
|
||||
|> visit(~p"/dev/mailbox")
|
||||
|> click(Query.link("Firezone Magic Link"))
|
||||
|> assert_el(Query.text("HTML body preview:"))
|
||||
|
||||
email_text = text(session, Query.css(".body-text"))
|
||||
[link] = Regex.run(~r|http://localhost[^ ]*|, email_text)
|
||||
|
||||
session
|
||||
|> visit(link)
|
||||
|> assert_el(Query.text("Your Devices"))
|
||||
|> assert_el(Query.text("Signed in as #{user.email}."))
|
||||
end
|
||||
end
|
||||
|
||||
describe "using OIDC provider" do
|
||||
@@ -347,7 +393,9 @@ defmodule FzHttpWeb.Acceptance.AuthenticationTest do
|
||||
defp password_login_flow(session, email, password) do
|
||||
session
|
||||
|> visit(~p"/")
|
||||
|> assert_el(Query.link("Sign in with email"))
|
||||
|> click(Query.link("Sign in with email"))
|
||||
|> assert_el(Query.text("Sign In"))
|
||||
|> fill_form(%{
|
||||
"Email" => email,
|
||||
"Password" => password
|
||||
|
||||
15
apps/fz_http/test/support/mailer_test_adapter.ex
Normal file
15
apps/fz_http/test/support/mailer_test_adapter.ex
Normal file
@@ -0,0 +1,15 @@
|
||||
defmodule FzHttpWeb.MailerTestAdapter do
|
||||
use Swoosh.Adapter
|
||||
|
||||
@impl true
|
||||
def deliver(email, config) do
|
||||
Swoosh.Adapters.Local.deliver(email, config)
|
||||
Swoosh.Adapters.Test.deliver(email, config)
|
||||
end
|
||||
|
||||
@impl true
|
||||
def deliver_many(emails, config) do
|
||||
Swoosh.Adapters.Local.deliver_many(emails, config)
|
||||
Swoosh.Adapters.Test.deliver_many(emails, config)
|
||||
end
|
||||
end
|
||||
@@ -53,7 +53,9 @@ config :ueberauth, Ueberauth,
|
||||
identity: {Ueberauth.Strategy.Identity, [callback_methods: ["POST"], uid_field: :email]}
|
||||
]
|
||||
|
||||
config :fz_http, FzHttpWeb.Mailer, adapter: Swoosh.Adapters.Test, from_email: "test@firez.one"
|
||||
config :fz_http, FzHttpWeb.Mailer,
|
||||
adapter: FzHttpWeb.MailerTestAdapter,
|
||||
from_email: "test@firez.one"
|
||||
|
||||
config :fz_vpn,
|
||||
# XXX: Bump test coverage by adding a stubbed out module for FzVpn.StatsPushService
|
||||
|
||||
Reference in New Issue
Block a user