From 13d0dce901ab011469fa208dec95a9cef3a84c15 Mon Sep 17 00:00:00 2001 From: Uku Taht <uku.taht@gmail.com> Date: Mon, 26 Jul 2021 12:08:35 +0300 Subject: [PATCH] Make invitations email case insensitive --- ...11_make_invitation_email_case_insensitive.exs | 9 +++++++++ .../controllers/site_controller_test.exs | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 priv/repo/migrations/20210726090211_make_invitation_email_case_insensitive.exs diff --git a/priv/repo/migrations/20210726090211_make_invitation_email_case_insensitive.exs b/priv/repo/migrations/20210726090211_make_invitation_email_case_insensitive.exs new file mode 100644 index 00000000..024ac42f --- /dev/null +++ b/priv/repo/migrations/20210726090211_make_invitation_email_case_insensitive.exs @@ -0,0 +1,9 @@ +defmodule Plausible.Repo.Migrations.MakeInvitationEmailCaseInsensitive do + use Ecto.Migration + + def change do + alter table(:invitations) do + modify :email, :citext, null: false + end + end +end diff --git a/test/plausible_web/controllers/site_controller_test.exs b/test/plausible_web/controllers/site_controller_test.exs index 52b139c0..ac950c48 100644 --- a/test/plausible_web/controllers/site_controller_test.exs +++ b/test/plausible_web/controllers/site_controller_test.exs @@ -44,6 +44,22 @@ defmodule PlausibleWeb.SiteControllerTest do assert html_response(conn, 200) =~ "<b>3</b> visitors in last 24h" end + test "shows invitations for user by email address", %{conn: conn, user: user} do + site = insert(:site) + insert(:invitation, email: user.email, site_id: site.id, inviter: build(:user)) + conn = get(conn, "/sites") + + assert html_response(conn, 200) =~ site.domain + end + + test "invitations are case insensitive", %{conn: conn, user: user} do + site = insert(:site) + insert(:invitation, email: String.upcase(user.email), site_id: site.id, inviter: build(:user)) + conn = get(conn, "/sites") + + assert html_response(conn, 200) =~ site.domain + end + test "paginates sites", %{conn: conn, user: user} do insert(:site, members: [user], domain: "test-site1.com") insert(:site, members: [user], domain: "test-site2.com") -- GitLab