Allow multiple identities (accounts actors) for one user.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -6,15 +6,15 @@ defmodule EventosWeb.ActorControllerTest do
|
||||
alias Eventos.Actors
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
{:ok, conn: conn, user: user}
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: conn, user: user, actor: actor}
|
||||
end
|
||||
|
||||
describe "index" do
|
||||
test "lists all actors", %{conn: conn, user: user} do
|
||||
test "lists all actors", %{conn: conn, user: user, actor: actor} do
|
||||
conn = get conn, actor_path(conn, :index)
|
||||
assert hd(json_response(conn, 200)["data"])["username"] == user.actor.preferred_username
|
||||
assert hd(json_response(conn, 200)["data"])["username"] == actor.preferred_username
|
||||
end
|
||||
end
|
||||
|
||||
@@ -41,9 +41,4 @@ defmodule EventosWeb.ActorControllerTest do
|
||||
# assert response(conn, 200)
|
||||
# end
|
||||
# end
|
||||
|
||||
defp create_actor(_) do
|
||||
actor = insert(:actor)
|
||||
{:ok, actor: actor}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,8 +16,8 @@ defmodule EventosWeb.AddressControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: conn, user: user}
|
||||
end
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ defmodule EventosWeb.BotControllerTest do
|
||||
@invalid_attrs %{source: nil, type: nil, name: nil}
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: put_req_header(conn, "accept", "application/json"), user: user}
|
||||
end
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ defmodule EventosWeb.CategoryControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: conn, user: user}
|
||||
end
|
||||
|
||||
|
||||
@@ -11,15 +11,14 @@ defmodule EventosWeb.CommentControllerTest do
|
||||
@invalid_attrs %{text: nil, url: nil}
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
{:ok, conn: put_req_header(conn, "accept", "application/json"), user: user}
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: put_req_header(conn, "accept", "application/json"), user: user, actor: actor}
|
||||
end
|
||||
|
||||
describe "create comment" do
|
||||
test "renders comment when data is valid", %{conn: conn, user: user} do
|
||||
test "renders comment when data is valid", %{conn: conn, user: user, actor: actor} do
|
||||
conn = auth_conn(conn, user)
|
||||
actor = insert(:actor)
|
||||
attrs = Map.merge(@create_attrs, %{actor_id: actor.id})
|
||||
conn = post conn, comment_path(conn, :create), comment: attrs
|
||||
assert %{"uuid" => uuid, "id" => id} = json_response(conn, 201)["data"]
|
||||
@@ -43,9 +42,8 @@ defmodule EventosWeb.CommentControllerTest do
|
||||
describe "update comment" do
|
||||
setup [:create_comment]
|
||||
|
||||
test "renders comment when data is valid", %{conn: conn, comment: %Comment{id: id, uuid: uuid} = comment, user: user} do
|
||||
test "renders comment when data is valid", %{conn: conn, comment: %Comment{id: id, uuid: uuid} = comment, user: user, actor: actor} do
|
||||
conn = auth_conn(conn, user)
|
||||
actor = insert(:actor)
|
||||
attrs = Map.merge(@update_attrs, %{actor_id: actor.id})
|
||||
conn = put conn, comment_path(conn, :update, uuid), comment: attrs
|
||||
assert %{"uuid" => uuid, "id" => id} = json_response(conn, 200)["data"]
|
||||
|
||||
@@ -21,9 +21,9 @@ defmodule EventosWeb.EventControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
{:ok, conn: conn, user: user}
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: conn, user: user, actor: actor}
|
||||
end
|
||||
|
||||
describe "index" do
|
||||
@@ -34,8 +34,8 @@ defmodule EventosWeb.EventControllerTest do
|
||||
end
|
||||
|
||||
describe "create event" do
|
||||
test "renders event when data is valid", %{conn: conn, user: user} do
|
||||
attrs = Map.put(@create_attrs, :organizer_actor_id, user.actor.id)
|
||||
test "renders event when data is valid", %{conn: conn, user: user, actor: actor} do
|
||||
attrs = Map.put(@create_attrs, :organizer_actor_id, actor.id)
|
||||
attrs = Map.put(attrs, "physical_address", @create_address_attrs)
|
||||
|
||||
category = insert(:category)
|
||||
@@ -55,9 +55,9 @@ defmodule EventosWeb.EventControllerTest do
|
||||
} = json_response(conn, 200)["data"]
|
||||
end
|
||||
|
||||
test "renders errors when data is invalid", %{conn: conn, user: user} do
|
||||
test "renders errors when data is invalid", %{conn: conn, user: user, actor: actor} do
|
||||
conn = auth_conn(conn, user)
|
||||
attrs = Map.put(@invalid_attrs, :organizer_actor_id, user.actor.id)
|
||||
attrs = Map.put(@invalid_attrs, :organizer_actor_id, actor.id)
|
||||
attrs = Map.put(attrs, :address, @create_address_attrs)
|
||||
conn = post conn, event_path(conn, :create), event: attrs
|
||||
assert json_response(conn, 422)["errors"] != %{}
|
||||
@@ -78,10 +78,10 @@ defmodule EventosWeb.EventControllerTest do
|
||||
describe "update event" do
|
||||
setup [:create_event]
|
||||
|
||||
test "renders event when data is valid", %{conn: conn, event: %Event{uuid: uuid} = event, user: user} do
|
||||
test "renders event when data is valid", %{conn: conn, event: %Event{uuid: uuid} = event, user: user, actor: actor} do
|
||||
conn = auth_conn(conn, user)
|
||||
address = address_fixture()
|
||||
attrs = Map.put(@update_attrs, :organizer_actor_id, user.actor.id)
|
||||
attrs = Map.put(@update_attrs, :organizer_actor_id, actor.id)
|
||||
attrs = Map.put(attrs, :address_id, address.id)
|
||||
conn = put conn, event_path(conn, :update, uuid), event: attrs
|
||||
assert %{"uuid" => uuid} = json_response(conn, 200)["data"]
|
||||
@@ -97,9 +97,9 @@ defmodule EventosWeb.EventControllerTest do
|
||||
} = json_response(conn, 200)["data"]
|
||||
end
|
||||
|
||||
test "renders errors when data is invalid", %{conn: conn, event: %Event{uuid: uuid} = event, user: user} do
|
||||
test "renders errors when data is invalid", %{conn: conn, event: %Event{uuid: uuid} = event, user: user, actor: actor} do
|
||||
conn = auth_conn(conn, user)
|
||||
attrs = Map.put(@invalid_attrs, :organizer_actor_id, user.actor.id)
|
||||
attrs = Map.put(@invalid_attrs, :organizer_actor_id, actor.id)
|
||||
conn = put conn, event_path(conn, :update, uuid), event: attrs
|
||||
assert json_response(conn, 422)["errors"] != %{}
|
||||
end
|
||||
|
||||
@@ -16,8 +16,8 @@ defmodule EventosWeb.SessionControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
event = insert(:event, organizer_actor: actor)
|
||||
{:ok, conn: conn, user: user, event: event}
|
||||
end
|
||||
|
||||
@@ -16,8 +16,8 @@ defmodule EventosWeb.TagControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: conn, user: user}
|
||||
end
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ defmodule EventosWeb.TrackControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
event = insert(:event, organizer_actor: actor)
|
||||
{:ok, conn: conn, user: user, event: event}
|
||||
end
|
||||
|
||||
@@ -16,8 +16,8 @@ defmodule EventosWeb.UserControllerTest do
|
||||
end
|
||||
|
||||
setup %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
user = insert(:user, actor: actor)
|
||||
user = insert(:user)
|
||||
actor = insert(:actor, user: user)
|
||||
{:ok, conn: conn, user: user}
|
||||
end
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ defmodule Eventos.Factory do
|
||||
password_hash: "Jane Smith",
|
||||
email: sequence(:email, &"email-#{&1}@example.com"),
|
||||
role: 0,
|
||||
actor: build(:actor)
|
||||
}
|
||||
end
|
||||
|
||||
@@ -25,7 +24,8 @@ defmodule Eventos.Factory do
|
||||
preferred_username: preferred_username,
|
||||
domain: nil,
|
||||
keys: pem,
|
||||
url: EventosWeb.Endpoint.url() <> "/@#{preferred_username}"
|
||||
url: EventosWeb.Endpoint.url() <> "/@#{preferred_username}",
|
||||
user: nil,
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user