diff options
-rw-r--r-- | lib/api/settings.rb | 3 | ||||
-rw-r--r-- | spec/requests/api/settings_spec.rb | 20 |
2 files changed, 18 insertions, 5 deletions
diff --git a/lib/api/settings.rb b/lib/api/settings.rb index 4aa81bf8bab..c885fcd7ea3 100644 --- a/lib/api/settings.rb +++ b/lib/api/settings.rb @@ -4,7 +4,8 @@ module API helpers do def current_settings - @current_setting ||= ApplicationSetting.current + @current_setting ||= + (ApplicationSetting.current || ApplicationSetting.create_from_defaults) end end diff --git a/spec/requests/api/settings_spec.rb b/spec/requests/api/settings_spec.rb index 2ab31c6a10a..c815a8e1d73 100644 --- a/spec/requests/api/settings_spec.rb +++ b/spec/requests/api/settings_spec.rb @@ -7,11 +7,23 @@ describe API::API, 'Settings', api: true do let(:admin) { create(:admin) } - describe "GET /applicaiton/settings" do - # TODO: Implement + describe "GET /application/settings" do + it "should return application settings" do + get api("/application/settings", admin) + expect(response.status).to eq(200) + expect(json_response).to be_an Hash + expect(json_response['default_projects_limit']).to eq(42) + expect(json_response['signin_enabled']).to be_truthy + end end - describe "PUT /applicaiton/settings" do - # TODO: Implement + describe "PUT /application/settings" do + it "should update application settings" do + put api("/application/settings", admin), + default_projects_limit: 3, signin_enabled: false + expect(response.status).to eq(200) + expect(json_response['default_projects_limit']).to eq(3) + expect(json_response['signin_enabled']).to be_falsey + end end end |