Cover Play reviewer eligibility gates
This commit is contained in:
parent
1f0c271951
commit
de60e6e54c
|
|
@ -100,6 +100,57 @@ defmodule WhoNeedHelp.ReleaseTest do
|
||||||
Release.prepare_play_review(reviewer.email, reviewer.email)
|
Release.prepare_play_review(reviewer.email, reviewer.email)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "rejects unconfirmed accounts and accounts without accepted terms", %{
|
||||||
|
counterpart: counterpart
|
||||||
|
} do
|
||||||
|
unconfirmed =
|
||||||
|
unconfirmed_user_fixture(display_name: "Unconfirmed Play reviewer")
|
||||||
|
|> set_password()
|
||||||
|
|
||||||
|
assert {:error, {:reviewer, :email_not_confirmed}} =
|
||||||
|
Release.play_review_readiness(unconfirmed.email, counterpart.email)
|
||||||
|
|
||||||
|
reviewer = user_fixture(display_name: "Play reviewer without terms") |> set_password()
|
||||||
|
|
||||||
|
{1, nil} =
|
||||||
|
Repo.update_all(
|
||||||
|
from(user in Accounts.User, where: user.id == ^reviewer.id),
|
||||||
|
set: [accepted_terms_at: nil]
|
||||||
|
)
|
||||||
|
|
||||||
|
assert {:error, {:reviewer, :terms_not_accepted}} =
|
||||||
|
Release.play_review_readiness(reviewer.email, counterpart.email)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "rejects restricted and suspended review accounts", %{
|
||||||
|
reviewer: reviewer,
|
||||||
|
counterpart: counterpart
|
||||||
|
} do
|
||||||
|
restricted =
|
||||||
|
reviewer
|
||||||
|
|> Accounts.User.moderation_changeset(%{
|
||||||
|
moderation_status: :restricted,
|
||||||
|
moderation_note: "Review account is not eligible"
|
||||||
|
})
|
||||||
|
|> Repo.update!()
|
||||||
|
|
||||||
|
assert {:error, {:reviewer, :account_not_active}} =
|
||||||
|
Release.play_review_readiness(restricted.email, counterpart.email)
|
||||||
|
|
||||||
|
suspended =
|
||||||
|
counterpart
|
||||||
|
|> Accounts.User.moderation_changeset(%{
|
||||||
|
moderation_status: :suspended,
|
||||||
|
moderation_note: "Review counterpart is not eligible"
|
||||||
|
})
|
||||||
|
|> Repo.update!()
|
||||||
|
|
||||||
|
active_reviewer = user_fixture(display_name: "Replacement reviewer") |> set_password()
|
||||||
|
|
||||||
|
assert {:error, {:counterpart, :account_not_active}} =
|
||||||
|
Release.play_review_readiness(active_reviewer.email, suspended.email)
|
||||||
|
end
|
||||||
|
|
||||||
test "rejects staff accounts", %{counterpart: counterpart} do
|
test "rejects staff accounts", %{counterpart: counterpart} do
|
||||||
staff = staff_user_fixture([:support], display_name: "Staff reviewer") |> set_password()
|
staff = staff_user_fixture([:support], display_name: "Staff reviewer") |> set_password()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user