about summary refs log tree commit diff
path: root/spec/controllers/admin
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/admin')
-rw-r--r--spec/controllers/admin/action_logs_controller_spec.rb13
-rw-r--r--spec/controllers/admin/settings/branding_controller_spec.rb53
-rw-r--r--spec/controllers/admin/settings_controller_spec.rb71
3 files changed, 66 insertions, 71 deletions
diff --git a/spec/controllers/admin/action_logs_controller_spec.rb b/spec/controllers/admin/action_logs_controller_spec.rb
index c1957258f..7cd8cdf46 100644
--- a/spec/controllers/admin/action_logs_controller_spec.rb
+++ b/spec/controllers/admin/action_logs_controller_spec.rb
@@ -3,6 +3,19 @@
 require 'rails_helper'
 
 describe Admin::ActionLogsController, type: :controller do
+  render_views
+
+  # Action logs typically cause issues when their targets are not in the database
+  let!(:account) { Fabricate(:account) }
+
+  let!(:orphaned_logs) do
+    %w(
+      Account User UserRole Report DomainBlock DomainAllow
+      EmailDomainBlock UnavailableDomain Status AccountWarning
+      Announcement IpBlock Instance CustomEmoji CanonicalEmailBlock Appeal
+    ).map { |type| Admin::ActionLog.new(account: account, action: 'destroy', target_type: type, target_id: 1312).save! }
+  end
+
   describe 'GET #index' do
     it 'returns 200' do
       sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
diff --git a/spec/controllers/admin/settings/branding_controller_spec.rb b/spec/controllers/admin/settings/branding_controller_spec.rb
new file mode 100644
index 000000000..ee1c441bc
--- /dev/null
+++ b/spec/controllers/admin/settings/branding_controller_spec.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::Settings::BrandingController, type: :controller do
+  render_views
+
+  describe 'When signed in as an admin' do
+    before do
+      sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
+    end
+
+    describe 'GET #show' do
+      it 'returns http success' do
+        get :show
+
+        expect(response).to have_http_status(200)
+      end
+    end
+
+    describe 'PUT #update' do
+      before do
+        allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true)
+      end
+
+      around do |example|
+        before = Setting.site_short_description
+        Setting.site_short_description = nil
+        example.run
+        Setting.site_short_description = before
+        Setting.new_setting_key = nil
+      end
+
+      it 'cannot create a setting value for a non-admin key' do
+        expect(Setting.new_setting_key).to be_blank
+
+        patch :update, params: { form_admin_settings: { new_setting_key: 'New key value' } }
+
+        expect(response).to redirect_to(admin_settings_branding_path)
+        expect(Setting.new_setting_key).to be_nil
+      end
+
+      it 'creates a settings value that didnt exist before for eligible key' do
+        expect(Setting.site_short_description).to be_blank
+
+        patch :update, params: { form_admin_settings: { site_short_description: 'New key value' } }
+
+        expect(response).to redirect_to(admin_settings_branding_path)
+        expect(Setting.site_short_description).to eq 'New key value'
+      end
+    end
+  end
+end
diff --git a/spec/controllers/admin/settings_controller_spec.rb b/spec/controllers/admin/settings_controller_spec.rb
deleted file mode 100644
index 46749f76c..000000000
--- a/spec/controllers/admin/settings_controller_spec.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-RSpec.describe Admin::SettingsController, type: :controller do
-  render_views
-
-  describe 'When signed in as an admin' do
-    before do
-      sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
-    end
-
-    describe 'GET #edit' do
-      it 'returns http success' do
-        get :edit
-
-        expect(response).to have_http_status(200)
-      end
-    end
-
-    describe 'PUT #update' do
-      before do
-        allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true)
-      end
-
-      describe 'for a record that doesnt exist' do
-        around do |example|
-          before = Setting.site_extended_description
-          Setting.site_extended_description = nil
-          example.run
-          Setting.site_extended_description = before
-          Setting.new_setting_key = nil
-        end
-
-        it 'cannot create a setting value for a non-admin key' do
-          expect(Setting.new_setting_key).to be_blank
-
-          patch :update, params: { form_admin_settings: { new_setting_key: 'New key value' } }
-
-          expect(response).to redirect_to(edit_admin_settings_path)
-          expect(Setting.new_setting_key).to be_nil
-        end
-
-        it 'creates a settings value that didnt exist before for eligible key' do
-          expect(Setting.site_extended_description).to be_blank
-
-          patch :update, params: { form_admin_settings: { site_extended_description: 'New key value' } }
-
-          expect(response).to redirect_to(edit_admin_settings_path)
-          expect(Setting.site_extended_description).to eq 'New key value'
-        end
-      end
-
-      context do
-        around do |example|
-          site_title = Setting.site_title
-          example.run
-          Setting.site_title = site_title
-        end
-
-        it 'updates a settings value' do
-          Setting.site_title = 'Original'
-          patch :update, params: { form_admin_settings: { site_title: 'New title' } }
-
-          expect(response).to redirect_to(edit_admin_settings_path)
-          expect(Setting.site_title).to eq 'New title'
-        end
-      end
-    end
-  end
-end