Convert settings/preferences/appearance controller spec to system (#33323)
				
					
				
			This commit is contained in:
		@@ -1,35 +0,0 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Settings::Preferences::AppearanceController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let!(:user) { Fabricate(:user) }
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in user, scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'GET #show' do
 | 
			
		||||
    before do
 | 
			
		||||
      get :show
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'returns http success with private cache control headers', :aggregate_failures do
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
      expect(response.headers['Cache-Control']).to include('private, no-store')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'PUT #update' do
 | 
			
		||||
    subject { put :update, params: { user: { settings_attributes: { theme: 'contrast' } } } }
 | 
			
		||||
 | 
			
		||||
    it 'redirects correctly' do
 | 
			
		||||
      expect { subject }
 | 
			
		||||
        .to change { user.reload.settings.theme }.to('contrast')
 | 
			
		||||
 | 
			
		||||
      expect(response).to redirect_to(settings_preferences_appearance_path)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										43
									
								
								spec/system/settings/preferences/appearance_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								spec/system/settings/preferences/appearance_spec.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe 'Settings preferences appearance page' do
 | 
			
		||||
  let(:user) { Fabricate :user }
 | 
			
		||||
 | 
			
		||||
  before { sign_in user }
 | 
			
		||||
 | 
			
		||||
  it 'Views and updates user prefs' do
 | 
			
		||||
    visit settings_preferences_appearance_path
 | 
			
		||||
 | 
			
		||||
    expect(page)
 | 
			
		||||
      .to have_private_cache_control
 | 
			
		||||
 | 
			
		||||
    select 'contrast', from: theme_selection_field
 | 
			
		||||
    check confirm_reblog_field
 | 
			
		||||
    uncheck confirm_delete_field
 | 
			
		||||
 | 
			
		||||
    expect { save_changes }
 | 
			
		||||
      .to change { user.reload.settings.theme }.to('contrast')
 | 
			
		||||
      .and change { user.reload.settings['web.reblog_modal'] }.to(true)
 | 
			
		||||
      .and(change { user.reload.settings['web.delete_modal'] }.to(false))
 | 
			
		||||
    expect(page)
 | 
			
		||||
      .to have_title(I18n.t('settings.appearance'))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def save_changes
 | 
			
		||||
    within('form') { click_on submit_button }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def confirm_delete_field
 | 
			
		||||
    I18n.t('simple_form.labels.defaults.setting_delete_modal')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def confirm_reblog_field
 | 
			
		||||
    I18n.t('simple_form.labels.defaults.setting_boost_modal')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def theme_selection_field
 | 
			
		||||
    I18n.t('simple_form.labels.defaults.setting_theme')
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user