You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
# 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) |
|
expect(response.content_type) |
|
.to start_with('application/json') |
|
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) |
|
expect(response.content_type) |
|
.to start_with('application/json') |
|
end |
|
end |
|
|
|
def user_web_setting |
|
Web::Setting |
|
.where(user: user) |
|
.first |
|
end |
|
end |
|
end
|
|
|