diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/object_test.exs | 13 | ||||
-rw-r--r-- | test/user_test.exs | 41 |
2 files changed, 53 insertions, 1 deletions
diff --git a/test/object_test.exs b/test/object_test.exs index 3ffddbbc5..ae9515c26 100644 --- a/test/object_test.exs +++ b/test/object_test.exs @@ -1,11 +1,22 @@ defmodule Pleroma.ObjectTest do use Pleroma.DataCase import Pleroma.Factory + alias Pleroma.{Repo, Object} test "returns an object by it's AP id" do object = insert(:note) - found_object = Pleroma.Object.get_by_ap_id(object.data["id"]) + found_object = Object.get_by_ap_id(object.data["id"]) assert object == found_object end + + describe "generic changeset" do + test "it ensures uniqueness of the id" do + object = insert(:note) + cs = Object.change(%Object{}, %{data: %{id: object.data["id"]}}) + assert cs.valid? + + {:error, result} = Repo.insert(cs) + end + end end diff --git a/test/user_test.exs b/test/user_test.exs index e6de4a5cd..bfa79db28 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -139,5 +139,46 @@ defmodule Pleroma.UserTest do user = insert(:user) assert User.ap_followers(user) == Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :feed_redirect, user.nickname) <> "/followers" end + + describe "remote user creation changeset" do + @valid_remote %{ + bio: "hello", + name: "Someone", + nickname: "a@b.de", + ap_id: "http...", + info: %{ some: "info" } + } + + test "it confirms validity" do + cs = User.remote_user_creation(@valid_remote) + assert cs.valid? + end + + test "it enforces the fqn format for nicknames" do + cs = User.remote_user_creation(%{@valid_remote | nickname: "bla"}) + refute cs.valid? + end + + test "it has required fields" do + [:bio, :name, :nickname, :ap_id] + |> Enum.each(fn (field) -> + cs = User.remote_user_creation(Map.delete(@valid_remote, field)) + refute cs.valid? + end) + end + + test "it restricts some sizes" do + [bio: 1000, name: 100] + |> Enum.each(fn ({field, size}) -> + string = String.pad_leading(".", size) + cs = User.remote_user_creation(Map.put(@valid_remote, field, string)) + assert cs.valid? + + string = String.pad_leading(".", size + 1) + cs = User.remote_user_creation(Map.put(@valid_remote, field, string)) + refute cs.valid? + end) + end + end end |