Cover Play reviewer eligibility gates

This commit is contained in:
SimpleTest 2026-08-03 23:37:59 +03:00
parent 1f0c271951
commit de60e6e54c

View File

@ -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()