summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-01-16 19:13:31 +0100
committerRémy Coutable <remy@rymai.me>2018-01-16 20:54:36 +0100
commitd5da8930f9cb71666c5a20e1bbea818be48738bc (patch)
treee526a8fad7424d17454063b6016cc6beb1c7ecfa
parentf17d7a4beef61d0156865f1a9070fb53c8f05c99 (diff)
downloadgitlab-ce-42006-allow-toggling-of-performance-bar-in-development.tar.gz
In development, allow the toggling of the performance bar42006-allow-toggling-of-performance-bar-in-development
The performance bar is still displayed by default in development. Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--app/assets/javascripts/shortcuts.js2
-rw-r--r--app/controllers/concerns/with_performance_bar.rb15
-rw-r--r--lib/gitlab/performance_bar.rb1
-rw-r--r--spec/features/user_can_display_performance_bar_spec.rb26
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