X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fsupport%2Ffactory.ex;h=314f26ec99d1de43b7d7f07311b50ab39753a867;hb=92b4a1aa1bc750bb077ae45c422967f9712e247d;hp=7191150031c703e6565b2746310fd3fe0770522e;hpb=c4fbb56984d8f86df948cfd9b0f7c081d688c365;p=akkoma diff --git a/test/support/factory.ex b/test/support/factory.ex index 719115003..314f26ec9 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -31,16 +31,27 @@ defmodule Pleroma.Factory do nickname: sequence(:nickname, &"nick#{&1}"), password_hash: Comeonin.Pbkdf2.hashpwsalt("test"), bio: sequence(:bio, &"Tester Number #{&1}"), - info: %{}, - last_digest_emailed_at: NaiveDateTime.utc_now() + last_digest_emailed_at: NaiveDateTime.utc_now(), + notification_settings: %Pleroma.User.NotificationSetting{} } %{ user | ap_id: User.ap_id(user), follower_address: User.ap_followers(user), - following_address: User.ap_following(user), - following: [User.ap_id(user)] + following_address: User.ap_following(user) + } + end + + def user_relationship_factory(attrs \\ %{}) do + source = attrs[:source] || insert(:user) + target = attrs[:target] || insert(:user) + relationship_type = attrs[:relationship_type] || :block + + %Pleroma.UserRelationship{ + source_id: source.id, + target_id: target.id, + relationship_type: relationship_type } end @@ -71,6 +82,47 @@ defmodule Pleroma.Factory do } end + def audio_factory(attrs \\ %{}) do + text = sequence(:text, &"lain radio episode #{&1}") + + user = attrs[:user] || insert(:user) + + data = %{ + "type" => "Audio", + "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(), + "artist" => "lain", + "title" => text, + "album" => "lain radio", + "to" => ["https://www.w3.org/ns/activitystreams#Public"], + "published" => DateTime.utc_now() |> DateTime.to_iso8601(), + "actor" => user.ap_id, + "length" => 180_000 + } + + %Pleroma.Object{ + data: merge_attributes(data, Map.get(attrs, :data, %{})) + } + end + + def listen_factory do + audio = insert(:audio) + + data = %{ + "id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(), + "type" => "Listen", + "actor" => audio.data["actor"], + "to" => audio.data["to"], + "object" => audio.data, + "published" => audio.data["published"] + } + + %Pleroma.Activity{ + data: data, + actor: data["actor"], + recipients: data["to"] + } + end + def direct_note_factory do user2 = insert(:user) @@ -240,26 +292,6 @@ defmodule Pleroma.Factory do } end - def websub_subscription_factory do - %Pleroma.Web.Websub.WebsubServerSubscription{ - topic: "http://example.org", - callback: "http://example.org/callback", - secret: "here's a secret", - valid_until: NaiveDateTime.add(NaiveDateTime.utc_now(), 100), - state: "requested" - } - end - - def websub_client_subscription_factory do - %Pleroma.Web.Websub.WebsubClientSubscription{ - topic: "http://example.org", - secret: "here's a secret", - valid_until: nil, - state: "requested", - subscribers: [] - } - end - def oauth_app_factory do %Pleroma.Web.OAuth.App{ client_name: "Some client", @@ -283,6 +315,7 @@ defmodule Pleroma.Factory do %Pleroma.Web.OAuth.Token{ token: :crypto.strong_rand_bytes(32) |> Base.url_encode64(), + scopes: ["read"], refresh_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64(), user: build(:user), app_id: oauth_app.id, @@ -355,4 +388,13 @@ defmodule Pleroma.Factory do ) } end + + def marker_factory do + %Pleroma.Marker{ + user: build(:user), + timeline: "notifications", + lock_version: 0, + last_read_id: "1" + } + end end