Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/dashboard')
-rw-r--r--spec/features/dashboard/active_tab_spec.rb56
-rw-r--r--spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb74
-rw-r--r--spec/features/dashboard/shortcuts_spec.rb106
-rw-r--r--spec/features/dashboard/todos/todos_spec.rb2
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