Add outbox_controller_test.exs
This commit is contained in:
parent
56490e3934
commit
c288831bb2
1 changed files with 85 additions and 0 deletions
85
test/nulla_web/controllers/outbox_controller_test.exs
Normal file
85
test/nulla_web/controllers/outbox_controller_test.exs
Normal file
|
@ -0,0 +1,85 @@
|
|||
defmodule NullaWeb.OutboxControllerTest do
|
||||
use NullaWeb.ConnCase
|
||||
alias Nulla.KeyGen
|
||||
alias Nulla.Snowflake
|
||||
alias Nulla.Models.Actor
|
||||
alias Nulla.Models.Note
|
||||
|
||||
setup do
|
||||
{publicKeyPem, _privateKeyPem} = KeyGen.gen()
|
||||
|
||||
{:ok, actor} =
|
||||
Actor.create_actor(%{
|
||||
domain: "localhost",
|
||||
ap_id: "http://localhost/users/test",
|
||||
type: "Person",
|
||||
following: "http://localhost/users/test/following",
|
||||
followers: "http://localhost/users/test/followers",
|
||||
inbox: "http://localhost/users/test/inbox",
|
||||
outbox: "http://localhost/users/test/outbox",
|
||||
featured: "http://localhost/users/test/collections/featured",
|
||||
featuredTags: "http://localhost/users/test/collections/tags",
|
||||
preferredUsername: "test",
|
||||
name: "Test",
|
||||
summary: "Test User",
|
||||
url: "http://localhost/@test",
|
||||
manuallyApprovesFollowers: false,
|
||||
discoverable: true,
|
||||
indexable: true,
|
||||
published: DateTime.utc_now(),
|
||||
memorial: false,
|
||||
publicKey:
|
||||
Jason.OrderedObject.new(
|
||||
id: "http://localhost/users/test#main-key",
|
||||
owner: "http://localhost/users/test",
|
||||
publicKeyPem: publicKeyPem
|
||||
),
|
||||
endpoints: Jason.OrderedObject.new(sharedInbox: "http://localhost/inbox")
|
||||
})
|
||||
|
||||
note_id = Snowflake.next_id()
|
||||
|
||||
{:ok, _note} =
|
||||
Note.create_note(%{
|
||||
url: "#{actor.url}/#{note_id}",
|
||||
content: "Hello World from Nulla!",
|
||||
language: "en",
|
||||
actor_id: actor.id
|
||||
})
|
||||
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "GET /users/username/outbox" do
|
||||
test "returns ActivityPub JSON of outbox", %{conn: conn} do
|
||||
conn =
|
||||
conn
|
||||
|> get(~p"/users/test/outbox")
|
||||
|
||||
assert response = json_response(conn, 200)
|
||||
|
||||
assert is_binary(response["@context"])
|
||||
assert response["id"] == "http://localhost/users/test/outbox"
|
||||
assert response["type"] == "OrderedCollection"
|
||||
assert response["totalItems"] == 1
|
||||
assert response["first"] == "http://localhost/users/test/outbox?page=true"
|
||||
assert response["last"] == "http://localhost/users/test/outbox?min_id=0&page=true"
|
||||
end
|
||||
|
||||
test "returns ActivityPub JSON of outbox with params", %{conn: conn} do
|
||||
conn =
|
||||
conn
|
||||
|> get(~p"/users/test/outbox?page=true")
|
||||
|
||||
assert response = json_response(conn, 200)
|
||||
|
||||
assert is_list(response["@context"])
|
||||
assert response["id"] == "http://localhost/users/test/outbox?page=true"
|
||||
assert response["type"] == "OrderedCollectionPage"
|
||||
assert is_binary(response["next"])
|
||||
assert is_binary(response["prev"])
|
||||
assert response["partOf"] == "http://localhost/users/test/outbox"
|
||||
assert Enum.any?(response["orderedItems"])
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue