diff options
Diffstat (limited to 'spec/features/dashboard')
4 files changed, 159 insertions, 79 deletions
diff --git a/spec/features/dashboard/active_tab_spec.rb b/spec/features/dashboard/active_tab_spec.rb index 3a532cb4161..a1fb0beda70 100644 --- a/spec/features/dashboard/active_tab_spec.rb +++ b/spec/features/dashboard/active_tab_spec.rb @@ -3,30 +3,56 @@ require 'spec_helper' RSpec.describe 'Dashboard Active Tab', :js do - before do - stub_feature_flags(combined_menu: false) + shared_examples 'combined_menu: feature flag examples' do + before do + sign_in(create(:user)) + end - sign_in(create(:user)) - end + shared_examples 'page has active tab' do |title| + it "#{title} tab" do + pending_on_combined_menu_flag + + subject - 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 + it_behaves_like 'page has active tab', 'Projects' do + subject { visit dashboard_projects_path } + end + end - expect(page).to have_selector('.navbar-sub-nav li.active', count: 1) - expect(find('.navbar-sub-nav li.active')).to have_content(title) + context 'on dashboard groups' do + it_behaves_like 'page has active tab', 'Groups' do + subject { visit dashboard_groups_path } + end end end - context 'on dashboard projects' do - it_behaves_like 'page has active tab', 'Projects' do - subject { visit dashboard_projects_path } + context 'with combined_menu: feature flag on' do + let(:needs_rewrite_for_combined_menu_flag_on) { true } + + before do + stub_feature_flags(combined_menu: true) end + + it_behaves_like 'combined_menu: feature flag examples' end - context 'on dashboard groups' do - it_behaves_like 'page has active tab', 'Groups' do - subject { visit dashboard_groups_path } + context 'with combined_menu feature flag off' do + let(:needs_rewrite_for_combined_menu_flag_on) { false } + + before do + stub_feature_flags(combined_menu: false) end + + it_behaves_like 'combined_menu: feature flag examples' + end + + def pending_on_combined_menu_flag + pending 'https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56587' if needs_rewrite_for_combined_menu_flag_on end end diff --git a/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb b/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb index 179d9d09905..0620f819332 100644 --- a/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb +++ b/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb @@ -7,36 +7,64 @@ RSpec.describe 'The group dashboard' do let(:user) { create(:user) } - before do - stub_feature_flags(combined_menu: false) + shared_examples 'combined_menu: feature flag examples' do + before do + sign_in user + end - sign_in user - end + describe 'The top navigation' do + it 'has all the expected links' do + pending_on_combined_menu_flag - describe 'The top navigation' do - it 'has all the expected links' do - visit dashboard_groups_path + visit dashboard_groups_path - within('.navbar') do - expect(page).to have_button('Projects') - expect(page).to have_button('Groups') - expect(page).to have_link('Activity') - expect(page).to have_link('Milestones') - expect(page).to have_link('Snippets') + within('.navbar') do + expect(page).to have_button('Projects') + expect(page).to have_button('Groups') + expect(page).to have_link('Activity') + expect(page).to have_link('Milestones') + expect(page).to have_link('Snippets') + end end - end - it 'hides some links when an external authorization service is enabled' do - enable_external_authorization_service_check - visit dashboard_groups_path + it 'hides some links when an external authorization service is enabled' do + pending_on_combined_menu_flag + + enable_external_authorization_service_check + visit dashboard_groups_path - within('.navbar') do - expect(page).to have_button('Projects') - expect(page).to have_button('Groups') - expect(page).not_to have_link('Activity') - expect(page).not_to have_link('Milestones') - expect(page).to have_link('Snippets') + within('.navbar') do + expect(page).to have_button('Projects') + expect(page).to have_button('Groups') + expect(page).not_to have_link('Activity') + expect(page).not_to have_link('Milestones') + expect(page).to have_link('Snippets') + end end end end + + context 'with combined_menu: feature flag on' do + let(:needs_rewrite_for_combined_menu_flag_on) { true } + + before do + stub_feature_flags(combined_menu: true) + end + + it_behaves_like 'combined_menu: feature flag examples' + end + + context 'with combined_menu feature flag off' do + let(:needs_rewrite_for_combined_menu_flag_on) { false } + + before do + stub_feature_flags(combined_menu: false) + end + + it_behaves_like 'combined_menu: feature flag examples' + end + + def pending_on_combined_menu_flag + pending 'https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56587' if needs_rewrite_for_combined_menu_flag_on + end end diff --git a/spec/features/dashboard/shortcuts_spec.rb b/spec/features/dashboard/shortcuts_spec.rb index e96a60b2ab2..5f60832dbc9 100644 --- a/spec/features/dashboard/shortcuts_spec.rb +++ b/spec/features/dashboard/shortcuts_spec.rb @@ -3,71 +3,97 @@ require 'spec_helper' RSpec.describe 'Dashboard shortcuts', :js do - before do - stub_feature_flags(combined_menu: false) - end + shared_examples 'combined_menu: feature flag examples' do + context 'logged in' do + let(:user) { create(:user) } + let(:project) { create(:project) } - context 'logged in' do - let(:user) { create(:user) } - let(:project) { create(:project) } + before do + project.add_developer(user) + sign_in(user) + visit root_dashboard_path + end - before do - project.add_developer(user) - sign_in(user) - visit root_dashboard_path - end + it 'navigate to tabs' do + pending_on_combined_menu_flag - it 'navigate to tabs' do - find('body').send_keys([:shift, 'I']) + find('body').send_keys([:shift, 'I']) - check_page_title('Issues') + check_page_title('Issues') - find('body').send_keys([:shift, 'M']) + find('body').send_keys([:shift, 'M']) - check_page_title('Merge requests') + check_page_title('Merge requests') - find('body').send_keys([:shift, 'T']) + find('body').send_keys([:shift, 'T']) - check_page_title('To-Do List') + check_page_title('To-Do List') - find('body').send_keys([:shift, 'G']) + find('body').send_keys([:shift, 'G']) - check_page_title('Groups') + check_page_title('Groups') - find('body').send_keys([:shift, 'P']) + find('body').send_keys([:shift, 'P']) - check_page_title('Projects') + check_page_title('Projects') - find('body').send_keys([:shift, 'A']) + find('body').send_keys([:shift, 'A']) - check_page_title('Activity') + check_page_title('Activity') + end end - end - context 'logged out' do - before do - visit explore_root_path + context 'logged out' do + before do + visit explore_root_path + end + + it 'navigate to tabs' do + pending_on_combined_menu_flag + + find('body').send_keys([:shift, 'G']) + + find('.nothing-here-block') + expect(page).to have_content('No public groups') + + find('body').send_keys([:shift, 'S']) + + find('.nothing-here-block') + expect(page).to have_content('No snippets found') + + find('body').send_keys([:shift, 'P']) + + find('.nothing-here-block') + expect(page).to have_content('Explore public groups to find projects to contribute to.') + end end - it 'navigate to tabs' do - find('body').send_keys([:shift, 'G']) + def check_page_title(title) + expect(find('.page-title')).to have_content(title) + end + end - find('.nothing-here-block') - expect(page).to have_content('No public groups') + context 'with combined_menu: feature flag on' do + let(:needs_rewrite_for_combined_menu_flag_on) { true } - find('body').send_keys([:shift, 'S']) + before do + stub_feature_flags(combined_menu: true) + end - find('.nothing-here-block') - expect(page).to have_content('No snippets found') + it_behaves_like 'combined_menu: feature flag examples' + end - find('body').send_keys([:shift, 'P']) + context 'with combined_menu feature flag off' do + let(:needs_rewrite_for_combined_menu_flag_on) { false } - find('.nothing-here-block') - expect(page).to have_content('Explore public groups to find projects to contribute to.') + before do + stub_feature_flags(combined_menu: false) end + + it_behaves_like 'combined_menu: feature flag examples' end - def check_page_title(title) - expect(find('.page-title')).to have_content(title) + def pending_on_combined_menu_flag + pending 'https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56587' if needs_rewrite_for_combined_menu_flag_on end end diff --git a/spec/features/dashboard/todos/todos_spec.rb b/spec/features/dashboard/todos/todos_spec.rb index 0b4fed55f11..0bc6cc9c017 100644 --- a/spec/features/dashboard/todos/todos_spec.rb +++ b/spec/features/dashboard/todos/todos_spec.rb @@ -79,7 +79,7 @@ RSpec.describe 'Dashboard Todos' do end it 'has not "All done" message' do - expect(page).not_to have_selector('.todos-all-done') + expect(page).not_to have_selector('.empty-state') end end |