# frozen_string_literal: true require 'spec_helper' RSpec.describe Admin::ApplicationSettings::AppearancesController do let(:admin) { create(:admin) } let(:header_message) { 'Header message' } let(:footer_message) { 'Footer' } describe 'POST #create' do let(:create_params) do { title: 'Foo', description: 'Bar', pwa_name: 'GitLab PWA', pwa_short_name: 'F', pwa_description: 'This is GitLab as PWA', header_message: header_message, footer_message: footer_message } end before do sign_in(admin) end it 'creates appearance with footer and header message' do post :create, params: { appearance: create_params } expect(Appearance.current).to have_attributes( title: 'Foo', description: 'Bar', pwa_name: 'GitLab PWA', pwa_short_name: 'F', pwa_description: 'This is GitLab as PWA', header_message: header_message, footer_message: footer_message, email_header_and_footer_enabled: false, message_background_color: '#E75E40', message_font_color: '#FFFFFF' ) end context 'when enabling header and footer in email' do it 'creates appearance with enabled flag' do create_params[:email_header_and_footer_enabled] = true post :create, params: { appearance: create_params } expect(Appearance.current).to have_attributes( title: 'Foo', description: 'Bar', pwa_name: 'GitLab PWA', pwa_short_name: 'F', pwa_description: 'This is GitLab as PWA', header_message: header_message, footer_message: footer_message, email_header_and_footer_enabled: true ) end end end describe 'PUT #update' do let(:update_params) do { header_message: header_message, footer_message: footer_message } end before do create(:appearance) sign_in(admin) end it 'updates appearance with footer and header message' do put :update, params: { appearance: update_params } expect(Appearance.current).to have_attributes( header_message: header_message, footer_message: footer_message, email_header_and_footer_enabled: false, message_background_color: '#E75E40', message_font_color: '#FFFFFF' ) end context 'when enabling header and footer in email' do it 'updates appearance with enabled flag' do update_params[:email_header_and_footer_enabled] = true post :update, params: { appearance: update_params } expect(Appearance.current).to have_attributes( header_message: header_message, footer_message: footer_message, email_header_and_footer_enabled: true ) end end end end