diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-05-09 18:11:51 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-05-09 18:11:51 +0200 |
commit | 373753e595de96a0492edfc6cc180c3e47696a55 (patch) | |
tree | fab3b2446aff16709364e05db31caa87daef52b3 /test | |
parent | e12a6d5666e26a98fbb8918cbf68e800cddd2bb4 (diff) | |
download | pleroma-373753e595de96a0492edfc6cc180c3e47696a55.tar.gz |
Add some basic changesets.
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 |