commit: a28ce13b3e7da2159fdc4800214910740a66c3bf
parent: e1b42e9aa01b0c6adab05afb9c5ee0cf9fbb41a9
Author: Matt Jankowski <mjankowski@thoughtbot.com>
Date: Mon, 22 May 2017 17:12:29 -0400
Coverage for api/web/settings controller (#3238)
Diffstat:
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/app/controllers/api/web/settings_controller.rb b/app/controllers/api/web/settings_controller.rb
@@ -6,10 +6,15 @@ class Api::Web::SettingsController < ApiController
before_action :require_user!
def update
- setting = ::Web::Setting.where(user: current_user).first_or_initialize(user: current_user)
setting.data = params[:data]
setting.save!
render_empty
end
+
+ private
+
+ def setting
+ @_setting ||= ::Web::Setting.where(user: current_user).first_or_initialize(user: current_user)
+ end
end
diff --git a/spec/controllers/api/web/settings_controller_spec.rb b/spec/controllers/api/web/settings_controller_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Api::Web::SettingsController do
+ render_views
+
+ let!(:user) { Fabricate(:user) }
+
+ describe 'PATCH #update' do
+ it 'redirects to about page' do
+ sign_in(user)
+ patch :update, format: :json, params: { data: { 'onboarded' => true } }
+
+ user.reload
+ expect(response).to have_http_status(:success)
+ expect(user_web_setting.data['onboarded']).to eq('true')
+ end
+
+ def user_web_setting
+ Web::Setting.where(user: user).first
+ end
+ end
+end