@@ -5,9 +5,9 @@ defmodule Mobilizon.ActorsTest do
|
||||
|
||||
import Mobilizon.Factory
|
||||
|
||||
alias Mobilizon.{Actors, Config, Conversations, Events, Tombstone, Users}
|
||||
alias Mobilizon.{Actors, Config, Discussions, Events, Tombstone, Users}
|
||||
alias Mobilizon.Actors.{Actor, Bot, Follower, Member}
|
||||
alias Mobilizon.Conversations.Comment
|
||||
alias Mobilizon.Discussions.Comment
|
||||
alias Mobilizon.Events.Event
|
||||
alias Mobilizon.Media.File, as: FileModel
|
||||
alias Mobilizon.Service.Workers
|
||||
@@ -291,6 +291,56 @@ defmodule Mobilizon.ActorsTest do
|
||||
assert actor = actor_fetched
|
||||
end
|
||||
|
||||
test "perform delete the actor actually deletes the actor", %{
|
||||
actor: %Actor{avatar: %{url: avatar_url}, banner: %{url: banner_url}, id: actor_id} = actor
|
||||
} do
|
||||
%Event{url: event1_url} = event1 = insert(:event, organizer_actor: actor)
|
||||
insert(:event, organizer_actor: actor)
|
||||
|
||||
%Comment{url: comment1_url} = comment1 = insert(:comment, actor: actor)
|
||||
insert(:comment, actor: actor)
|
||||
|
||||
%URI{path: "/media/" <> avatar_path} = URI.parse(avatar_url)
|
||||
%URI{path: "/media/" <> banner_path} = URI.parse(banner_url)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> avatar_path
|
||||
)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> banner_path
|
||||
)
|
||||
|
||||
assert {:ok, %Actor{}} = Actors.perform(:delete_actor, actor)
|
||||
|
||||
assert %Actor{
|
||||
name: nil,
|
||||
summary: nil,
|
||||
suspended: true,
|
||||
avatar: nil,
|
||||
banner: nil,
|
||||
user_id: nil
|
||||
} = Actors.get_actor(actor_id)
|
||||
|
||||
assert {:error, :event_not_found} = Events.get_event(event1.id)
|
||||
assert %Tombstone{} = Tombstone.find_tombstone(event1_url)
|
||||
assert %Comment{deleted_at: deleted_at} = Discussions.get_comment(comment1.id)
|
||||
refute is_nil(deleted_at)
|
||||
assert %Tombstone{} = Tombstone.find_tombstone(comment1_url)
|
||||
|
||||
refute File.exists?(
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> avatar_path
|
||||
)
|
||||
|
||||
refute File.exists?(
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> banner_path
|
||||
)
|
||||
end
|
||||
|
||||
test "delete_actor/1 deletes the actor", %{
|
||||
actor: %Actor{avatar: %{url: avatar_url}, banner: %{url: banner_url}, id: actor_id} = actor
|
||||
} do
|
||||
@@ -333,7 +383,7 @@ defmodule Mobilizon.ActorsTest do
|
||||
|
||||
assert {:error, :event_not_found} = Events.get_event(event1.id)
|
||||
assert %Tombstone{} = Tombstone.find_tombstone(event1_url)
|
||||
assert %Comment{deleted_at: deleted_at} = Conversations.get_comment(comment1.id)
|
||||
assert %Comment{deleted_at: deleted_at} = Discussions.get_comment(comment1.id)
|
||||
refute is_nil(deleted_at)
|
||||
assert %Tombstone{} = Tombstone.find_tombstone(comment1_url)
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
defmodule Mobilizon.ConversationsTest do
|
||||
defmodule Mobilizon.DiscussionsTest do
|
||||
use Mobilizon.DataCase
|
||||
|
||||
import Mobilizon.Factory
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Conversations
|
||||
alias Mobilizon.Conversations.Comment
|
||||
alias Mobilizon.Service.Workers
|
||||
alias Mobilizon.Storage.Page
|
||||
alias Mobilizon.Discussions
|
||||
alias Mobilizon.Discussions.Comment
|
||||
|
||||
describe "comments" do
|
||||
@valid_attrs %{text: "some text"}
|
||||
@@ -16,13 +14,13 @@ defmodule Mobilizon.ConversationsTest do
|
||||
|
||||
test "list_comments/0 returns all comments" do
|
||||
%Comment{id: comment_id} = insert(:comment)
|
||||
comment_ids = Conversations.list_comments() |> Enum.map(& &1.id)
|
||||
comment_ids = Discussions.list_comments() |> Enum.map(& &1.id)
|
||||
assert comment_ids == [comment_id]
|
||||
end
|
||||
|
||||
test "get_comment!/1 returns the comment with given id" do
|
||||
%Comment{id: comment_id} = insert(:comment)
|
||||
comment_fetched = Conversations.get_comment!(comment_id)
|
||||
comment_fetched = Discussions.get_comment!(comment_id)
|
||||
assert comment_fetched.id == comment_id
|
||||
end
|
||||
|
||||
@@ -30,7 +28,7 @@ defmodule Mobilizon.ConversationsTest do
|
||||
%Actor{} = actor = insert(:actor)
|
||||
comment_data = Map.merge(@valid_attrs, %{actor_id: actor.id})
|
||||
|
||||
case Conversations.create_comment(comment_data) do
|
||||
case Discussions.create_comment(comment_data) do
|
||||
{:ok, %Comment{} = comment} ->
|
||||
assert comment.text == "some text"
|
||||
assert comment.actor_id == actor.id
|
||||
@@ -41,13 +39,13 @@ defmodule Mobilizon.ConversationsTest do
|
||||
end
|
||||
|
||||
test "create_comment/1 with invalid data returns error changeset" do
|
||||
assert {:error, %Ecto.Changeset{}} = Conversations.create_comment(@invalid_attrs)
|
||||
assert {:error, %Ecto.Changeset{}} = Discussions.create_comment(@invalid_attrs)
|
||||
end
|
||||
|
||||
test "update_comment/2 with valid data updates the comment" do
|
||||
%Comment{} = comment = insert(:comment)
|
||||
|
||||
case Conversations.update_comment(comment, @update_attrs) do
|
||||
case Discussions.update_comment(comment, @update_attrs) do
|
||||
{:ok, %Comment{} = comment} ->
|
||||
assert comment.text == "some updated text"
|
||||
|
||||
@@ -58,15 +56,15 @@ defmodule Mobilizon.ConversationsTest do
|
||||
|
||||
test "update_comment/2 with invalid data returns error changeset" do
|
||||
%Comment{} = comment = insert(:comment)
|
||||
assert {:error, %Ecto.Changeset{}} = Conversations.update_comment(comment, @invalid_attrs)
|
||||
%Comment{} = comment_fetched = Conversations.get_comment!(comment.id)
|
||||
assert {:error, %Ecto.Changeset{}} = Discussions.update_comment(comment, @invalid_attrs)
|
||||
%Comment{} = comment_fetched = Discussions.get_comment!(comment.id)
|
||||
assert comment = comment_fetched
|
||||
end
|
||||
|
||||
test "delete_comment/1 deletes the comment" do
|
||||
%Comment{} = comment = insert(:comment)
|
||||
assert {:ok, %Comment{}} = Conversations.delete_comment(comment)
|
||||
refute is_nil(Conversations.get_comment!(comment.id).deleted_at)
|
||||
assert {:ok, %Comment{}} = Discussions.delete_comment(comment)
|
||||
refute is_nil(Discussions.get_comment!(comment.id).deleted_at)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -141,7 +141,7 @@ defmodule Mobilizon.EventsTest do
|
||||
end
|
||||
|
||||
test "list_public_events_for_actor/1", %{actor: actor, event: event} do
|
||||
assert {:ok, [event_found], 1} = Events.list_public_events_for_actor(actor)
|
||||
assert %Page{elements: [event_found], total: 1} = Events.list_public_events_for_actor(actor)
|
||||
assert event_found.title == event.title
|
||||
end
|
||||
|
||||
@@ -149,7 +149,7 @@ defmodule Mobilizon.EventsTest do
|
||||
event1 = insert(:event, organizer_actor: actor)
|
||||
|
||||
case Events.list_public_events_for_actor(actor, 1, 10) do
|
||||
{:ok, events_found, 2} ->
|
||||
%Page{elements: events_found, total: 2} ->
|
||||
event_ids = MapSet.new(events_found |> Enum.map(& &1.id))
|
||||
assert event_ids == MapSet.new([event.id, event1.id])
|
||||
|
||||
@@ -162,7 +162,7 @@ defmodule Mobilizon.EventsTest do
|
||||
event1 = insert(:event, organizer_actor: actor)
|
||||
|
||||
case Events.list_public_events_for_actor(actor, 1, 1) do
|
||||
{:ok, [%Event{id: event_found_id}], 2} ->
|
||||
%Page{elements: [%Event{id: event_found_id}], total: 2} ->
|
||||
assert event_found_id in [event.id, event1.id]
|
||||
|
||||
err ->
|
||||
|
||||
82
test/mobilizon/posts_test.exs
Normal file
82
test/mobilizon/posts_test.exs
Normal file
@@ -0,0 +1,82 @@
|
||||
defmodule Mobilizon.PostsTest do
|
||||
use Mobilizon.DataCase
|
||||
|
||||
import Mobilizon.Factory
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Posts
|
||||
alias Mobilizon.Posts.Post
|
||||
|
||||
describe "posts" do
|
||||
@valid_attrs %{body: "some text", title: "some title"}
|
||||
@update_attrs %{body: "some updated text", title: "some updated title"}
|
||||
@invalid_attrs %{body: nil}
|
||||
|
||||
test "list_posts/0 returns all posts" do
|
||||
group = insert(:group)
|
||||
%Post{id: post_id} = insert(:post, attributed_to: group)
|
||||
post_ids = Posts.get_posts_for_group(group).elements |> Enum.map(& &1.id)
|
||||
assert post_ids == [post_id]
|
||||
end
|
||||
|
||||
test "get_post!/1 returns the post with given id" do
|
||||
%Post{id: post_id} = insert(:post)
|
||||
post_fetched = Posts.get_post(post_id)
|
||||
assert post_fetched.id == post_id
|
||||
end
|
||||
|
||||
test "create_post/1 with valid data creates a post" do
|
||||
%Actor{} = actor = insert(:actor)
|
||||
%Actor{} = group = insert(:group)
|
||||
post_data = Map.merge(@valid_attrs, %{author_id: actor.id, attributed_to_id: group.id})
|
||||
|
||||
case Posts.create_post(post_data) do
|
||||
{:ok, %Post{} = post} ->
|
||||
assert post.body == "some text"
|
||||
assert post.author_id == actor.id
|
||||
assert post.title == "some title"
|
||||
assert post.slug == "some-title-" <> ShortUUID.encode!(post.id)
|
||||
|
||||
err ->
|
||||
flunk("Failed to create a post #{inspect(err)}")
|
||||
end
|
||||
end
|
||||
|
||||
test "create_post/1 with invalid data returns error changeset" do
|
||||
assert {:error, %Ecto.Changeset{}} = Posts.create_post(@invalid_attrs)
|
||||
end
|
||||
|
||||
test "update_post/2 with valid data updates the post" do
|
||||
%Actor{} = actor = insert(:actor)
|
||||
%Actor{} = group = insert(:group)
|
||||
post_data = Map.merge(@valid_attrs, %{author_id: actor.id, attributed_to_id: group.id})
|
||||
|
||||
{:ok, %Post{} = post} = Posts.create_post(post_data)
|
||||
|
||||
case Posts.update_post(post, @update_attrs) do
|
||||
{:ok, %Post{} = updated_post} ->
|
||||
assert updated_post.body == @update_attrs.body
|
||||
assert updated_post.title == @update_attrs.title
|
||||
# Slug and URL don't change
|
||||
assert updated_post.slug == post.slug
|
||||
assert updated_post.url == post.url
|
||||
|
||||
err ->
|
||||
flunk("Failed to update a post #{inspect(err)}")
|
||||
end
|
||||
end
|
||||
|
||||
test "update_post/2 with invalid data returns error changeset" do
|
||||
%Post{} = post = insert(:post)
|
||||
assert {:error, %Ecto.Changeset{}} = Posts.update_post(post, @invalid_attrs)
|
||||
%Post{} = post_fetched = Posts.get_post(post.id)
|
||||
assert post = post_fetched
|
||||
end
|
||||
|
||||
test "delete_post/1 deletes the post" do
|
||||
%Post{} = post = insert(:post)
|
||||
assert {:ok, %Post{}} = Posts.delete_post(post)
|
||||
assert is_nil(Posts.get_post(post.id))
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user