From d5da8930f9cb71666c5a20e1bbea818be48738bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Tue, 16 Jan 2018 19:13:31 +0100 Subject: In development, allow the toggling of the performance bar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The performance bar is still displayed by default in development. Signed-off-by: Rémy Coutable --- app/assets/javascripts/shortcuts.js | 2 +- app/controllers/concerns/with_performance_bar.rb | 15 ++++++++++--- lib/gitlab/performance_bar.rb | 1 + .../user_can_display_performance_bar_spec.rb | 26 +++++++++++++++++----- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/shortcuts.js b/app/assets/javascripts/shortcuts.js index d2f0d7410da..5351873e945 100644 --- a/app/assets/javascripts/shortcuts.js +++ b/app/assets/javascripts/shortcuts.js @@ -62,7 +62,7 @@ export default class Shortcuts { e.preventDefault(); const performanceBarCookieName = 'perf_bar_enabled'; if (Cookies.get(performanceBarCookieName) === 'true') { - Cookies.remove(performanceBarCookieName, { path: '/' }); + Cookies.set(performanceBarCookieName, 'false', { path: '/' }); } else { Cookies.set(performanceBarCookieName, 'true', { path: '/' }); } diff --git a/app/controllers/concerns/with_performance_bar.rb b/app/controllers/concerns/with_performance_bar.rb index 230bbe4b1aa..8e47925290a 100644 --- a/app/controllers/concerns/with_performance_bar.rb +++ b/app/controllers/concerns/with_performance_bar.rb @@ -6,13 +6,22 @@ module WithPerformanceBar end def peek_enabled? - return true if Rails.env.development? return false unless Gitlab::PerformanceBar.enabled?(current_user) if RequestStore.active? - RequestStore.fetch(:peek_enabled) { cookies[:perf_bar_enabled].present? } + RequestStore.fetch(:peek_enabled) { cookie_or_default_value } else - cookies[:perf_bar_enabled].present? + cookie_or_default_value + end + end + + private + + def cookie_or_default_value + if cookies[:perf_bar_enabled].present? + Gitlab::Utils.to_boolean(cookies[:perf_bar_enabled]) + else + cookies[:perf_bar_enabled] = 'true' if Rails.env.development? end end end diff --git a/lib/gitlab/performance_bar.rb b/lib/gitlab/performance_bar.rb index e73245b82c1..e29e168fc5a 100644 --- a/lib/gitlab/performance_bar.rb +++ b/lib/gitlab/performance_bar.rb @@ -6,6 +6,7 @@ module Gitlab EXPIRY_TIME = 5.minutes def self.enabled?(user = nil) + return true if Rails.env.development? return false unless user && allowed_group_id allowed_user_ids.include?(user.id) diff --git a/spec/features/user_can_display_performance_bar_spec.rb b/spec/features/user_can_display_performance_bar_spec.rb index 670e8dda916..975c157bcf5 100644 --- a/spec/features/user_can_display_performance_bar_spec.rb +++ b/spec/features/user_can_display_performance_bar_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'User can display performance bar', :js do - shared_examples 'performance bar is disabled' do + shared_examples 'performance bar cannot be displayed' do it 'does not show the performance bar by default' do expect(page).not_to have_css('#peek') end @@ -17,7 +17,7 @@ describe 'User can display performance bar', :js do end end - shared_examples 'performance bar is enabled' do + shared_examples 'performance bar can be displayed' do it 'does not show the performance bar by default' do expect(page).not_to have_css('#peek') end @@ -33,6 +33,18 @@ describe 'User can display performance bar', :js do end end + shared_examples 'performance bar is enabled by default in development' do + before do + allow(Rails.env).to receive(:development?).and_return(true) + end + + it 'shows the performance bar by default' do + refresh # Because we're stubbing Rails.env after the 1st visit to root_path + + expect(page).to have_css('#peek') + end + end + let(:group) { create(:group) } context 'when user is logged-out' do @@ -45,7 +57,7 @@ describe 'User can display performance bar', :js do stub_application_setting(performance_bar_allowed_group_id: nil) end - it_behaves_like 'performance bar is disabled' + it_behaves_like 'performance bar cannot be displayed' end context 'when the performance_bar feature is enabled' do @@ -53,7 +65,7 @@ describe 'User can display performance bar', :js do stub_application_setting(performance_bar_allowed_group_id: group.id) end - it_behaves_like 'performance bar is disabled' + it_behaves_like 'performance bar cannot be displayed' end end @@ -72,7 +84,8 @@ describe 'User can display performance bar', :js do stub_application_setting(performance_bar_allowed_group_id: nil) end - it_behaves_like 'performance bar is disabled' + it_behaves_like 'performance bar cannot be displayed' + it_behaves_like 'performance bar is enabled by default in development' end context 'when the performance_bar feature is enabled' do @@ -80,7 +93,8 @@ describe 'User can display performance bar', :js do stub_application_setting(performance_bar_allowed_group_id: group.id) end - it_behaves_like 'performance bar is enabled' + it_behaves_like 'performance bar is enabled by default in development' + it_behaves_like 'performance bar can be displayed' end end end -- cgit v1.2.1