42 lines
954 B
Ruby
42 lines
954 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'rails_helper'
|
||
|
|
||
|
RSpec.describe '/api/web/settings' do
|
||
|
describe 'PATCH /api/web/settings' do
|
||
|
let(:user) { Fabricate :user }
|
||
|
|
||
|
context 'when signed in' do
|
||
|
before { sign_in(user) }
|
||
|
|
||
|
it 'updates setting and responds with success' do
|
||
|
patch '/api/web/settings', params: { data: { 'onboarded' => true } }
|
||
|
|
||
|
expect(user_web_setting.data)
|
||
|
.to include('onboarded' => 'true')
|
||
|
|
||
|
expect(response)
|
||
|
.to have_http_status(200)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when not signed in' do
|
||
|
it 'responds with unprocessable and does not modify setting' do
|
||
|
patch '/api/web/settings', params: { data: { 'onboarded' => true } }
|
||
|
|
||
|
expect(user_web_setting)
|
||
|
.to be_nil
|
||
|
|
||
|
expect(response)
|
||
|
.to have_http_status(422)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def user_web_setting
|
||
|
Web::Setting
|
||
|
.where(user: user)
|
||
|
.first
|
||
|
end
|
||
|
end
|
||
|
end
|