send email to change role pending -> user + i18n - #877

This commit is contained in:
Laurent GAY
2025-10-01 16:08:44 +02:00
parent 36e045ed3d
commit 17046c4552
12 changed files with 3246 additions and 5028 deletions

View File

@@ -8,6 +8,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
alias Mobilizon.Events.Event
alias Mobilizon.Federation.ActivityPub.Relay
alias Mobilizon.Reports.{Note, Report}
alias Mobilizon.Users
alias Mobilizon.Users.User
alias Mobilizon.GraphQL.{AbsintheHelpers, API}
@@ -673,7 +674,11 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
"Argument \"role\" has invalid value $role."
end
test "with a valid role, and no notification", %{conn: conn, user: user, admin: admin} do
test "with a valid role MODERATOR, and no notification", %{
conn: conn,
user: user,
admin: admin
} do
res =
conn
|> auth_conn(admin)
@@ -688,7 +693,11 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
assert res["data"]["adminUpdateUser"]["role"] == "MODERATOR"
end
test "with a valid role, and notification", %{conn: conn, user: user, admin: admin} do
test "with a valid role USER -> MODERATOR, and notification", %{
conn: conn,
user: user,
admin: admin
} do
res =
conn
|> auth_conn(admin)
@@ -701,6 +710,81 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
assert res["errors"] == nil
assert res["data"]["adminUpdateUser"]["role"] == "MODERATOR"
user = Users.get_user!(user.id)
assert user.role == :moderator
end
test "with a valid role USER -> ADMINISTRATOR, and notification", %{
conn: conn,
user: user,
admin: admin
} do
res =
conn
|> auth_conn(admin)
|> AbsintheHelpers.graphql_query(
query: @admin_update_user,
variables: %{"id" => user.id, "role" => "ADMINISTRATOR", "notify" => true}
)
assert_email_sent(to: user.email)
assert res["errors"] == nil
assert res["data"]["adminUpdateUser"]["role"] == "ADMINISTRATOR"
user = Users.get_user!(user.id)
assert user.role == :administrator
end
test "with a valid role ADMINISTRATOR -> USER, and notification", %{
conn: conn,
user: user,
admin: admin
} do
{:ok, %User{} = _user} =
Users.update_user(user, %{
"role" => :administrator
})
res =
conn
|> auth_conn(admin)
|> AbsintheHelpers.graphql_query(
query: @admin_update_user,
variables: %{"id" => user.id, "role" => "USER", "notify" => true}
)
assert_email_sent(to: user.email)
assert res["errors"] == nil
assert res["data"]["adminUpdateUser"]["role"] == "USER"
user = Users.get_user!(user.id)
assert user.role == :user
end
test "with a valid role PENDING -> USER, and notification", %{
conn: conn,
user: user,
admin: admin
} do
{:ok, %User{} = _user} =
Users.update_user(user, %{
"role" => :pending
})
res =
conn
|> auth_conn(admin)
|> AbsintheHelpers.graphql_query(
query: @admin_update_user,
variables: %{"id" => user.id, "role" => "USER", "notify" => true}
)
assert_email_sent(to: user.email)
assert res["errors"] == nil
assert res["data"]["adminUpdateUser"]["role"] == "USER"
user = Users.get_user!(user.id)
assert user.role == :user
end
end