Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F21967354
marker_controller_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
marker_controller_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.MastodonAPI.MarkerControllerTest
do
use
Pleroma.Web.ConnCase
import
Pleroma.Factory
describe
"GET /api/v1/markers"
do
test
"gets markers with correct scopes"
,
%{
conn
:
conn
}
do
user
=
insert
(
:user
)
token
=
insert
(
:oauth_token
,
user
:
user
,
scopes
:
[
"read:statuses"
])
insert_list
(
7
,
:notification
,
user
:
user
,
activity
:
insert
(
:note_activity
))
{
:ok
,
%{
"notifications"
=>
marker
}}
=
Pleroma.Marker
.
upsert
(
user
,
%{
"notifications"
=>
%{
"last_read_id"
=>
"69420"
}}
)
response
=
conn
|>
assign
(
:user
,
user
)
|>
assign
(
:token
,
token
)
|>
get
(
"/api/v1/markers?timeline[]=notifications"
)
|>
json_response_and_validate_schema
(
200
)
assert
response
==
%{
"notifications"
=>
%{
"last_read_id"
=>
"69420"
,
"updated_at"
=>
NaiveDateTime
.
to_iso8601
(
marker
.
updated_at
),
"version"
=>
0
,
"pleroma"
=>
%{
"unread_count"
=>
7
}
}
}
end
test
"gets markers with missed scopes"
,
%{
conn
:
conn
}
do
user
=
insert
(
:user
)
token
=
insert
(
:oauth_token
,
user
:
user
,
scopes
:
[])
Pleroma.Marker
.
upsert
(
user
,
%{
"notifications"
=>
%{
"last_read_id"
=>
"69420"
}})
response
=
conn
|>
assign
(
:user
,
user
)
|>
assign
(
:token
,
token
)
|>
get
(
"/api/v1/markers"
,
%{
timeline
:
[
"notifications"
]})
|>
json_response_and_validate_schema
(
403
)
assert
response
==
%{
"error"
=>
"Insufficient permissions: read:statuses."
}
end
end
describe
"POST /api/v1/markers"
do
test
"creates a marker with correct scopes"
,
%{
conn
:
conn
}
do
user
=
insert
(
:user
)
token
=
insert
(
:oauth_token
,
user
:
user
,
scopes
:
[
"write:statuses"
])
response
=
conn
|>
assign
(
:user
,
user
)
|>
assign
(
:token
,
token
)
|>
put_req_header
(
"content-type"
,
"application/json"
)
|>
post
(
"/api/v1/markers"
,
%{
home
:
%{
last_read_id
:
"777"
},
notifications
:
%{
"last_read_id"
=>
"69420"
}
})
|>
json_response_and_validate_schema
(
200
)
assert
%{
"notifications"
=>
%{
"last_read_id"
=>
"69420"
,
"updated_at"
=>
_
,
"version"
=>
0
,
"pleroma"
=>
%{
"unread_count"
=>
0
}
}
}
=
response
end
test
"updates exist marker"
,
%{
conn
:
conn
}
do
user
=
insert
(
:user
)
token
=
insert
(
:oauth_token
,
user
:
user
,
scopes
:
[
"write:statuses"
])
{
:ok
,
%{
"notifications"
=>
marker
}}
=
Pleroma.Marker
.
upsert
(
user
,
%{
"notifications"
=>
%{
"last_read_id"
=>
"69477"
}}
)
response
=
conn
|>
assign
(
:user
,
user
)
|>
assign
(
:token
,
token
)
|>
put_req_header
(
"content-type"
,
"application/json"
)
|>
post
(
"/api/v1/markers"
,
%{
home
:
%{
last_read_id
:
"777"
},
notifications
:
%{
"last_read_id"
=>
"69888"
}
})
|>
json_response_and_validate_schema
(
200
)
assert
response
==
%{
"notifications"
=>
%{
"last_read_id"
=>
"69888"
,
"updated_at"
=>
NaiveDateTime
.
to_iso8601
(
marker
.
updated_at
),
"version"
=>
0
,
"pleroma"
=>
%{
"unread_count"
=>
0
}
}
}
end
test
"creates a marker with missed scopes"
,
%{
conn
:
conn
}
do
user
=
insert
(
:user
)
token
=
insert
(
:oauth_token
,
user
:
user
,
scopes
:
[])
response
=
conn
|>
assign
(
:user
,
user
)
|>
assign
(
:token
,
token
)
|>
put_req_header
(
"content-type"
,
"application/json"
)
|>
post
(
"/api/v1/markers"
,
%{
home
:
%{
last_read_id
:
"777"
},
notifications
:
%{
"last_read_id"
=>
"69420"
}
})
|>
json_response_and_validate_schema
(
403
)
assert
response
==
%{
"error"
=>
"Insufficient permissions: write:statuses."
}
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 28, 3:23 AM (15 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
816121
Default Alt Text
marker_controller_test.exs (4 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment