summaryrefslogtreecommitdiff
path: root/spec/controllers/admin/application_settings/appearances_controller_spec.rb
blob: f21c93e85d29ae11e3177f0313b323e524ce45df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# 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