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 0000000000000000000000000000000000000000..024ac42f80fdac3dd5fce3104bc9afb3366cbf6b --- /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 52b139c0a75644f917011f44bd356f222b70b763..ac950c48b3ad3a9a4f376b4864d69384f6251ad2 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")