Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33095892
settings_controller_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
settings_controller_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.PleromaAPI.SettingsControllerTest
do
use
Pleroma.Web.ConnCase
import
Pleroma.Factory
describe
"GET /api/v1/pleroma/settings/:app"
do
setup
do
oauth_access
([
"read:accounts"
])
end
test
"it gets empty settings"
,
%{
conn
:
conn
}
do
response
=
conn
|>
get
(
"/api/v1/pleroma/settings/pleroma-fe"
)
|>
json_response_and_validate_schema
(
:ok
)
assert
response
==
%{}
end
test
"it gets settings"
,
%{
conn
:
conn
,
user
:
user
}
do
response
=
conn
|>
assign
(
:user
,
struct
(
user
,
pleroma_settings_store
:
%{
"pleroma-fe"
=>
%{
"foo"
=>
"bar"
}
}
)
)
|>
get
(
"/api/v1/pleroma/settings/pleroma-fe"
)
|>
json_response_and_validate_schema
(
:ok
)
assert
%{
"foo"
=>
"bar"
}
==
response
end
end
describe
"POST /api/v1/pleroma/settings/:app"
do
setup
do
settings
=
%{
"foo"
=>
"bar"
,
"nested"
=>
%{
"1"
=>
"2"
}
}
user
=
insert
(
:user
,
%{
pleroma_settings_store
:
%{
"pleroma-fe"
=>
settings
}
}
)
%{
conn
:
conn
}
=
oauth_access
([
"write:accounts"
],
user
:
user
)
%{
conn
:
conn
,
user
:
user
,
settings
:
settings
}
end
test
"it adds keys"
,
%{
conn
:
conn
}
do
response
=
conn
|>
put_req_header
(
"content-type"
,
"application/json"
)
|>
patch
(
"/api/v1/pleroma/settings/pleroma-fe"
,
%{
"foo"
=>
"edited"
,
"bar"
=>
"new"
,
"nested"
=>
%{
"3"
=>
"4"
}
})
|>
json_response_and_validate_schema
(
:ok
)
assert
response
==
%{
"foo"
=>
"edited"
,
"bar"
=>
"new"
,
"nested"
=>
%{
"1"
=>
"2"
,
"3"
=>
"4"
}
}
end
test
"it removes keys"
,
%{
conn
:
conn
}
do
response
=
conn
|>
put_req_header
(
"content-type"
,
"application/json"
)
|>
patch
(
"/api/v1/pleroma/settings/pleroma-fe"
,
%{
"foo"
=>
nil
,
"bar"
=>
nil
,
"nested"
=>
%{
"1"
=>
nil
,
"3"
=>
nil
}
})
|>
json_response_and_validate_schema
(
:ok
)
assert
response
==
%{
"nested"
=>
%{}
}
end
test
"it does not override settings for other apps"
,
%{
conn
:
conn
,
user
:
user
,
settings
:
settings
}
do
conn
|>
put_req_header
(
"content-type"
,
"application/json"
)
|>
patch
(
"/api/v1/pleroma/settings/admin-fe"
,
%{
"foo"
=>
"bar"
})
|>
json_response_and_validate_schema
(
:ok
)
user
=
Pleroma.User
.
get_by_id
(
user
.
id
)
assert
user
.
pleroma_settings_store
==
%{
"pleroma-fe"
=>
settings
,
"admin-fe"
=>
%{
"foo"
=>
"bar"
}
}
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 20, 9:58 AM (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
947557
Default Alt Text
settings_controller_test.exs (3 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment