53 lines
1.4 KiB
Elixir
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
|