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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-20 15:10:59 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-20 15:10:59 +0300
commit34c88d512f2697cd96dd3788e8ffaf1b9c8935b4 (patch)
treee7fb4118737b248dedc4111e71fc9514490cb6ea /spec/features
parent9fa24e4f9c5440e2ddc27cd787df5f5e669bed25 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features')
-rw-r--r--spec/features/ide/user_opens_merge_request_spec.rb6
-rw-r--r--spec/features/invites_spec.rb3
-rw-r--r--spec/features/issuables/shortcuts_issuable_spec.rb4
-rw-r--r--spec/features/issues/issue_sidebar_spec.rb183
-rw-r--r--spec/features/issues/service_desk_spec.rb8
-rw-r--r--spec/features/issues/todo_spec.rb10
-rw-r--r--spec/features/issues/user_edits_issue_spec.rb181
-rw-r--r--spec/features/merge_request/user_edits_assignees_sidebar_spec.rb207
-rw-r--r--spec/features/search/user_searches_for_code_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_comments_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_commits_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_issues_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_merge_requests_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_milestones_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_projects_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_users_spec.rb6
-rw-r--r--spec/features/search/user_searches_for_wiki_pages_spec.rb2
-rw-r--r--spec/features/snippets/search_snippets_spec.rb2
-rw-r--r--spec/features/users/terms_spec.rb8
19 files changed, 157 insertions, 477 deletions
diff --git a/spec/features/ide/user_opens_merge_request_spec.rb b/spec/features/ide/user_opens_merge_request_spec.rb
index 1d3cada57db..a8a56ffe310 100644
--- a/spec/features/ide/user_opens_merge_request_spec.rb
+++ b/spec/features/ide/user_opens_merge_request_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'IDE merge request', :js, feature_category: :web_ide do
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) }
let_it_be(:merge_request) { create(:merge_request, :simple, source_project: project) }
@@ -16,7 +16,9 @@ RSpec.describe 'IDE merge request', :js, feature_category: :web_ide do
end
it 'user opens merge request' do
- click_button 'Code'
+ within '.merge-request' do
+ click_button 'Code'
+ end
click_link 'Open in Web IDE'
wait_for_requests
diff --git a/spec/features/invites_spec.rb b/spec/features/invites_spec.rb
index c86d4c260ee..bc6efb63f6f 100644
--- a/spec/features/invites_spec.rb
+++ b/spec/features/invites_spec.rb
@@ -59,7 +59,7 @@ RSpec.describe 'Group or Project invitations', :aggregate_failures, feature_cate
end
context 'when invite is sent before account is created;ldap or service sign in for manual acceptance edge case' do
- let(:user) { create(:user, :no_super_sidebar, email: 'user@example.com') }
+ let(:user) { create(:user, email: 'user@example.com') }
context 'when invite clicked and not signed in' do
before do
@@ -85,7 +85,6 @@ RSpec.describe 'Group or Project invitations', :aggregate_failures, feature_cate
it 'shows message user already a member' do
expect(page).to have_current_path(invite_path(group_invite.raw_invite_token), ignore_query: true)
- expect(page).to have_link(user.name, href: user_path(user))
expect(page).to have_content('You are already a member of this group.')
end
end
diff --git a/spec/features/issuables/shortcuts_issuable_spec.rb b/spec/features/issuables/shortcuts_issuable_spec.rb
index 06387c14ee2..6bb453c34e6 100644
--- a/spec/features/issuables/shortcuts_issuable_spec.rb
+++ b/spec/features/issuables/shortcuts_issuable_spec.rb
@@ -58,14 +58,13 @@ RSpec.describe 'Blob shortcuts', :js, feature_category: :team_planning do
it "opens assignee dropdown for editing" do
find('body').native.send_key('a')
- expect(find('.block.assignee')).to have_selector('.js-sidebar-assignee-data')
+ expect(find('.block.assignee')).to have_selector('.dropdown-menu-user')
end
end
describe 'pressing "a"' do
describe 'On an Issue' do
before do
- stub_feature_flags(issue_assignees_widget: false)
visit project_issue_path(project, issue)
wait_for_requests
end
@@ -75,7 +74,6 @@ RSpec.describe 'Blob shortcuts', :js, feature_category: :team_planning do
describe 'On a Merge Request' do
before do
- stub_feature_flags(issue_assignees_widget: false)
visit project_merge_request_path(project, merge_request)
wait_for_requests
end
diff --git a/spec/features/issues/issue_sidebar_spec.rb b/spec/features/issues/issue_sidebar_spec.rb
index a015a83c793..e4df106de07 100644
--- a/spec/features/issues/issue_sidebar_spec.rb
+++ b/spec/features/issues/issue_sidebar_spec.rb
@@ -26,179 +26,66 @@ RSpec.describe 'Issue Sidebar', feature_category: :team_planning do
let(:user2) { create(:user) }
let(:issue2) { create(:issue, project: project, author: user2) }
- context 'when GraphQL assignees widget feature flag is disabled' do
- before do
- stub_feature_flags(issue_assignees_widget: false)
- end
+ include_examples 'issuable invite members' do
+ let(:issuable_path) { project_issue_path(project, issue2) }
+ end
- include_examples 'issuable invite members' do
- let(:issuable_path) { project_issue_path(project, issue2) }
+ context 'when user is a developer' do
+ before do
+ project.add_developer(user)
+ visit_issue(project, issue2)
end
- context 'when user is a developer' do
- before do
- project.add_developer(user)
- visit_issue(project, issue2)
-
- find('.block.assignee .edit-link').click
- wait_for_requests
- end
-
- it 'shows author in assignee dropdown' do
- page.within '.dropdown-menu-user' do
- expect(page).to have_content(user2.name)
- end
- end
-
- it 'shows author when filtering assignee dropdown' do
- page.within '.dropdown-menu-user' do
- find('.dropdown-input-field').set(user2.name)
-
- wait_for_requests
-
- expect(page).to have_content(user2.name)
- end
- end
-
- it 'assigns yourself' do
- find('.block.assignee .dropdown-menu-toggle').click
-
- click_button 'assign yourself'
-
- wait_for_requests
-
- find('.block.assignee .edit-link').click
-
- page.within '.dropdown-menu-user' do
- expect(page.find('.dropdown-header')).to be_visible
- expect(page.find('.dropdown-menu-user-link.is-active')).to have_content(user.name)
- end
- end
-
- it 'keeps your filtered term after filtering and dismissing the dropdown' do
- find('.dropdown-input-field').set(user2.name)
-
- wait_for_requests
-
- page.within '.dropdown-menu-user' do
- expect(page).not_to have_content 'Unassigned'
- click_link user2.name
- end
-
- within '.js-right-sidebar' do
- find('.block.assignee').click(x: 0, y: 0, offset: 0)
- find('.block.assignee .edit-link').click
- end
-
- expect(page.all('.dropdown-menu-user li').length).to eq(6)
- expect(find('.dropdown-input-field').value).to eq('')
- end
-
- it 'shows label text as "Apply" when assignees are changed' do
- project.add_developer(user)
- visit_issue(project, issue2)
-
- find('.block.assignee .edit-link').click
- wait_for_requests
+ it 'shows author in assignee dropdown' do
+ open_assignees_dropdown
- click_on 'Unassigned'
-
- expect(page).to have_link('Apply')
+ page.within '.dropdown-menu-user' do
+ expect(page).to have_content(user2.name)
end
end
- end
-
- context 'when GraphQL assignees widget feature flag is enabled' do
- # TODO: Move to shared examples when feature flag is removed: https://gitlab.com/gitlab-org/gitlab/-/issues/328185
- context 'when a privileged user can invite' do
- it 'shows a link for inviting members and launches invite modal' do
- project.add_maintainer(user)
- visit_issue(project, issue2)
- open_assignees_dropdown
+ it 'shows author when filtering assignee dropdown' do
+ open_assignees_dropdown
- page.within '.dropdown-menu-user' do
- expect(page).to have_link('Invite members')
+ page.within '.dropdown-menu-user' do
+ find('[data-testid="user-search-input"]').set(user2.name)
- click_link 'Invite members'
- end
+ wait_for_requests
- page.within invite_modal_selector do
- expect(page).to have_content("You're inviting members to the #{project.name} project")
- end
+ expect(page).to have_content(user2.name)
end
end
- context 'when user cannot invite members in assignee dropdown' do
- it 'shows author in assignee dropdown and no invite link' do
- project.add_developer(user)
- visit_issue(project, issue2)
-
- open_assignees_dropdown
+ it 'assigns yourself' do
+ click_button 'assign yourself'
+ wait_for_requests
- page.within '.dropdown-menu-user' do
- expect(page).not_to have_link('Invite members')
- end
+ page.within '.assignee' do
+ expect(page).to have_content(user.name)
end
end
- context 'when user is a developer' do
- before do
- project.add_developer(user)
- visit_issue(project, issue2)
- end
+ it 'keeps your filtered term after filtering and dismissing the dropdown' do
+ open_assignees_dropdown
- it 'shows author in assignee dropdown' do
- open_assignees_dropdown
+ find('[data-testid="user-search-input"]').set(user2.name)
+ wait_for_requests
- page.within '.dropdown-menu-user' do
- expect(page).to have_content(user2.name)
- end
+ page.within '.dropdown-menu-user' do
+ expect(page).not_to have_content 'Unassigned'
+ click_button user2.name
end
- it 'shows author when filtering assignee dropdown' do
- open_assignees_dropdown
-
- page.within '.dropdown-menu-user' do
- find('[data-testid="user-search-input"]').set(user2.name)
-
- wait_for_requests
+ find('.participants').click
+ wait_for_requests
- expect(page).to have_content(user2.name)
- end
- end
-
- it 'assigns yourself' do
- click_button 'assign yourself'
- wait_for_requests
+ open_assignees_dropdown
- page.within '.assignee' do
- expect(page).to have_content(user.name)
- end
+ page.within('.assignee') do
+ expect(page.all('[data-testid="selected-participant"]').length).to eq(1)
end
- it 'keeps your filtered term after filtering and dismissing the dropdown' do
- open_assignees_dropdown
-
- find('[data-testid="user-search-input"]').set(user2.name)
- wait_for_requests
-
- page.within '.dropdown-menu-user' do
- expect(page).not_to have_content 'Unassigned'
- click_button user2.name
- end
-
- find('.participants').click
- wait_for_requests
-
- open_assignees_dropdown
-
- page.within('.assignee') do
- expect(page.all('[data-testid="selected-participant"]').length).to eq(1)
- end
-
- expect(find('[data-testid="user-search-input"]').value).to eq(user2.name)
- end
+ expect(find('[data-testid="user-search-input"]').value).to eq(user2.name)
end
end
end
diff --git a/spec/features/issues/service_desk_spec.rb b/spec/features/issues/service_desk_spec.rb
index 8e952a23f05..8662f0f98f5 100644
--- a/spec/features/issues/service_desk_spec.rb
+++ b/spec/features/issues/service_desk_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe 'Service Desk Issue Tracker', :js, feature_category: :service_desk do
let(:project) { create(:project, :private, service_desk_enabled: true) }
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:support_bot) { Users::Internal.support_bot }
before do
@@ -21,8 +21,10 @@ RSpec.describe 'Service Desk Issue Tracker', :js, feature_category: :service_des
describe 'navigation to service desk' do
before do
visit project_path(project)
- find('.sidebar-top-level-items .shortcuts-issues').click
- find('.sidebar-sub-level-items a', text: 'Service Desk').click
+ find('#menu-section-button-monitor').click
+ within('#monitor') do
+ click_link('Service Desk')
+ end
end
it 'can navigate to the service desk from link in the sidebar' do
diff --git a/spec/features/issues/todo_spec.rb b/spec/features/issues/todo_spec.rb
index 2095453ac29..458e3fac517 100644
--- a/spec/features/issues/todo_spec.rb
+++ b/spec/features/issues/todo_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe 'Manually create a todo item from issue', :js, feature_category: :team_planning do
let!(:project) { create(:project) }
let!(:issue) { create(:issue, project: project) }
- let!(:user) { create(:user, :no_super_sidebar) }
+ let!(:user) { create(:user) }
before do
stub_feature_flags(notifications_todos_buttons: false)
@@ -20,13 +20,13 @@ RSpec.describe 'Manually create a todo item from issue', :js, feature_category:
expect(page).to have_content 'Mark as done'
end
- page.within ".header-content span[aria-label='#{_('Todos count')}']" do
+ within_testid 'todos-shortcut-button' do
expect(page).to have_content '1'
end
visit project_issue_path(project, issue)
- page.within ".header-content span[aria-label='#{_('Todos count')}']" do
+ within_testid 'todos-shortcut-button' do
expect(page).to have_content '1'
end
end
@@ -37,10 +37,10 @@ RSpec.describe 'Manually create a todo item from issue', :js, feature_category:
click_button 'Mark as done'
end
- expect(page).to have_selector(".header-content span[aria-label='#{_('Todos count')}']", visible: false)
+ expect(page).to have_selector("[data-testid='todos-shortcut-button']", text: '')
visit project_issue_path(project, issue)
- expect(page).to have_selector(".header-content span[aria-label='#{_('Todos count')}']", visible: false)
+ expect(page).to have_selector("[data-testid='todos-shortcut-button']", text: '')
end
end
diff --git a/spec/features/issues/user_edits_issue_spec.rb b/spec/features/issues/user_edits_issue_spec.rb
index 7919e8f7ed4..e9bf1ef542b 100644
--- a/spec/features/issues/user_edits_issue_spec.rb
+++ b/spec/features/issues/user_edits_issue_spec.rb
@@ -210,166 +210,79 @@ RSpec.describe "Issues > User edits issue", :js, feature_category: :team_plannin
end
describe 'update assignee' do
- context 'when GraphQL assignees widget feature flag is disabled' do
- before do
- stub_feature_flags(issue_assignees_widget: false)
- end
-
- context 'by authorized user' do
- def close_dropdown_menu_if_visible
- find('.dropdown-menu-toggle', visible: :all).tap do |toggle|
- toggle.click if toggle.visible?
- end
- end
-
- it 'allows user to select unassigned' do
- visit project_issue_path(project, issue)
-
- page.within('.assignee') do
- expect(page).to have_content user.name.to_s
-
- click_link 'Edit'
- click_link 'Unassigned'
-
- close_dropdown_menu_if_visible
-
- expect(page).to have_content 'None - assign yourself'
- end
- end
-
- it 'allows user to select an assignee' do
- issue2 = create(:issue, project: project, author: user)
- visit project_issue_path(project, issue2)
-
- page.within('.assignee') do
- expect(page).to have_content "None"
- end
-
- page.within '.assignee' do
- click_link 'Edit'
- end
-
- page.within '.dropdown-menu-user' do
- click_link user.name
- end
-
- page.within('.assignee') do
- expect(page).to have_content user.name
- end
- end
-
- it 'allows user to unselect themselves' do
- issue2 = create(:issue, project: project, author: user, assignees: [user])
-
- visit project_issue_path(project, issue2)
+ context 'by authorized user' do
+ it 'allows user to select unassigned' do
+ visit project_issue_path(project, issue)
- page.within '.assignee' do
- expect(page).to have_content user.name
+ page.within('.assignee') do
+ expect(page).to have_content user.name.to_s
- click_link 'Edit'
- click_link user.name
+ click_button('Edit')
+ wait_for_requests
- close_dropdown_menu_if_visible
+ find('[data-testid="unassign"]').click
+ find('[data-testid="title"]').click
+ wait_for_requests
- page.within '[data-testid="no-value"]' do
- expect(page).to have_content "None"
- end
- end
+ expect(page).to have_content 'None - assign yourself'
end
end
- context 'by unauthorized user' do
- let(:guest) { create(:user) }
-
- before do
- project.add_guest(guest)
- end
-
- it 'shows assignee text' do
- sign_out(:user)
- sign_in(guest)
+ it 'allows user to select an assignee' do
+ issue2 = create(:issue, project: project, author: user)
+ visit project_issue_path(project, issue2)
- visit project_issue_path(project, issue)
- expect(page).to have_content issue.assignees.first.name
+ page.within('.assignee') do
+ expect(page).to have_content "None"
+ click_button('Edit')
+ wait_for_requests
end
- end
- end
-
- context 'when GraphQL assignees widget feature flag is enabled' do
- context 'by authorized user' do
- it 'allows user to select unassigned' do
- visit project_issue_path(project, issue)
-
- page.within('.assignee') do
- expect(page).to have_content user.name.to_s
-
- click_button('Edit')
- wait_for_requests
-
- find('[data-testid="unassign"]').click
- find('[data-testid="title"]').click
- wait_for_requests
- expect(page).to have_content 'None - assign yourself'
- end
+ page.within '.dropdown-menu-user' do
+ click_button user.name
end
- it 'allows user to select an assignee' do
- issue2 = create(:issue, project: project, author: user)
- visit project_issue_path(project, issue2)
-
- page.within('.assignee') do
- expect(page).to have_content "None"
- click_button('Edit')
- wait_for_requests
- end
-
- page.within '.dropdown-menu-user' do
- click_button user.name
- end
-
- page.within('.assignee') do
- find('[data-testid="title"]').click
- wait_for_requests
+ page.within('.assignee') do
+ find('[data-testid="title"]').click
+ wait_for_requests
- expect(page).to have_content user.name
- end
+ expect(page).to have_content user.name
end
+ end
- it 'allows user to unselect themselves' do
- issue2 = create(:issue, project: project, author: user, assignees: [user])
+ it 'allows user to unselect themselves' do
+ issue2 = create(:issue, project: project, author: user, assignees: [user])
- visit project_issue_path(project, issue2)
+ visit project_issue_path(project, issue2)
- page.within '.assignee' do
- expect(page).to have_content user.name
+ page.within '.assignee' do
+ expect(page).to have_content user.name
- click_button('Edit')
- wait_for_requests
- click_button user.name
+ click_button('Edit')
+ wait_for_requests
+ click_button user.name
- find('[data-testid="title"]').click
- wait_for_requests
+ find('[data-testid="title"]').click
+ wait_for_requests
- expect(page).to have_content "None"
- end
+ expect(page).to have_content "None"
end
end
+ end
- context 'by unauthorized user' do
- let(:guest) { create(:user) }
+ context 'by unauthorized user' do
+ let(:guest) { create(:user) }
- before do
- project.add_guest(guest)
- end
+ before do
+ project.add_guest(guest)
+ end
- it 'shows assignee text' do
- sign_out(:user)
- sign_in(guest)
+ it 'shows assignee text' do
+ sign_out(:user)
+ sign_in(guest)
- visit project_issue_path(project, issue)
- expect(page).to have_content issue.assignees.first.name
- end
+ visit project_issue_path(project, issue)
+ expect(page).to have_content issue.assignees.first.name
end
end
end
diff --git a/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb b/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
index 2fcbb4e70c3..ae95bc3e11f 100644
--- a/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
+++ b/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
@@ -34,202 +34,81 @@ RSpec.describe 'Merge request > User edits assignees sidebar', :js, feature_cate
let(:sidebar_assignee_tooltip) { sidebar_assignee_avatar_link['title'] || '' }
let(:sidebar_assignee_merge_ability) { sidebar_assignee_avatar_link['data-cannot-merge'] || '' }
- context 'when GraphQL assignees widget feature flag is disabled' do
- let(:sidebar_assignee_dropdown_item) do
- sidebar_assignee_block.find(".dropdown-menu li[data-user-id=\"#{assignee.id}\"]")
- end
-
- let(:sidebar_assignee_dropdown_tooltip) { sidebar_assignee_dropdown_item.find('a')['data-title'] || '' }
+ let(:sidebar_assignee_dropdown_item) { sidebar_assignee_block.find(".dropdown-item", text: assignee.username) }
+ let(:sidebar_assignee_dropdown_tooltip) { sidebar_assignee_dropdown_item['title'] }
+ context 'when user is an owner' do
before do
- stub_feature_flags(issue_assignees_widget: false)
- end
+ stub_const('Autocomplete::UsersFinder::LIMIT', users_find_limit)
- context 'when user is an owner' do
- before do
- stub_const('Autocomplete::UsersFinder::LIMIT', users_find_limit)
+ sign_in(owner)
- sign_in(owner)
+ merge_request.assignees << assignee
- merge_request.assignees << assignee
+ visit project_merge_request_path(project, merge_request)
- visit project_merge_request_path(project, merge_request)
+ wait_for_requests
+ end
- wait_for_requests
+ shared_examples 'when assigned' do |expected_tooltip: '', expected_cannot_merge: ''|
+ it 'shows assignee name' do
+ expect(sidebar_assignee_block).to have_text(assignee.name)
end
- shared_examples 'when assigned' do |expected_tooltip: '', expected_cannot_merge: ''|
- it 'shows assignee name' do
- expect(sidebar_assignee_block).to have_text(assignee.name)
- end
+ it "sets data-cannot-merge to '#{expected_cannot_merge}'" do
+ expect(sidebar_assignee_merge_ability).to eql(expected_cannot_merge)
+ end
- it "sets data-cannot-merge to '#{expected_cannot_merge}'" do
- expect(sidebar_assignee_merge_ability).to eql(expected_cannot_merge)
+ context 'when edit is clicked' do
+ before do
+ open_assignees_dropdown
end
- context 'when edit is clicked' do
- before do
- sidebar_assignee_block.click_link('Edit')
-
- wait_for_requests
- end
-
- it "shows assignee tooltip '#{expected_tooltip}" do
- expect(sidebar_assignee_dropdown_tooltip).to eql(expected_tooltip)
- end
+ it "shows assignee tooltip '#{expected_tooltip}" do
+ expect(sidebar_assignee_dropdown_tooltip).to eql(expected_tooltip)
end
end
-
- context 'when assigned to maintainer' do
- let(:assignee) { project_maintainers.last }
-
- it_behaves_like 'when assigned', expected_tooltip: ''
- end
-
- context 'when assigned to developer' do
- let(:assignee) { project_developers.last }
-
- it_behaves_like 'when assigned', expected_tooltip: 'Cannot merge', expected_cannot_merge: 'true'
- end
end
- context 'with members shared into ancestors of the project' do
- before do
- sign_in(owner)
-
- visit project_merge_request_path(project, merge_request)
- wait_for_requests
+ context 'when assigned to maintainer' do
+ let(:assignee) { project_maintainers.last }
- sidebar_assignee_block.click_link('Edit')
- wait_for_requests
- end
-
- it 'contains the members shared into ancestors of the projects' do
- page.within '.dropdown-menu-user' do
- expect(page).to have_content shared_into_ancestor_user.name
- end
- end
+ it_behaves_like 'when assigned', expected_tooltip: ''
end
- context 'with invite members considerations' do
- let_it_be(:user) { create(:user) }
+ context 'when assigned to developer' do
+ let(:assignee) { project_developers.last }
- before do
- sign_in(user)
- end
-
- include_examples 'issuable invite members' do
- let(:issuable_path) { project_merge_request_path(project, merge_request) }
- end
+ it_behaves_like 'when assigned', expected_tooltip: 'Cannot merge', expected_cannot_merge: 'true'
end
end
- context 'when GraphQL assignees widget feature flag is enabled' do
- let(:sidebar_assignee_dropdown_item) { sidebar_assignee_block.find(".dropdown-item", text: assignee.username) }
- let(:sidebar_assignee_dropdown_tooltip) { sidebar_assignee_dropdown_item['title'] }
-
- context 'when user is an owner' do
- before do
- stub_const('Autocomplete::UsersFinder::LIMIT', users_find_limit)
-
- sign_in(owner)
-
- merge_request.assignees << assignee
-
- visit project_merge_request_path(project, merge_request)
-
- wait_for_requests
- end
-
- shared_examples 'when assigned' do |expected_tooltip: '', expected_cannot_merge: ''|
- it 'shows assignee name' do
- expect(sidebar_assignee_block).to have_text(assignee.name)
- end
-
- it "sets data-cannot-merge to '#{expected_cannot_merge}'" do
- expect(sidebar_assignee_merge_ability).to eql(expected_cannot_merge)
- end
-
- context 'when edit is clicked' do
- before do
- open_assignees_dropdown
- end
-
- it "shows assignee tooltip '#{expected_tooltip}" do
- expect(sidebar_assignee_dropdown_tooltip).to eql(expected_tooltip)
- end
- end
- end
-
- context 'when assigned to maintainer' do
- let(:assignee) { project_maintainers.last }
-
- it_behaves_like 'when assigned', expected_tooltip: ''
- end
+ context 'with members shared into ancestors of the project' do
+ before do
+ sign_in(owner)
- context 'when assigned to developer' do
- let(:assignee) { project_developers.last }
+ visit project_merge_request_path(project, merge_request)
+ wait_for_requests
- it_behaves_like 'when assigned', expected_tooltip: 'Cannot merge', expected_cannot_merge: 'true'
- end
+ open_assignees_dropdown
end
- context 'with members shared into ancestors of the project' do
- before do
- sign_in(owner)
-
- visit project_merge_request_path(project, merge_request)
- wait_for_requests
-
- open_assignees_dropdown
- end
-
- it 'contains the members shared into ancestors of the projects' do
- page.within '.dropdown-menu-user' do
- expect(page).to have_content shared_into_ancestor_user.name
- end
+ it 'contains the members shared into ancestors of the projects' do
+ page.within '.dropdown-menu-user' do
+ expect(page).to have_content shared_into_ancestor_user.name
end
end
+ end
- context 'with invite members considerations' do
- let_it_be(:user) { create(:user) }
-
- before do
- sign_in(user)
- end
-
- # TODO: Move to shared examples when feature flag is removed: https://gitlab.com/gitlab-org/gitlab/-/issues/328185
- context 'when a privileged user can invite' do
- it 'shows a link for inviting members and launches invite modal' do
- project.add_maintainer(user)
- visit project_merge_request_path(project, merge_request)
-
- open_assignees_dropdown
-
- page.within '.dropdown-menu-user' do
- expect(page).to have_link('Invite members')
-
- click_link 'Invite members'
- end
-
- page.within invite_modal_selector do
- expect(page).to have_content("You're inviting members to the #{project.name} project")
- end
- end
- end
-
- context 'when user cannot invite members in assignee dropdown' do
- it 'shows author in assignee dropdown and no invite link' do
- project.add_developer(user)
- visit project_merge_request_path(project, merge_request)
+ context 'with invite members considerations' do
+ let_it_be(:user) { create(:user) }
- open_assignees_dropdown
+ before do
+ sign_in(user)
+ end
- page.within '.dropdown-menu-user' do
- expect(page).not_to have_link('Invite members')
- end
- end
- end
+ include_examples 'issuable invite members' do
+ let(:issuable_path) { project_merge_request_path(project, merge_request) }
end
end
diff --git a/spec/features/search/user_searches_for_code_spec.rb b/spec/features/search/user_searches_for_code_spec.rb
index d2847203669..976324a5032 100644
--- a/spec/features/search/user_searches_for_code_spec.rb
+++ b/spec/features/search/user_searches_for_code_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe 'User searches for code', :js, :disable_rate_limiter, feature_cat
using RSpec::Parameterized::TableSyntax
include ListboxHelpers
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be_with_reload(:project) { create(:project, :repository, namespace: user.namespace) }
context 'when signed in' do
diff --git a/spec/features/search/user_searches_for_comments_spec.rb b/spec/features/search/user_searches_for_comments_spec.rb
index f47e692c652..f7af1797c71 100644
--- a/spec/features/search/user_searches_for_comments_spec.rb
+++ b/spec/features/search/user_searches_for_comments_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe 'User searches for comments', :js, :disable_rate_limiter, feature_category: :global_search do
let_it_be(:project) { create(:project, :repository) }
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
before do
project.add_reporter(user)
diff --git a/spec/features/search/user_searches_for_commits_spec.rb b/spec/features/search/user_searches_for_commits_spec.rb
index 140d8763813..724daf9277d 100644
--- a/spec/features/search/user_searches_for_commits_spec.rb
+++ b/spec/features/search/user_searches_for_commits_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'User searches for commits', :js, :clean_gitlab_redis_rate_limiting, feature_category: :global_search do
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository) }
let(:sha) { '6d394385cf567f80a8fd85055db1ab4c5295806f' }
diff --git a/spec/features/search/user_searches_for_issues_spec.rb b/spec/features/search/user_searches_for_issues_spec.rb
index d816b393cce..9451e337db1 100644
--- a/spec/features/search/user_searches_for_issues_spec.rb
+++ b/spec/features/search/user_searches_for_issues_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'User searches for issues', :js, :clean_gitlab_redis_rate_limiting, feature_category: :global_search do
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, namespace: user.namespace) }
let!(:issue1) { create(:issue, title: 'issue Foo', project: project, created_at: 1.hour.ago) }
diff --git a/spec/features/search/user_searches_for_merge_requests_spec.rb b/spec/features/search/user_searches_for_merge_requests_spec.rb
index 61af5e86eea..d7b52d9e07a 100644
--- a/spec/features/search/user_searches_for_merge_requests_spec.rb
+++ b/spec/features/search/user_searches_for_merge_requests_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'User searches for merge requests', :js, :clean_gitlab_redis_rate_limiting, feature_category: :global_search do
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, namespace: user.namespace) }
let_it_be(:merge_request1) { create(:merge_request, title: 'Merge Request Foo', source_project: project, target_project: project, created_at: 1.hour.ago) }
let_it_be(:merge_request2) { create(:merge_request, :simple, title: 'Merge Request Bar', source_project: project, target_project: project) }
diff --git a/spec/features/search/user_searches_for_milestones_spec.rb b/spec/features/search/user_searches_for_milestones_spec.rb
index ad62c8eb3da..7ca7958f61b 100644
--- a/spec/features/search/user_searches_for_milestones_spec.rb
+++ b/spec/features/search/user_searches_for_milestones_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe 'User searches for milestones', :js, :clean_gitlab_redis_rate_limiting,
feature_category: :global_search do
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, namespace: user.namespace) }
let_it_be(:milestone1) { create(:milestone, title: 'Foo', project: project) }
let_it_be(:milestone2) { create(:milestone, title: 'Bar', project: project) }
diff --git a/spec/features/search/user_searches_for_projects_spec.rb b/spec/features/search/user_searches_for_projects_spec.rb
index 51e5ad85e2b..48a94161927 100644
--- a/spec/features/search/user_searches_for_projects_spec.rb
+++ b/spec/features/search/user_searches_for_projects_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe 'User searches for projects', :js, :disable_rate_limiter, feature
context 'when signed out' do
context 'when block_anonymous_global_searches is disabled' do
before do
- stub_feature_flags(block_anonymous_global_searches: false, super_sidebar_logged_out: false)
+ stub_feature_flags(block_anonymous_global_searches: false)
end
include_examples 'top right search form'
diff --git a/spec/features/search/user_searches_for_users_spec.rb b/spec/features/search/user_searches_for_users_spec.rb
index b52f6aeba68..e0a07c5103d 100644
--- a/spec/features/search/user_searches_for_users_spec.rb
+++ b/spec/features/search/user_searches_for_users_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
RSpec.describe 'User searches for users', :js, :clean_gitlab_redis_rate_limiting, feature_category: :global_search do
- let_it_be(:user1) { create(:user, :no_super_sidebar, username: 'gob_bluth', name: 'Gob Bluth') }
- let_it_be(:user2) { create(:user, :no_super_sidebar, username: 'michael_bluth', name: 'Michael Bluth') }
- let_it_be(:user3) { create(:user, :no_super_sidebar, username: 'gob_2018', name: 'George Oscar Bluth') }
+ let_it_be(:user1) { create(:user, username: 'gob_bluth', name: 'Gob Bluth') }
+ let_it_be(:user2) { create(:user, username: 'michael_bluth', name: 'Michael Bluth') }
+ let_it_be(:user3) { create(:user, username: 'gob_2018', name: 'George Oscar Bluth') }
before do
sign_in(user1)
diff --git a/spec/features/search/user_searches_for_wiki_pages_spec.rb b/spec/features/search/user_searches_for_wiki_pages_spec.rb
index a5b63243d0b..65f262075f9 100644
--- a/spec/features/search/user_searches_for_wiki_pages_spec.rb
+++ b/spec/features/search/user_searches_for_wiki_pages_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe 'User searches for wiki pages', :js, :clean_gitlab_redis_rate_limiting,
feature_category: :global_search do
- let_it_be(:user) { create(:user, :no_super_sidebar) }
+ let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, :wiki_repo, namespace: user.namespace) }
let_it_be(:wiki_page) do
create(:wiki_page, wiki: project.wiki, title: 'directory/title', content: 'Some Wiki content')
diff --git a/spec/features/snippets/search_snippets_spec.rb b/spec/features/snippets/search_snippets_spec.rb
index 7a07299a14f..cf6f9825932 100644
--- a/spec/features/snippets/search_snippets_spec.rb
+++ b/spec/features/snippets/search_snippets_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe 'Search Snippets', :js, feature_category: :global_search do
it 'user searches for snippets by title' do
- user = create(:user, :no_super_sidebar)
+ user = create(:user)
public_snippet = create(:personal_snippet, :public, title: 'Beginning and Middle')
private_snippet = create(:personal_snippet, :private, title: 'Middle and End', author: user)
diff --git a/spec/features/users/terms_spec.rb b/spec/features/users/terms_spec.rb
index e51ed3a0e80..28191587572 100644
--- a/spec/features/users/terms_spec.rb
+++ b/spec/features/users/terms_spec.rb
@@ -27,7 +27,7 @@ RSpec.describe 'Users > Terms', :js, feature_category: :user_profile do
end
context 'when user is a project bot' do
- let(:project_bot) { create(:user, :no_super_sidebar, :project_bot) }
+ let(:project_bot) { create(:user, :project_bot) }
before do
enforce_terms
@@ -42,7 +42,7 @@ RSpec.describe 'Users > Terms', :js, feature_category: :user_profile do
end
context 'when user is a service account' do
- let(:service_account) { create(:user, :no_super_sidebar, :service_account) }
+ let(:service_account) { create(:user, :service_account) }
before do
enforce_terms
@@ -57,7 +57,7 @@ RSpec.describe 'Users > Terms', :js, feature_category: :user_profile do
end
context 'when signed in' do
- let(:user) { create(:user, :no_super_sidebar) }
+ let(:user) { create(:user) }
before do
sign_in(user)
@@ -115,7 +115,7 @@ RSpec.describe 'Users > Terms', :js, feature_category: :user_profile do
# Application settings are cached for a minute
travel_to 2.minutes.from_now do
- within('.nav-sidebar') do
+ within('.contextual-nav') do
click_link 'Issues'
end