diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2018-08-01 18:17:47 +0300 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2018-08-01 18:17:47 +0300 |
commit | ea6fc714bb0306ac8ca56b5dafe4b6777aafe5fc (patch) | |
tree | 5d9673f0e526acbdb3285147024064f89d45dc23 /spec/features | |
parent | 47244ad5ea4e887ecb6dffa9f7b96846adbf4b6f (diff) | |
parent | 29dd1c14db6899c3858ca906e076c7b7fbbaa0e2 (diff) |
Merge branch '41416-making-instance-wide-data-tools-more-accessible' into 'master'
Resolve "Making instance-wide data tools more accessible"
Closes #41416 and #48507
See merge request gitlab-org/gitlab-ce!20874
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/dashboard/active_tab_spec.rb | 28 | ||||
-rw-r--r-- | spec/features/dashboard/instance_statistics_spec.rb | 60 | ||||
-rw-r--r-- | spec/features/instance_statistics/cohorts_spec.rb (renamed from spec/features/admin/admin_cohorts_spec.rb) | 4 | ||||
-rw-r--r-- | spec/features/instance_statistics/conversational_development_index_spec.rb (renamed from spec/features/admin/admin_conversational_development_index_spec.rb) | 8 |
4 files changed, 83 insertions, 17 deletions
diff --git a/spec/features/dashboard/active_tab_spec.rb b/spec/features/dashboard/active_tab_spec.rb index 8bab501134b..f4d0f82d248 100644 --- a/spec/features/dashboard/active_tab_spec.rb +++ b/spec/features/dashboard/active_tab_spec.rb @@ -7,32 +7,38 @@ RSpec.describe 'Dashboard Active Tab', :js do shared_examples 'page has active tab' do |title| it "#{title} tab" do + subject + expect(page).to have_selector('.navbar-sub-nav li.active', count: 1) expect(find('.navbar-sub-nav li.active')).to have_content(title) end end context 'on dashboard projects' do - before do - visit dashboard_projects_path + it_behaves_like 'page has active tab', 'Projects' do + subject { visit dashboard_projects_path } end - - it_behaves_like 'page has active tab', 'Projects' end context 'on dashboard groups' do - before do - visit dashboard_groups_path + it_behaves_like 'page has active tab', 'Groups' do + subject { visit dashboard_groups_path } end - - it_behaves_like 'page has active tab', 'Groups' end context 'on activity projects' do - before do - visit activity_dashboard_path + it_behaves_like 'page has active tab', 'Activity' do + subject { visit activity_dashboard_path } end + end - it_behaves_like 'page has active tab', 'Activity' + context 'on instance statistics' do + subject { visit instance_statistics_root_path } + + it 'shows Instance Statistics` as active' do + subject + + expect(find('.navbar-sub-nav li.active')).to have_link('Instance Statistics') + end end end diff --git a/spec/features/dashboard/instance_statistics_spec.rb b/spec/features/dashboard/instance_statistics_spec.rb new file mode 100644 index 00000000000..21ee2796bd8 --- /dev/null +++ b/spec/features/dashboard/instance_statistics_spec.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'Showing instance statistics' do + before do + sign_in user if user + end + + # Using a path that is publicly accessible + subject { visit explore_projects_path } + + context 'for unauthenticated users' do + let(:user) { nil } + + it 'does not show the instance statistics link' do + subject + + expect(page).not_to have_link('Instance Statistics') + end + end + + context 'for regular users' do + let(:user) { create(:user) } + + context 'when instance statistics are publicly available' do + before do + stub_application_setting(instance_statistics_visibility_private: false) + end + + it 'shows the instance statistics link' do + subject + + expect(page).to have_link('Instance Statistics') + end + end + + context 'when instance statistics are not publicly available' do + before do + stub_application_setting(instance_statistics_visibility_private: true) + end + + it 'shows the instance statistics link' do + subject + + expect(page).not_to have_link('Instance Statistics') + end + end + end + + context 'for admins' do + let(:user) { create(:admin) } + + it 'shows the instance statistics link' do + subject + + expect(page).to have_link('Instance Statistics') + end + end +end diff --git a/spec/features/admin/admin_cohorts_spec.rb b/spec/features/instance_statistics/cohorts_spec.rb index 9dce9494b97..81fc5eff980 100644 --- a/spec/features/admin/admin_cohorts_spec.rb +++ b/spec/features/instance_statistics/cohorts_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -describe 'Admin cohorts page' do +describe 'Cohorts page' do before do sign_in(create(:admin)) end @@ -8,7 +8,7 @@ describe 'Admin cohorts page' do it 'See users count per month' do 2.times { create(:user) } - visit admin_cohorts_path + visit instance_statistics_cohorts_path expect(page).to have_content("#{Time.now.strftime('%b %Y')} 3 0") end diff --git a/spec/features/admin/admin_conversational_development_index_spec.rb b/spec/features/instance_statistics/conversational_development_index_spec.rb index 2d2c7df5364..d441a7a5af9 100644 --- a/spec/features/admin/admin_conversational_development_index_spec.rb +++ b/spec/features/instance_statistics/conversational_development_index_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe 'Admin Conversational Development Index' do +describe 'Conversational Development Index' do before do sign_in(create(:admin)) end @@ -9,7 +9,7 @@ describe 'Admin Conversational Development Index' do it 'shows empty state' do stub_application_setting(usage_ping_enabled: false) - visit admin_conversational_development_index_path + visit instance_statistics_conversational_development_index_index_path expect(page).to have_content('Usage ping is not enabled') end @@ -19,7 +19,7 @@ describe 'Admin Conversational Development Index' do it 'shows empty state' do stub_application_setting(usage_ping_enabled: true) - visit admin_conversational_development_index_path + visit instance_statistics_conversational_development_index_index_path expect(page).to have_content('Data is still calculating') end @@ -30,7 +30,7 @@ describe 'Admin Conversational Development Index' do stub_application_setting(usage_ping_enabled: true) create(:conversational_development_index_metric) - visit admin_conversational_development_index_path + visit instance_statistics_conversational_development_index_index_path expect(page).to have_content( 'Issues created per active user 1.2 You 9.3 Lead 13.3%' |