From aa662cecada500b57d8959f311a2a74e41e6211a Mon Sep 17 00:00:00 2001
From: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Date: Mon, 22 May 2017 13:00:07 +0900
Subject: [PATCH] single_user_mode? always returns boolean (#3215)

This change also adds a specification for the method.
---
 app/controllers/application_controller.rb     |  2 +-
 .../application_controller_spec.rb            | 24 +++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 spec/controllers/application_controller_spec.rb

diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index d4428c0549..5267489e87 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 0000000000..44830e12b2
--- /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