From 603ceea21a0144ff1900106efa0c17e759eeceef Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 6 Jul 2015 16:47:19 +0200 Subject: [PATCH] Add tests and improve logic Signed-off-by: Dmitriy Zaporozhets --- lib/api/settings.rb | 3 ++- 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