mobilizon/test/tasks/actors_test.exs

53 lines
1.4 KiB
Elixir

defmodule Mix.Tasks.Mobilizon.ActorsTest do
use Mobilizon.DataCase
alias Mobilizon.Actors.Actor
alias Mix.Tasks.Mobilizon.Actors.Show
import Mobilizon.Factory
Mix.shell(Mix.Shell.Process)
@username "someone"
@domain "somewhere.tld"
describe "show actor" do
test "show existing local actor" do
%Actor{} = actor = insert(:actor, preferred_username: @username)
output = """
Informations for the actor #{@username}:
- Type: Person
- Domain: Local
- Name: #{actor.name}
- Summary: #{actor.summary}
- User: #{actor.user.email}
"""
Show.run([@username])
assert_received {:mix_shell, :info, [output_received]}
assert output_received == output
end
test "show existing remote actor" do
%Actor{} = actor = insert(:actor, preferred_username: @username, user: nil, domain: @domain)
output = """
Informations for the actor #{@username}:
- Type: Person
- Domain: #{@domain}
- Name: #{actor.name}
- Summary: #{actor.summary}
- User: Remote
"""
Show.run(["#{@username}@#{@domain}"])
assert_received {:mix_shell, :info, [output_received]}
assert output_received == output
end
test "show non-existing actor" do
assert_raise Mix.Error, "Error: No such actor", fn -> Show.run([@username]) end
end
end
end