Update tests
This commit is contained in:
parent
406cd1798c
commit
c30541830f
10 changed files with 134 additions and 284 deletions
|
@ -1,36 +1,8 @@
|
|||
defmodule NullaWeb.ActorControllerTest do
|
||||
use NullaWeb.ConnCase
|
||||
alias Nulla.Models.Actor
|
||||
|
||||
setup do
|
||||
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: "PUBLIC KEY"
|
||||
),
|
||||
endpoints: Jason.OrderedObject.new(sharedInbox: "http://localhost/inbox")
|
||||
})
|
||||
|
||||
Nulla.Fixtures.Data.create()
|
||||
:ok
|
||||
end
|
||||
|
||||
|
@ -72,7 +44,7 @@ defmodule NullaWeb.ActorControllerTest do
|
|||
end
|
||||
|
||||
test "renders HTML if Accept header is regular", %{conn: conn} do
|
||||
conn = get(conn, ~p"/users/test")
|
||||
conn = get(conn, ~p"/@test")
|
||||
|
||||
assert html_response(conn, 200) =~ "test"
|
||||
assert html_response(conn, 200) =~ "Test"
|
||||
|
@ -80,7 +52,7 @@ defmodule NullaWeb.ActorControllerTest do
|
|||
end
|
||||
|
||||
test "returns 404 if actor not found", %{conn: conn} do
|
||||
conn = get(conn, ~p"/users/nonexistent")
|
||||
conn = get(conn, ~p"/@nonexistent")
|
||||
|
||||
assert json_response(conn, 404)["error"] == "Not Found"
|
||||
end
|
||||
|
|
|
@ -1,49 +1,8 @@
|
|||
defmodule NullaWeb.FollowControllerTest do
|
||||
use NullaWeb.ConnCase
|
||||
alias Nulla.KeyGen
|
||||
alias Nulla.Models.User
|
||||
alias Nulla.Models.Actor
|
||||
|
||||
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")
|
||||
})
|
||||
|
||||
User.create_user(%{
|
||||
id: actor.id,
|
||||
email: "test@localhost",
|
||||
password: "password",
|
||||
privateKeyPem: privateKeyPem,
|
||||
last_active_at: DateTime.utc_now()
|
||||
})
|
||||
|
||||
Nulla.Fixtures.Data.create()
|
||||
:ok
|
||||
end
|
||||
|
||||
|
|
|
@ -1,49 +1,8 @@
|
|||
defmodule NullaWeb.NodeinfoControllerTest do
|
||||
use NullaWeb.ConnCase
|
||||
alias Nulla.KeyGen
|
||||
alias Nulla.Models.User
|
||||
alias Nulla.Models.Actor
|
||||
|
||||
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")
|
||||
})
|
||||
|
||||
User.create_user(%{
|
||||
id: actor.id,
|
||||
email: "test@localhost",
|
||||
password: "password",
|
||||
privateKeyPem: privateKeyPem,
|
||||
last_active_at: DateTime.utc_now()
|
||||
})
|
||||
|
||||
Nulla.Fixtures.Data.create()
|
||||
:ok
|
||||
end
|
||||
|
||||
|
@ -83,9 +42,9 @@ defmodule NullaWeb.NodeinfoControllerTest do
|
|||
assert is_list(response["services"]["inbound"])
|
||||
assert is_map(response["usage"])
|
||||
assert is_map(response["usage"]["users"])
|
||||
assert response["usage"]["users"]["total"] == 1
|
||||
assert response["usage"]["users"]["activeMonth"] == 1
|
||||
assert response["usage"]["users"]["activeHalfyear"] == 1
|
||||
assert response["usage"]["users"]["total"] > 0
|
||||
assert response["usage"]["users"]["activeMonth"] > 0
|
||||
assert response["usage"]["users"]["activeHalfyear"] > 0
|
||||
assert is_boolean(response["openRegistrations"])
|
||||
assert is_map(response["metadata"])
|
||||
assert is_binary(response["metadata"]["nodeName"])
|
||||
|
|
|
@ -1,53 +1,17 @@
|
|||
defmodule NullaWeb.NoteControllerTest do
|
||||
use NullaWeb.ConnCase
|
||||
alias Nulla.KeyGen
|
||||
alias Nulla.Snowflake
|
||||
alias Nulla.Models.Actor
|
||||
alias Nulla.Models.Note
|
||||
|
||||
setup do
|
||||
Nulla.Fixtures.Data.create()
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "GET /notes/id" do
|
||||
test "returns ActivityPub JSON with note", %{conn: conn} 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(%{
|
||||
id: note_id,
|
||||
url: "#{actor.url}/#{note_id}",
|
||||
content: "Hello World from Nulla!",
|
||||
language: "en",
|
||||
actor_id: actor.id
|
||||
})
|
||||
actor = Actor.get_actor(preferredUsername: "test")
|
||||
note = Note.get_note(actor_id: actor.id)
|
||||
|
||||
conn =
|
||||
conn
|
||||
|
@ -73,55 +37,16 @@ defmodule NullaWeb.NoteControllerTest do
|
|||
end
|
||||
|
||||
test "renders HTML if Accept header is regular", %{conn: conn} do
|
||||
{publicKeyPem, _privateKeyPem} = KeyGen.gen()
|
||||
actor = Actor.get_actor(preferredUsername: "test")
|
||||
note = Note.get_note(actor_id: actor.id)
|
||||
|
||||
{: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(%{
|
||||
id: note_id,
|
||||
url: "#{actor.url}/#{note_id}",
|
||||
content: "Hello World from Nulla!",
|
||||
language: "en",
|
||||
actor_id: actor.id
|
||||
})
|
||||
|
||||
conn = get(conn, ~p"/users/test/notes/#{note.id}")
|
||||
conn = get(conn, ~p"/@test/#{note.id}")
|
||||
|
||||
assert html_response(conn, 200) =~ note.content
|
||||
end
|
||||
|
||||
test "returns 404 if note not found", %{conn: conn} do
|
||||
conn = get(conn, ~p"/users/test/notes/nonexistent")
|
||||
conn = get(conn, ~p"/@test/nonexistent")
|
||||
|
||||
assert json_response(conn, 404)["error"] == "Not Found"
|
||||
end
|
||||
|
|
|
@ -1,52 +1,8 @@
|
|||
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
|
||||
})
|
||||
|
||||
Nulla.Fixtures.Data.create()
|
||||
:ok
|
||||
end
|
||||
|
||||
|
|
|
@ -1,36 +1,8 @@
|
|||
defmodule NullaWeb.WebfingerControllerTest do
|
||||
use NullaWeb.ConnCase
|
||||
alias Nulla.Models.Actor
|
||||
|
||||
setup do
|
||||
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: "PUBLIC KEY"
|
||||
),
|
||||
endpoints: Jason.OrderedObject.new(sharedInbox: "http://localhost/inbox")
|
||||
})
|
||||
|
||||
Nulla.Fixtures.Data.create()
|
||||
:ok
|
||||
end
|
||||
|
||||
|
|
93
test/support/fixtures/data.ex
Normal file
93
test/support/fixtures/data.ex
Normal file
|
@ -0,0 +1,93 @@
|
|||
defmodule Nulla.Fixtures.Data do
|
||||
alias Nulla.KeyGen
|
||||
alias Nulla.Models.User
|
||||
alias Nulla.Models.Actor
|
||||
alias Nulla.Models.Note
|
||||
|
||||
def create 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")
|
||||
})
|
||||
|
||||
User.create_user(%{
|
||||
id: actor.id,
|
||||
email: "test@localhost",
|
||||
password: "password",
|
||||
privateKeyPem: privateKeyPem,
|
||||
last_active_at: DateTime.utc_now()
|
||||
})
|
||||
|
||||
Note.create_note(%{
|
||||
actor_url: actor.url,
|
||||
content: "Hello World from Nulla!",
|
||||
language: "en",
|
||||
actor_id: actor.id
|
||||
})
|
||||
|
||||
{publicKeyPem, privateKeyPem} = KeyGen.gen()
|
||||
|
||||
{:ok, actor} =
|
||||
Actor.create_actor(%{
|
||||
domain: "localhost",
|
||||
ap_id: "http://localhost/users/test2",
|
||||
type: "Person",
|
||||
following: "http://localhost/users/test2/following",
|
||||
followers: "http://localhost/users/test2/followers",
|
||||
inbox: "http://localhost/users/test2/inbox",
|
||||
outbox: "http://localhost/users/test2/outbox",
|
||||
featured: "http://localhost/users/test2/collections/featured",
|
||||
featuredTags: "http://localhost/users/test2/collections/tags",
|
||||
preferredUsername: "test2",
|
||||
name: "Test",
|
||||
summary: "Test User",
|
||||
url: "http://localhost/@test2",
|
||||
manuallyApprovesFollowers: false,
|
||||
discoverable: true,
|
||||
indexable: true,
|
||||
published: DateTime.utc_now(),
|
||||
memorial: false,
|
||||
publicKey:
|
||||
Jason.OrderedObject.new(
|
||||
id: "http://localhost/users/test2#main-key",
|
||||
owner: "http://localhost/users/test2",
|
||||
publicKeyPem: publicKeyPem
|
||||
),
|
||||
endpoints: Jason.OrderedObject.new(sharedInbox: "http://localhost/inbox")
|
||||
})
|
||||
|
||||
User.create_user(%{
|
||||
id: actor.id,
|
||||
email: "test2@localhost",
|
||||
password: "password",
|
||||
privateKeyPem: privateKeyPem,
|
||||
last_active_at: DateTime.utc_now()
|
||||
})
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue