about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--spec/controllers/application_controller_spec.rb24
2 files changed, 25 insertions, 1 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index d4428c054..5267489e8 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -61,7 +61,7 @@ class ApplicationController < ActionController::Base
   end
 
   def single_user_mode?
-    @single_user_mode ||= Rails.configuration.x.single_user_mode && Account.first
+    @single_user_mode ||= Rails.configuration.x.single_user_mode && Account.any?
   end
 
   def current_account
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
new file mode 100644
index 000000000..44830e12b
--- /dev/null
+++ b/spec/controllers/application_controller_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ApplicationController do
+  describe 'helper_method :single_user_mode?' do
+    it 'returns false if it is in single_user_mode but there is no account' do
+      allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
+      expect(controller.view_context.single_user_mode?).to eq false
+    end
+
+    it 'returns false if there is an account but it is not in single_user_mode' do
+      allow(Rails.configuration.x).to receive(:single_user_mode).and_return(false)
+      Fabricate(:account)
+      expect(controller.view_context.single_user_mode?).to eq false
+    end
+
+    it 'returns true if it is in single_user_mode and there is an account' do
+      allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
+      Fabricate(:account)
+      expect(controller.view_context.single_user_mode?).to eq true
+    end
+  end
+end