From cbd98048570f147a04b40e9e536f7a8f5c5fdfd6 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki 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