Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F12552649
mastodon_api_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
mastodon_api_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.MastodonAPI.MastodonAPITest
do
use
Pleroma.Web.ConnCase
,
async
:
true
alias
Pleroma.Notification
alias
Pleroma.ScheduledActivity
alias
Pleroma.UnstubbedConfigMock
,
as
:
ConfigMock
alias
Pleroma.User
alias
Pleroma.Web.CommonAPI
alias
Pleroma.Web.MastodonAPI.MastodonAPI
import
Pleroma.Factory
import
Mox
describe
"follow/3"
do
test
"returns error when followed user is deactivated"
do
follower
=
insert
(
:user
)
user
=
insert
(
:user
,
local
:
true
,
is_active
:
false
)
assert
{
:error
,
_error
}
=
MastodonAPI
.
follow
(
follower
,
user
)
end
test
"following for user"
do
follower
=
insert
(
:user
)
user
=
insert
(
:user
)
{
:ok
,
follower
}
=
MastodonAPI
.
follow
(
follower
,
user
)
assert
User
.
following?
(
follower
,
user
)
end
test
"returns ok if user already followed"
do
follower
=
insert
(
:user
)
user
=
insert
(
:user
)
{
:ok
,
follower
,
user
}
=
User
.
follow
(
follower
,
user
)
{
:ok
,
follower
}
=
MastodonAPI
.
follow
(
follower
,
refresh_record
(
user
))
assert
User
.
following?
(
follower
,
user
)
end
end
describe
"get_followers/2"
do
test
"returns user followers"
do
follower1_user
=
insert
(
:user
)
follower2_user
=
insert
(
:user
)
user
=
insert
(
:user
)
{
:ok
,
_follower1_user
,
_user
}
=
User
.
follow
(
follower1_user
,
user
)
{
:ok
,
follower2_user
,
_user
}
=
User
.
follow
(
follower2_user
,
user
)
assert
MastodonAPI
.
get_followers
(
user
,
%{
"limit"
=>
1
})
==
[
follower2_user
]
end
end
describe
"get_friends/2"
do
test
"returns user friends"
do
user
=
insert
(
:user
)
followed_one
=
insert
(
:user
)
followed_two
=
insert
(
:user
)
followed_three
=
insert
(
:user
)
{
:ok
,
user
,
followed_one
}
=
User
.
follow
(
user
,
followed_one
)
{
:ok
,
user
,
followed_two
}
=
User
.
follow
(
user
,
followed_two
)
{
:ok
,
user
,
followed_three
}
=
User
.
follow
(
user
,
followed_three
)
res
=
MastodonAPI
.
get_friends
(
user
)
assert
length
(
res
)
==
3
assert
Enum
.
member?
(
res
,
refresh_record
(
followed_three
))
assert
Enum
.
member?
(
res
,
refresh_record
(
followed_two
))
assert
Enum
.
member?
(
res
,
refresh_record
(
followed_one
))
end
end
describe
"get_notifications/2"
do
test
"returns notifications for user"
do
user
=
insert
(
:user
)
subscriber
=
insert
(
:user
)
User
.
subscribe
(
subscriber
,
user
)
{
:ok
,
status
}
=
CommonAPI
.
post
(
user
,
%{
status
:
"Akariiiin"
})
{
:ok
,
status1
}
=
CommonAPI
.
post
(
user
,
%{
status
:
"Magi"
})
{
:ok
,
[
notification
]}
=
Notification
.
create_notifications
(
status
)
{
:ok
,
[
notification1
]}
=
Notification
.
create_notifications
(
status1
)
res
=
MastodonAPI
.
get_notifications
(
subscriber
)
assert
Enum
.
member?
(
Enum
.
map
(
res
,
&
&1
.
id
),
notification
.
id
)
assert
Enum
.
member?
(
Enum
.
map
(
res
,
&
&1
.
id
),
notification1
.
id
)
end
end
describe
"get_scheduled_activities/2"
do
test
"returns user scheduled activities"
do
ConfigMock
|>
stub_with
(
Pleroma.Test.StaticConfig
)
user
=
insert
(
:user
)
today
=
NaiveDateTime
.
utc_now
()
|>
NaiveDateTime
.
add
(
:timer
.
minutes
(
6
),
:millisecond
)
|>
NaiveDateTime
.
to_iso8601
()
attrs
=
%{
params
:
%{},
scheduled_at
:
today
}
{
:ok
,
schedule
}
=
ScheduledActivity
.
create
(
user
,
attrs
)
assert
MastodonAPI
.
get_scheduled_activities
(
user
)
==
[
schedule
]
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Nov 15, 12:53 AM (1 d, 16 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
632980
Default Alt Text
mastodon_api_test.exs (3 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment