Add tests for discussion

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-03-04 11:43:35 +01:00
parent 767a1b26d0
commit bc99e48f06
5 changed files with 582 additions and 9 deletions

View File

@@ -89,6 +89,7 @@ defmodule Mobilizon.GraphQL.Error do
defp metadata(:event_not_found), do: {404, dgettext("errors", "Event not found")}
defp metadata(:group_not_found), do: {404, dgettext("errors", "Group not found")}
defp metadata(:resource_not_found), do: {404, dgettext("errors", "Resource not found")}
defp metadata(:discussion_not_found), do: {404, dgettext("errors", "Discussion not found")}
defp metadata(:unknown), do: {500, dgettext("errors", "Something went wrong")}
defp metadata(code) do

View File

@@ -109,6 +109,8 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
end
end
def create_discussion(_, _, _), do: {:error, :unauthenticated}
def reply_to_discussion(
_parent,
%{text: text, discussion_id: discussion_id},
@@ -141,9 +143,14 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
origin_comment_id || previous_in_reply_to_comment_id || last_comment_id
}) do
{:ok, discussion}
else
{:no_discussion, _} ->
{:error, :discussion_not_found}
end
end
def reply_to_discussion(_, _, _), do: {:error, :unauthenticated}
@spec update_discussion(map(), map(), map()) :: {:ok, Discussion.t()}
def update_discussion(
_parent,
@@ -166,9 +173,14 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
}
) do
{:ok, discussion}
else
{:member, false} ->
{:error, :unauthorized}
end
end
def update_discussion(_, _, _), do: {:error, :unauthenticated}
def delete_discussion(_parent, %{discussion_id: discussion_id}, %{
context: %{
current_user: %User{} = user
@@ -186,8 +198,9 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
{:error, dgettext("errors", "No discussion with ID %{id}", id: discussion_id)}
{:member, _} ->
{:error,
dgettext("errors", "You are not a member of the group the discussion belongs to")}
{:error, :unauthorized}
end
end
def delete_discussion(_, _, _), do: {:error, :unauthenticated}
end