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/projects')
-rw-r--r--spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb2
-rw-r--r--spec/features/projects/ci/editor_spec.rb68
-rw-r--r--spec/features/projects/commit/mini_pipeline_graph_spec.rb29
-rw-r--r--spec/features/projects/container_registry_spec.rb4
-rw-r--r--spec/features/projects/files/dockerfile_dropdown_spec.rb14
-rw-r--r--spec/features/projects/files/gitignore_dropdown_spec.rb14
-rw-r--r--spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb18
-rw-r--r--spec/features/projects/files/project_owner_creates_license_file_spec.rb7
-rw-r--r--spec/features/projects/files/template_selector_menu_spec.rb2
-rw-r--r--spec/features/projects/files/undo_template_spec.rb8
-rw-r--r--spec/features/projects/files/user_browses_files_spec.rb2
-rw-r--r--spec/features/projects/fork_spec.rb113
-rw-r--r--spec/features/projects/labels/user_edits_labels_spec.rb2
-rw-r--r--spec/features/projects/labels/user_removes_labels_spec.rb2
-rw-r--r--spec/features/projects/members/import_project_members_spec.rb79
-rw-r--r--spec/features/projects/members/user_manages_project_members_spec.rb (renamed from spec/features/projects/settings/user_manages_project_members_spec.rb)23
-rw-r--r--spec/features/projects/new_project_spec.rb23
-rw-r--r--spec/features/projects/pages/user_adds_domain_spec.rb7
-rw-r--r--spec/features/projects/pipelines/pipelines_spec.rb4
-rw-r--r--spec/features/projects/settings/access_tokens_spec.rb3
-rw-r--r--spec/features/projects/settings/packages_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/pipelines_settings_spec.rb40
-rw-r--r--spec/features/projects/settings/project_badges_spec.rb41
-rw-r--r--spec/features/projects/settings/repository_settings_spec.rb1
-rw-r--r--spec/features/projects/settings/secure_files_spec.rb2
-rw-r--r--spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb11
-rw-r--r--spec/features/projects/settings/user_renames_a_project_spec.rb2
-rw-r--r--spec/features/projects/settings/user_searches_in_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/visibility_settings_spec.rb6
-rw-r--r--spec/features/projects/show/user_manages_notifications_spec.rb2
-rw-r--r--spec/features/projects/user_changes_project_visibility_spec.rb4
-rw-r--r--spec/features/projects/work_items/work_item_spec.rb2
32 files changed, 396 insertions, 143 deletions
diff --git a/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb b/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb
index 1990526b5fc..cd7601aa94e 100644
--- a/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb
+++ b/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb
@@ -25,8 +25,6 @@ RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled
end
it 'displays suggest_gitlab_ci_yml popover' do
- page.find(:css, '.gitlab-ci-yml-selector').click
-
popover_selector = '.suggest-gitlab-ci-yml'
expect(page).to have_css(popover_selector, visible: true)
diff --git a/spec/features/projects/ci/editor_spec.rb b/spec/features/projects/ci/editor_spec.rb
index 43da57c16d1..b09aa91f4ab 100644
--- a/spec/features/projects/ci/editor_spec.rb
+++ b/spec/features/projects/ci/editor_spec.rb
@@ -11,6 +11,7 @@ RSpec.describe 'Pipeline Editor', :js, feature_category: :pipeline_composition d
let(:default_branch) { 'main' }
let(:other_branch) { 'test' }
let(:branch_with_invalid_ci) { 'despair' }
+ let(:branch_without_ci) { 'empty' }
let(:default_content) { 'Default' }
@@ -45,6 +46,7 @@ RSpec.describe 'Pipeline Editor', :js, feature_category: :pipeline_composition d
project.repository.create_file(user, project.ci_config_path_or_default, default_content, message: 'Create CI file for main', branch_name: default_branch)
project.repository.create_file(user, project.ci_config_path_or_default, valid_content, message: 'Create CI file for test', branch_name: other_branch)
project.repository.create_file(user, project.ci_config_path_or_default, invalid_content, message: 'Create CI file for test', branch_name: branch_with_invalid_ci)
+ project.repository.create_file(user, 'index.js', "file", message: 'New js file', branch_name: branch_without_ci)
visit project_ci_pipeline_editor_path(project)
wait_for_requests
@@ -62,6 +64,31 @@ RSpec.describe 'Pipeline Editor', :js, feature_category: :pipeline_composition d
end
end
+ describe 'when there are no CI config file' do
+ before do
+ visit project_ci_pipeline_editor_path(project, branch_name: branch_without_ci)
+ end
+
+ it 'renders the empty page', :aggregate_failures do
+ expect(page).to have_content 'Optimize your workflow with CI/CD Pipelines'
+ expect(page).to have_selector '[data-testid="create_new_ci_button"]'
+ end
+
+ context 'when clicking on the create new CI button' do
+ before do
+ click_button 'Configure pipeline'
+ end
+
+ it 'renders the source editor with default content', :aggregate_failures do
+ expect(page).to have_selector('#source-editor-')
+
+ page.within('#source-editor-') do
+ expect(page).to have_content('This file is a template, and might need editing before it works on your project.')
+ end
+ end
+ end
+ end
+
describe 'When CI yml has valid syntax' do
before do
visit project_ci_pipeline_editor_path(project, branch_name: other_branch)
@@ -149,15 +176,6 @@ RSpec.describe 'Pipeline Editor', :js, feature_category: :pipeline_composition d
end
shared_examples 'default branch switcher behavior' do
- def switch_to_branch(branch)
- find('[data-testid="branch-selector"]').click
-
- page.within '[data-testid="branch-selector"]' do
- click_button branch
- wait_for_requests
- end
- end
-
it 'displays current branch' do
page.within('[data-testid="branch-selector"]') do
expect(page).to have_content(default_branch)
@@ -195,12 +213,20 @@ RSpec.describe 'Pipeline Editor', :js, feature_category: :pipeline_composition d
end
describe 'Branch Switcher' do
+ def switch_to_branch(branch)
+ # close button for the popover
+ find('[data-testid="close-button"]').click
+ find('[data-testid="branch-selector"]').click
+
+ page.within '[data-testid="branch-selector"]' do
+ click_button branch
+ wait_for_requests
+ end
+ end
+
before do
visit project_ci_pipeline_editor_path(project)
wait_for_requests
-
- # close button for the popover
- find('[data-testid="close-button"]').click
end
it_behaves_like 'default branch switcher behavior'
@@ -262,6 +288,24 @@ RSpec.describe 'Pipeline Editor', :js, feature_category: :pipeline_composition d
end
describe 'Commit Form' do
+ context 'when targetting the main branch' do
+ it 'does not show the option to create a Merge request', :aggregate_failures do
+ expect(page).not_to have_selector('[data-testid="new-mr-checkbox"]')
+ expect(page).not_to have_content('Start a new merge request with these changes')
+ end
+ end
+
+ context 'when targetting any non-main branch' do
+ before do
+ find('#source-branch-field').set('new_branch', clear: :backspace)
+ end
+
+ it 'shows the option to create a Merge request', :aggregate_failures do
+ expect(page).to have_selector('[data-testid="new-mr-checkbox"]')
+ expect(page).to have_content('Start a new merge request with these changes')
+ end
+ end
+
it 'is preserved when changing tabs' do
find('#commit-message').set('message', clear: :backspace)
find('#source-branch-field').set('new_branch', clear: :backspace)
diff --git a/spec/features/projects/commit/mini_pipeline_graph_spec.rb b/spec/features/projects/commit/mini_pipeline_graph_spec.rb
index d2104799e79..5bb3d1af924 100644
--- a/spec/features/projects/commit/mini_pipeline_graph_spec.rb
+++ b/spec/features/projects/commit/mini_pipeline_graph_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe 'Mini Pipeline Graph in Commit View', :js, feature_category: :source_code_management do
let(:project) { create(:project, :public, :repository) }
- context 'when commit has pipelines' do
+ context 'when commit has pipelines and feature flag is enabled' do
let(:pipeline) do
create(
:ci_pipeline,
@@ -24,6 +24,33 @@ RSpec.describe 'Mini Pipeline Graph in Commit View', :js, feature_category: :sou
wait_for_requests
end
+ it 'displays the graphql pipeline stage' do
+ expect(page).to have_selector('[data-testid="pipeline-stage"]')
+
+ build.drop
+ end
+ end
+
+ context 'when commit has pipelines and feature flag is disabled' do
+ let(:pipeline) do
+ create(
+ :ci_pipeline,
+ status: :running,
+ project: project,
+ ref: project.default_branch,
+ sha: project.commit.sha
+ )
+ end
+
+ let(:build) { create(:ci_build, pipeline: pipeline, status: :running) }
+
+ before do
+ stub_feature_flags(ci_graphql_pipeline_mini_graph: false)
+ build.run
+ visit project_commit_path(project, project.commit.id)
+ wait_for_requests
+ end
+
it 'display icon with status' do
expect(page).to have_selector('.ci-status-icon-running')
end
diff --git a/spec/features/projects/container_registry_spec.rb b/spec/features/projects/container_registry_spec.rb
index 493435d3439..0a77c671fce 100644
--- a/spec/features/projects/container_registry_spec.rb
+++ b/spec/features/projects/container_registry_spec.rb
@@ -67,6 +67,7 @@ RSpec.describe 'Container Registry', :js, feature_category: :groups_and_projects
it 'list page has a list of images' do
visit_container_registry
+ expect(page).to have_content '1 Image repository'
expect(page).to have_content 'my/image'
end
@@ -189,8 +190,7 @@ RSpec.describe 'Container Registry', :js, feature_category: :groups_and_projects
it 'pagination is preserved after navigating back from details' do
visit_next_page
click_link 'my/image'
- breadcrumb = find '.breadcrumbs'
- breadcrumb.click_link 'Container Registry'
+ page.go_back
expect(page).to have_content 'my/image'
end
end
diff --git a/spec/features/projects/files/dockerfile_dropdown_spec.rb b/spec/features/projects/files/dockerfile_dropdown_spec.rb
index a74cde35be6..55b15ad95d1 100644
--- a/spec/features/projects/files/dockerfile_dropdown_spec.rb
+++ b/spec/features/projects/files/dockerfile_dropdown_spec.rb
@@ -12,20 +12,16 @@ RSpec.describe 'Projects > Files > User wants to add a Dockerfile file', :js, fe
end
it 'user can pick a Dockerfile file from the dropdown' do
- expect(page).to have_css('.dockerfile-selector')
+ click_button 'Apply a template'
- find('.js-dockerfile-selector').click
-
- wait_for_requests
-
- within '.dockerfile-selector' do
- find('.dropdown-input-field').set('HTTPd')
- find('.dropdown-content li', text: 'HTTPd').click
+ within '.gl-new-dropdown-panel' do
+ find('.gl-listbox-search-input').set('HTTPd')
+ find('.gl-new-dropdown-contents li', text: 'HTTPd').click
end
wait_for_requests
- expect(page).to have_css('.dockerfile-selector .dropdown-toggle-text', text: 'Apply a template')
+ expect(page).to have_css('.gl-new-dropdown-button-text', text: 'HTTPd')
expect(find('.monaco-editor')).to have_content('COPY ./ /usr/local/apache2/htdocs/')
end
end
diff --git a/spec/features/projects/files/gitignore_dropdown_spec.rb b/spec/features/projects/files/gitignore_dropdown_spec.rb
index 36b02b9b948..b1f7f1c5716 100644
--- a/spec/features/projects/files/gitignore_dropdown_spec.rb
+++ b/spec/features/projects/files/gitignore_dropdown_spec.rb
@@ -12,20 +12,16 @@ RSpec.describe 'Projects > Files > User wants to add a .gitignore file', :js, fe
end
it 'user can pick a .gitignore file from the dropdown' do
- expect(page).to have_css('.gitignore-selector')
+ click_button 'Apply a template'
- find('.js-gitignore-selector').click
-
- wait_for_requests
-
- within '.gitignore-selector' do
- find('.dropdown-input-field').set('rails')
- find('.dropdown-content li', text: 'Rails').click
+ within '.gl-new-dropdown-panel' do
+ find('.gl-listbox-search-input').set('rails')
+ find('.gl-new-dropdown-contents li', text: 'Rails').click
end
wait_for_requests
- expect(page).to have_css('.gitignore-selector .dropdown-toggle-text', text: 'Apply a template')
+ expect(page).to have_css('.gl-new-dropdown-button-text', text: 'Rails')
expect(find('.monaco-editor')).to have_content('/.bundle')
expect(find('.monaco-editor')).to have_content('config/initializers/secret_token.rb')
end
diff --git a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
index 929554ff0d6..7bfff6b68e8 100644
--- a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
+++ b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
@@ -16,20 +16,16 @@ RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js
end
it 'user can pick a template from the dropdown' do
- expect(page).to have_css('.gitlab-ci-yml-selector')
+ click_button 'Apply a template'
- find('.js-gitlab-ci-yml-selector').click
-
- wait_for_requests
-
- within '.gitlab-ci-yml-selector' do
- find('.dropdown-input-field').set('Jekyll')
- find('.dropdown-content li', text: 'Jekyll').click
+ within '.gl-new-dropdown-panel' do
+ find('.gl-listbox-search-input').set('Jekyll')
+ find('.gl-new-dropdown-contents li', text: 'Jekyll').click
end
wait_for_requests
- expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Apply a template')
+ expect(page).to have_css('.gl-new-dropdown-button-text', text: 'Jekyll')
expect(find('.monaco-editor')).to have_content('This file is a template, and might need editing before it works on your project')
expect(find('.monaco-editor')).to have_content('jekyll build -d test')
end
@@ -40,7 +36,7 @@ RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js
it 'uses the given template' do
wait_for_requests
- expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Apply a template')
+ expect(page).to have_css('.gl-new-dropdown-button-text', text: 'Jekyll')
expect(find('.monaco-editor')).to have_content('This file is a template, and might need editing before it works on your project')
expect(find('.monaco-editor')).to have_content('jekyll build -d test')
end
@@ -52,7 +48,7 @@ RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js
it 'leaves the editor empty' do
wait_for_requests
- expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Apply a template')
+ expect(page).to have_css('.gl-new-dropdown-button-text', text: 'Apply a template')
expect(find('.monaco-editor')).to have_content('')
end
end
diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
index 8ec9adaeb9a..95e96159744 100644
--- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb
+++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
@@ -20,8 +20,6 @@ RSpec.describe 'Projects > Files > Project owner creates a license file', :js, f
fill_in :file_name, with: 'LICENSE'
- expect(page).to have_selector('.license-selector')
-
select_template('MIT License')
file_content = first('.file-editor')
@@ -44,7 +42,6 @@ RSpec.describe 'Projects > Files > Project owner creates a license file', :js, f
expect(page).to have_current_path(
project_new_blob_path(project, 'master'), ignore_query: true)
expect(find('#file_name').value).to eq('LICENSE')
- expect(page).to have_selector('.license-selector')
select_template('MIT License')
@@ -62,9 +59,9 @@ RSpec.describe 'Projects > Files > Project owner creates a license file', :js, f
end
def select_template(template)
- page.within('.js-license-selector-wrap') do
+ page.within('.gl-new-dropdown') do
click_button 'Apply a template'
- click_link template
+ find('.gl-new-dropdown-contents li', text: template).click
wait_for_requests
end
end
diff --git a/spec/features/projects/files/template_selector_menu_spec.rb b/spec/features/projects/files/template_selector_menu_spec.rb
index 46c4b69bc89..920da6e72ce 100644
--- a/spec/features/projects/files/template_selector_menu_spec.rb
+++ b/spec/features/projects/files/template_selector_menu_spec.rb
@@ -58,7 +58,7 @@ end
def check_template_selector_menu_display(is_visible)
count = is_visible ? 1 : 0
- expect(page).to have_css('.template-selectors-menu', count: count)
+ expect(page).to have_css('[data-testid="template-selector"]', count: count)
end
def create_and_edit_file(file_name)
diff --git a/spec/features/projects/files/undo_template_spec.rb b/spec/features/projects/files/undo_template_spec.rb
index 4b6e6b7282c..d6f9acc68a0 100644
--- a/spec/features/projects/files/undo_template_spec.rb
+++ b/spec/features/projects/files/undo_template_spec.rb
@@ -13,7 +13,7 @@ RSpec.describe 'Projects > Files > Template Undo Button', :js, feature_category:
context 'editing a matching file and applying a template' do
before do
visit project_edit_blob_path(project, File.join(project.default_branch, "LICENSE"))
- select_file_template('.js-license-selector', 'Apache License 2.0')
+ select_file_template('Apache License 2.0')
end
it 'reverts template application' do
@@ -42,8 +42,8 @@ def check_content_reverted(template_content)
expect(page).not_to have_content(template_content)
end
-def select_file_template(template_selector_selector, template_name)
- find(template_selector_selector).click
- find('.dropdown-content li', text: template_name).click
+def select_file_template(template_name)
+ click_button 'Apply a template'
+ find('.gl-new-dropdown-contents li', text: template_name).click
wait_for_requests
end
diff --git a/spec/features/projects/files/user_browses_files_spec.rb b/spec/features/projects/files/user_browses_files_spec.rb
index 3b30a620257..e93c9427c91 100644
--- a/spec/features/projects/files/user_browses_files_spec.rb
+++ b/spec/features/projects/files/user_browses_files_spec.rb
@@ -155,7 +155,7 @@ RSpec.describe "User browses files", :js, feature_category: :groups_and_projects
click_link("d")
end
- expect(page).to have_link("..", href: project_tree_path(project, "markdown/"))
+ expect(page).to have_link("..", href: project_tree_path(project, "markdown"))
page.within(".tree-table") do
click_link("README.md")
diff --git a/spec/features/projects/fork_spec.rb b/spec/features/projects/fork_spec.rb
index 7d734d5d2df..c159b40003c 100644
--- a/spec/features/projects/fork_spec.rb
+++ b/spec/features/projects/fork_spec.rb
@@ -14,23 +14,80 @@ RSpec.describe 'Project fork', feature_category: :groups_and_projects do
end
shared_examples 'fork button on project page' do
- it 'allows user to fork project from the project page' do
- visit project_path(project)
+ context 'when the user has access to only one namespace and has already forked the project', :js do
+ before do
+ fork_project(project, user, repository: true, namespace: user.namespace)
+ end
- expect(page).not_to have_css('a.disabled', text: 'Fork')
- end
+ it 'allows user to go to their fork' do
+ visit project_path(project)
- context 'user has exceeded personal project limit' do
- before do
- user.update!(projects_limit: 0)
+ path = namespace_project_path(user, user.fork_of(project))
+
+ fork_button = find_link 'Fork'
+ expect(fork_button['href']).to include(path)
+ expect(fork_button['class']).not_to include('disabled')
end
+ end
- it 'disables fork button on project page' do
+ shared_examples 'fork button creates new fork' do
+ it 'allows user to fork the project from the project page' do
visit project_path(project)
- expect(page).to have_css('a.disabled', text: 'Fork')
+ path = new_project_fork_path(project)
+
+ fork_button = find_link 'Fork'
+ expect(fork_button['href']).to include(path)
+ expect(fork_button['class']).not_to include('disabled')
+ end
+
+ context 'when the user cannot fork the project' do
+ let(:project) do
+ # Disabling the repository makes sure that the user cannot fork the project
+ create(:project, :public, :repository, :repository_disabled, description: 'some description')
+ end
+
+ it 'disables fork button on project page' do
+ visit project_path(project)
+
+ path = new_project_fork_path(project)
+
+ fork_button = find_link 'Fork'
+ expect(fork_button['href']).to include(path)
+ expect(fork_button['class']).to include('disabled')
+ end
+ end
+
+ context 'user has exceeded personal project limit' do
+ before do
+ user.update!(projects_limit: 0)
+ end
+
+ it 'disables fork button on project page' do
+ visit project_path(project)
+
+ path = new_project_fork_path(project)
+
+ fork_button = find_link 'Fork'
+ expect(fork_button['href']).to include(path)
+ expect(fork_button['class']).to include('disabled')
+ end
end
end
+
+ context 'when the user has not already forked the project', :js do
+ it_behaves_like 'fork button creates new fork'
+ end
+
+ context 'when the user has access to more than one namespace', :js do
+ let(:group) { create(:group) }
+
+ before do
+ group.add_developer(user)
+ end
+
+ it_behaves_like 'fork button creates new fork'
+ end
end
shared_examples 'create fork page' do |fork_page_text|
@@ -42,11 +99,11 @@ RSpec.describe 'Project fork', feature_category: :groups_and_projects do
context 'forking is enabled' do
let(:forking_access_level) { ProjectFeature::ENABLED }
- it 'enables fork button' do
+ it 'enables fork button', :js do
visit project_path(project)
- expect(page).to have_css('a', text: 'Fork')
- expect(page).not_to have_css('a.disabled', text: 'Select')
+ fork_button = find_link 'Fork'
+ expect(fork_button['class']).not_to include('disabled')
end
it 'renders new project fork page' do
@@ -60,11 +117,13 @@ RSpec.describe 'Project fork', feature_category: :groups_and_projects do
context 'forking is disabled' do
let(:forking_access_level) { ProjectFeature::DISABLED }
- it 'render a disabled fork button' do
+ it 'render a disabled fork button', :js do
visit project_path(project)
- expect(page).to have_css('a.disabled', text: 'Fork')
- expect(page).to have_css('a.count', text: '0')
+ fork_button = find_link 'Fork'
+
+ expect(fork_button['class']).to include('disabled')
+ expect(page).to have_selector('[data-testid="forks-count"]')
end
it 'does not render new project fork page' do
@@ -82,11 +141,13 @@ RSpec.describe 'Project fork', feature_category: :groups_and_projects do
end
context 'user is not a team member' do
- it 'render a disabled fork button' do
+ it 'render a disabled fork button', :js do
visit project_path(project)
- expect(page).to have_css('a.disabled', text: 'Fork')
- expect(page).to have_css('a.count', text: '0')
+ fork_button = find_link 'Fork'
+
+ expect(fork_button['class']).to include('disabled')
+ expect(page).to have_selector('[data-testid="forks-count"]')
end
it 'does not render new project fork page' do
@@ -101,12 +162,13 @@ RSpec.describe 'Project fork', feature_category: :groups_and_projects do
project.add_developer(user)
end
- it 'enables fork button' do
+ it 'enables fork button', :js do
visit project_path(project)
- expect(page).to have_css('a', text: 'Fork')
- expect(page).to have_css('a.count', text: '0')
- expect(page).not_to have_css('a.disabled', text: 'Fork')
+ fork_button = find_link 'Fork'
+
+ expect(fork_button['class']).not_to include('disabled')
+ expect(page).to have_selector('[data-testid="forks-count"]')
end
it 'renders new project fork page' do
@@ -185,7 +247,8 @@ RSpec.describe 'Project fork', feature_category: :groups_and_projects do
visit project_path(project)
- expect(page).to have_css('.fork-count', text: 2)
+ forks_count_button = find('[data-testid="forks-count"]')
+ expect(forks_count_button).to have_content("2")
end
end
end
@@ -195,7 +258,9 @@ private
def create_fork(group_obj = group)
visit project_path(project)
- find('.fork-btn').click
+
+ click_link 'Fork'
+
submit_form(group_obj)
wait_for_requests
end
diff --git a/spec/features/projects/labels/user_edits_labels_spec.rb b/spec/features/projects/labels/user_edits_labels_spec.rb
index f90f215f9fc..bf1182cfddd 100644
--- a/spec/features/projects/labels/user_edits_labels_spec.rb
+++ b/spec/features/projects/labels/user_edits_labels_spec.rb
@@ -36,6 +36,6 @@ RSpec.describe "User edits labels", feature_category: :team_planning do
click_link 'Delete label'
end
- expect(page).to have_content('Label was removed')
+ expect(page).to have_content("#{label.title} was removed").and have_no_content("#{label.title}</span>")
end
end
diff --git a/spec/features/projects/labels/user_removes_labels_spec.rb b/spec/features/projects/labels/user_removes_labels_spec.rb
index 55dc52b8ccf..d0175c53951 100644
--- a/spec/features/projects/labels/user_removes_labels_spec.rb
+++ b/spec/features/projects/labels/user_removes_labels_spec.rb
@@ -30,7 +30,7 @@ RSpec.describe "User removes labels", feature_category: :team_planning do
first(:link, "Delete label").click
- expect(page).to have_content("Label was removed").and have_no_content(label.title)
+ expect(page).to have_content("#{label.title} was removed").and have_no_content("#{label.title}</span>")
end
end
diff --git a/spec/features/projects/members/import_project_members_spec.rb b/spec/features/projects/members/import_project_members_spec.rb
new file mode 100644
index 00000000000..20cf42cd135
--- /dev/null
+++ b/spec/features/projects/members/import_project_members_spec.rb
@@ -0,0 +1,79 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Projects > Members > Import project members', :js, feature_category: :groups_and_projects do
+ include Features::MembersHelpers
+ include ListboxHelpers
+
+ let_it_be(:user) { create(:user) }
+ let_it_be(:user_mike) { create(:user, name: 'Mike') }
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) do
+ create(:project, group: group).tap do |p|
+ p.add_maintainer(user)
+ p.add_developer(create(:user))
+ end
+ end
+
+ let_it_be(:project2) do
+ create(:project).tap do |p|
+ p.add_maintainer(user)
+ p.add_reporter(user_mike)
+ end
+ end
+
+ before do
+ sign_in(user)
+
+ visit(project_project_members_path(project))
+ end
+
+ it 'imports a team from another project' do
+ select_project(project2)
+ submit_import
+
+ expect(find_member_row(user_mike)).to have_content('Reporter')
+ end
+
+ it 'fails to import the other team when source project does not exist' do
+ select_project(project2)
+ submit_import { project2.destroy! }
+
+ within import_project_members_modal_selector do
+ expect(page).to have_content('Unable to import project members')
+ end
+ end
+
+ it 'fails to import some members' do
+ group.add_owner(user_mike)
+
+ select_project(project2)
+ submit_import
+
+ within import_project_members_modal_selector do
+ expect(page).to have_content "The following 1 out of 2 members could not be added"
+ expect(page).to have_content "@#{user_mike.username}: Access level should be greater than or equal to " \
+ "Owner inherited membership from group #{group.name}"
+ end
+ end
+
+ def select_project(source_project)
+ click_on 'Import from a project'
+ click_on 'Select a project'
+ wait_for_requests
+
+ select_listbox_item(source_project.name_with_namespace)
+ end
+
+ def submit_import
+ yield if block_given? # rubocop:disable RSpec/AvoidConditionalStatements
+
+ click_button 'Import project members'
+ wait_for_requests
+ end
+
+ def import_project_members_modal_selector
+ '[data-testid="import-project-members-modal"]'
+ end
+end
diff --git a/spec/features/projects/settings/user_manages_project_members_spec.rb b/spec/features/projects/members/user_manages_project_members_spec.rb
index df571e13979..b1c3132767c 100644
--- a/spec/features/projects/settings/user_manages_project_members_spec.rb
+++ b/spec/features/projects/members/user_manages_project_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User manages project members', feature_category: :groups_and_projects do
+RSpec.describe 'Projects > Settings > User manages project members', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
include Spec::Support::Helpers::ModalHelpers
include ListboxHelpers
@@ -20,7 +20,7 @@ RSpec.describe 'Projects > Settings > User manages project members', feature_cat
sign_in(user)
end
- it 'cancels a team member', :js do
+ it 'cancels a team member' do
visit(project_project_members_path(project))
show_actions_for_username(user_dmitriy)
@@ -37,24 +37,7 @@ RSpec.describe 'Projects > Settings > User manages project members', feature_cat
expect(members_table).not_to have_content(user_dmitriy.username)
end
- it 'imports a team from another project', :js do
- project2.add_maintainer(user)
- project2.add_reporter(user_mike)
-
- visit(project_project_members_path(project))
-
- click_on 'Import from a project'
- click_on 'Select a project'
- wait_for_requests
-
- select_listbox_item(project2.name_with_namespace)
- click_button 'Import project members'
- wait_for_requests
-
- expect(find_member_row(user_mike)).to have_content('Reporter')
- end
-
- it 'shows all members of project shared group', :js do
+ it 'shows all members of project shared group' do
group.add_owner(user)
group.add_developer(user_dmitriy)
diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb
index d05b7649f94..6e6d9ff4af9 100644
--- a/spec/features/projects/new_project_spec.rb
+++ b/spec/features/projects/new_project_spec.rb
@@ -46,7 +46,8 @@ RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
end
it 'shows a message if multiple levels are restricted' do
- Gitlab::CurrentSettings.update!(
+ stub_application_setting(default_project_visibility: Gitlab::VisibilityLevel::PUBLIC)
+ stub_application_setting(
restricted_visibility_levels: [Gitlab::VisibilityLevel::PRIVATE, Gitlab::VisibilityLevel::INTERNAL]
)
@@ -56,15 +57,21 @@ RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
expect(page).to have_content 'Other visibility settings have been disabled by the administrator.'
end
- it 'shows a message if all levels are restricted' do
- Gitlab::CurrentSettings.update!(
- restricted_visibility_levels: Gitlab::VisibilityLevel.values
- )
+ context 'with prevent_visibility_restriction feature flag off' do
+ before do
+ stub_feature_flags(prevent_visibility_restriction: false)
+ end
- visit new_project_path
- click_link 'Create blank project'
+ it 'shows a message if all levels are restricted' do
+ Gitlab::CurrentSettings.update!(
+ restricted_visibility_levels: Gitlab::VisibilityLevel.values
+ )
- expect(page).to have_content 'Visibility settings have been disabled by the administrator.'
+ visit new_project_path
+ click_link 'Create blank project'
+
+ expect(page).to have_content 'Visibility settings have been disabled by the administrator.'
+ end
end
end
diff --git a/spec/features/projects/pages/user_adds_domain_spec.rb b/spec/features/projects/pages/user_adds_domain_spec.rb
index ae459197b38..14b01cb63d2 100644
--- a/spec/features/projects/pages/user_adds_domain_spec.rb
+++ b/spec/features/projects/pages/user_adds_domain_spec.rb
@@ -178,7 +178,12 @@ RSpec.describe 'User adds pages domain', :js, feature_category: :pages do
visit project_pages_path(project)
within('#content-body') { click_link 'Edit' }
- expect(page).to have_field :domain_dns, with: "#{domain.domain} ALIAS namespace1.example.com."
+ expect(page).to have_field :domain_dns, with: format(
+ "%{domain} ALIAS %{namespace}.%{pages_host}.",
+ domain: domain.domain,
+ namespace: domain.project.root_namespace.path,
+ pages_host: Settings.pages.host
+ )
end
end
end
diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index 25eddf64f99..26fcd8ca3ca 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -559,7 +559,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do
find(dropdown_selector).click
within('.js-builds-dropdown-list') do
- build_element = page.find('.mini-pipeline-graph-dropdown-item')
+ build_element = page.find('.pipeline-job-item')
expect(build_element['title']).to eq('build - failed - (unknown failure)')
end
end
@@ -818,7 +818,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do
describe 'when the `ios_specific_templates` experiment is enabled and the "Set up a runner" button is clicked' do
before do
stub_experiments(ios_specific_templates: :candidate)
- create(:project_setting, project: project, target_platforms: %w(ios))
+ project.project_setting.update!(target_platforms: %w(ios))
visit project_pipelines_path(project)
click_button 'Set up a runner'
end
diff --git a/spec/features/projects/settings/access_tokens_spec.rb b/spec/features/projects/settings/access_tokens_spec.rb
index 210815f341c..9025bd9052e 100644
--- a/spec/features/projects/settings/access_tokens_spec.rb
+++ b/spec/features/projects/settings/access_tokens_spec.rb
@@ -49,6 +49,7 @@ RSpec.describe 'Project > Settings > Access Tokens', :js, feature_category: :use
it 'shows Owner option' do
visit resource_settings_access_tokens_path
+ click_button 'Add new token'
expect(role_dropdown_options).to include('Owner')
end
end
@@ -63,6 +64,7 @@ RSpec.describe 'Project > Settings > Access Tokens', :js, feature_category: :use
it 'does not show Owner option for a maintainer' do
visit resource_settings_access_tokens_path
+ click_button 'Add new token'
expect(role_dropdown_options).not_to include('Owner')
end
end
@@ -81,6 +83,7 @@ RSpec.describe 'Project > Settings > Access Tokens', :js, feature_category: :use
it 'shows access token creation form and text' do
visit project_settings_access_tokens_path(personal_project)
+ click_button 'Add new token'
expect(page).to have_selector('#js-new-access-token-form')
end
end
diff --git a/spec/features/projects/settings/packages_settings_spec.rb b/spec/features/projects/settings/packages_settings_spec.rb
index 564a71e9a23..5277ede8e52 100644
--- a/spec/features/projects/settings/packages_settings_spec.rb
+++ b/spec/features/projects/settings/packages_settings_spec.rb
@@ -35,7 +35,7 @@ RSpec.describe 'Projects > Settings > Packages', :js, feature_category: :groups_
let(:packages_enabled) { false }
it 'does not show up in UI' do
- expect(page).not_to have_selector('[data-testid="toggle-label"]', text: 'Packages')
+ expect(page).not_to have_selector('[data-testid="toggle-label"]', text: 'Package registry')
end
end
end
diff --git a/spec/features/projects/settings/pipelines_settings_spec.rb b/spec/features/projects/settings/pipelines_settings_spec.rb
index ef1c03f4f27..59d9e6d105e 100644
--- a/spec/features/projects/settings/pipelines_settings_spec.rb
+++ b/spec/features/projects/settings/pipelines_settings_spec.rb
@@ -65,6 +65,46 @@ RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :gr
expect(checkbox).not_to be_checked
end
+ it 'disables forward deployment rollback allowed when forward deployment enabled is unchecked', :js do
+ visit project_settings_ci_cd_path(project)
+
+ forward_deployment_checkbox = find_field('project_ci_cd_settings_attributes_forward_deployment_enabled')
+ forward_deployment_rollback_checkbox =
+ find_field('project_ci_cd_settings_attributes_forward_deployment_rollback_allowed')
+ expect(forward_deployment_checkbox).to be_checked
+ expect(forward_deployment_rollback_checkbox).not_to be_disabled
+
+ forward_deployment_checkbox.click
+
+ expect(forward_deployment_rollback_checkbox).to be_disabled
+
+ forward_deployment_checkbox.click
+
+ expect(forward_deployment_rollback_checkbox).not_to be_disabled
+ end
+
+ it 'updates forward_deployment_rollback_allowed' do
+ visit project_settings_ci_cd_path(project)
+
+ checkbox = find_field('project_ci_cd_settings_attributes_forward_deployment_rollback_allowed')
+ expect(checkbox).to be_checked
+
+ checkbox.set(false)
+
+ page.within '#js-general-pipeline-settings' do
+ click_on 'Save changes'
+ end
+
+ expect(page.status_code).to eq(200)
+
+ page.within '#js-general-pipeline-settings' do
+ expect(page).to have_button('Save changes', disabled: false)
+ end
+
+ checkbox = find_field('project_ci_cd_settings_attributes_forward_deployment_rollback_allowed')
+ expect(checkbox).not_to be_checked
+ end
+
describe 'Auto DevOps' do
context 'when auto devops is turned on instance-wide' do
before do
diff --git a/spec/features/projects/settings/project_badges_spec.rb b/spec/features/projects/settings/project_badges_spec.rb
index 1f170300155..a66bf5cd3a9 100644
--- a/spec/features/projects/settings/project_badges_spec.rb
+++ b/spec/features/projects/settings/project_badges_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
page.within '.badge-settings' do
wait_for_requests
- rows = all('.card-body > div')
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 2
expect(rows[0]).to have_content group_badge.link_url
expect(rows[1]).to have_content project_badge.link_url
@@ -33,6 +33,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
context 'adding a badge', :js do
it 'user can preview a badge' do
+ click_button 'Add badge'
page.within '.badge-settings form' do
fill_in 'badge-link-url', with: badge_link_url
fill_in 'badge-image-url', with: badge_image_url
@@ -44,6 +45,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
end
it do
+ click_button 'Add badge'
page.within '.badge-settings' do
fill_in 'badge-link-url', with: badge_link_url
fill_in 'badge-image-url', with: badge_image_url
@@ -51,7 +53,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
click_button 'Add badge'
wait_for_requests
- within '.card-body' do
+ within '.gl-card-body' do
expect(find('a')[:href]).to eq badge_link_url
expect(find('a img')[:src]).to eq badge_image_url
end
@@ -63,32 +65,35 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
it 'form is shown when clicking edit button in list' do
page.within '.badge-settings' do
wait_for_requests
- rows = all('.card-body > div')
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 2
rows[1].find('[aria-label="Edit"]').click
+ end
- within 'form' do
- expect(find('#badge-link-url').value).to eq project_badge.link_url
- expect(find('#badge-image-url').value).to eq project_badge.image_url
- end
+ page.within '.gl-modal' do
+ expect(find('#badge-link-url').value).to eq project_badge.link_url
+ expect(find('#badge-image-url').value).to eq project_badge.image_url
end
end
it 'updates a badge when submitting the edit form' do
page.within '.badge-settings' do
wait_for_requests
- rows = all('.card-body > div')
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 2
rows[1].find('[aria-label="Edit"]').click
- within 'form' do
- fill_in 'badge-link-url', with: badge_link_url
- fill_in 'badge-image-url', with: badge_image_url
+ end
- click_button 'Save changes'
- wait_for_requests
- end
+ page.within '.gl-modal' do
+ fill_in 'badge-link-url', with: badge_link_url
+ fill_in 'badge-image-url', with: badge_image_url
- rows = all('.card-body > div')
+ click_button 'Save changes'
+ wait_for_requests
+ end
+
+ page.within '.badge-settings' do
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 2
expect(rows[1]).to have_content badge_link_url
end
@@ -102,7 +107,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
it 'shows a modal when deleting a badge' do
wait_for_requests
- rows = all('.card-body > div')
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 2
click_delete_button(rows[1])
@@ -112,14 +117,14 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
it 'deletes a badge when confirming the modal' do
wait_for_requests
- rows = all('.card-body > div')
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 2
click_delete_button(rows[1])
find('.modal .btn-danger').click
wait_for_requests
- rows = all('.card-body > div')
+ rows = all('.gl-card-body tbody tr')
expect(rows.length).to eq 1
expect(rows[0]).to have_content group_badge.link_url
end
diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb
index d53aefe5a4e..838ac67ee3d 100644
--- a/spec/features/projects/settings/repository_settings_spec.rb
+++ b/spec/features/projects/settings/repository_settings_spec.rb
@@ -156,6 +156,7 @@ RSpec.describe 'Projects > Settings > Repository settings', feature_category: :g
before do
visit project_settings_repository_path(project)
+ click_button 'Add new'
end
it 'shows push mirror settings', :js do
diff --git a/spec/features/projects/settings/secure_files_spec.rb b/spec/features/projects/settings/secure_files_spec.rb
index 7ff1a5f3568..5f94e215a5f 100644
--- a/spec/features/projects/settings/secure_files_spec.rb
+++ b/spec/features/projects/settings/secure_files_spec.rb
@@ -46,7 +46,7 @@ RSpec.describe 'Secure Files', :js, feature_category: :groups_and_projects do
within '#js-secure-files' do
expect(page).to have_content(file.name)
- find('button.btn-danger-secondary').click
+ find('[data-testid="delete-button"]').click
end
expect(page).to have_content("Delete #{file.name}?")
diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
index 0006762a971..4e8f42ae792 100644
--- a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
+++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
@@ -91,6 +91,7 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :groups
deploy_key_title = attributes_for(:key)[:title]
deploy_key_body = attributes_for(:key)[:key]
+ click_button("Add new key")
fill_in("deploy_key_title", with: deploy_key_title)
fill_in("deploy_key_key", with: deploy_key_body)
@@ -102,6 +103,16 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :groups
expect(page).to have_content(deploy_key_title)
end
end
+
+ it "click on cancel hides the form" do
+ click_button("Add new key")
+
+ expect(page).to have_css('.gl-new-card-add-form')
+
+ click_button("Cancel")
+
+ expect(page).not_to have_css('.gl-new-card-add-form')
+ end
end
context "attaching existing keys" do
diff --git a/spec/features/projects/settings/user_renames_a_project_spec.rb b/spec/features/projects/settings/user_renames_a_project_spec.rb
index 5a58c049601..b7ae595a3a9 100644
--- a/spec/features/projects/settings/user_renames_a_project_spec.rb
+++ b/spec/features/projects/settings/user_renames_a_project_spec.rb
@@ -61,7 +61,7 @@ RSpec.describe 'Projects > Settings > User renames a project', feature_category:
it 'shows error for invalid project name' do
change_name(project, '🧮 foo bar ☁️')
expect(page).to have_field 'Project name', with: '🧮 foo bar ☁️'
- expect(page).not_to have_content "Name can contain only letters, digits, emojis '_', '.', dash and space. It must start with letter, digit, emoji or '_'."
+ expect(page).not_to have_content "Name can contain only letters, digits, emoji '_', '.', dash and space. It must start with letter, digit, emoji or '_'."
end
end
end
diff --git a/spec/features/projects/settings/user_searches_in_settings_spec.rb b/spec/features/projects/settings/user_searches_in_settings_spec.rb
index 978b678c334..1ca4b761788 100644
--- a/spec/features/projects/settings/user_searches_in_settings_spec.rb
+++ b/spec/features/projects/settings/user_searches_in_settings_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe 'User searches project settings', :js, feature_category: :groups_
visit project_settings_access_tokens_path(project)
end
- it_behaves_like 'can highlight results', 'Expiration date'
+ it_behaves_like 'can highlight results', 'Token name'
end
context 'in Repository page' do
diff --git a/spec/features/projects/settings/visibility_settings_spec.rb b/spec/features/projects/settings/visibility_settings_spec.rb
index 7d41b60199c..890f514d3da 100644
--- a/spec/features/projects/settings/visibility_settings_spec.rb
+++ b/spec/features/projects/settings/visibility_settings_spec.rb
@@ -30,11 +30,11 @@ RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_categor
context 'disable email notifications' do
it 'is visible' do
- expect(page).to have_selector('.js-emails-disabled', visible: true)
+ expect(page).to have_selector('.js-emails-enabled', visible: true)
end
it 'accepts the changed state' do
- find('.js-emails-disabled input[type="checkbox"]').click
+ find('.js-emails-enabled input[type="checkbox"]').click
expect { save_permissions_group }.to change { updated_emails_disabled? }.to(true)
end
@@ -59,7 +59,7 @@ RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_categor
context 'disable email notifications' do
it 'is not available' do
- expect(page).not_to have_selector('.js-emails-disabled', visible: true)
+ expect(page).not_to have_selector('.js-emails-enabled', visible: true)
end
end
end
diff --git a/spec/features/projects/show/user_manages_notifications_spec.rb b/spec/features/projects/show/user_manages_notifications_spec.rb
index 455b931e7f3..bbf31c1e1e1 100644
--- a/spec/features/projects/show/user_manages_notifications_spec.rb
+++ b/spec/features/projects/show/user_manages_notifications_spec.rb
@@ -77,7 +77,7 @@ RSpec.describe 'Projects > Show > User manages notifications', :js, feature_cate
end
context 'when project emails are disabled' do
- let(:project) { create(:project, :public, :repository, emails_disabled: true) }
+ let_it_be(:project) { create(:project, :public, :repository, emails_enabled: false) }
it 'is disabled' do
visit project_path(project)
diff --git a/spec/features/projects/user_changes_project_visibility_spec.rb b/spec/features/projects/user_changes_project_visibility_spec.rb
index f27a659f65f..24f24229f9c 100644
--- a/spec/features/projects/user_changes_project_visibility_spec.rb
+++ b/spec/features/projects/user_changes_project_visibility_spec.rb
@@ -66,8 +66,8 @@ RSpec.describe 'User changes public project visibility', :js, feature_category:
let(:project) { create(:project, :empty_repo, :public) }
it 'saves without confirmation' do
- expect(page).to have_selector('.js-emails-disabled', visible: true)
- find('.js-emails-disabled input[type="checkbox"]').click
+ expect(page).to have_selector('.js-emails-enabled', visible: true)
+ find('.js-emails-enabled input[type="checkbox"]').click
page.within('#js-shared-permissions') do
click_button 'Save changes'
diff --git a/spec/features/projects/work_items/work_item_spec.rb b/spec/features/projects/work_items/work_item_spec.rb
index e996a76b1c5..618d3e2efd0 100644
--- a/spec/features/projects/work_items/work_item_spec.rb
+++ b/spec/features/projects/work_items/work_item_spec.rb
@@ -40,7 +40,7 @@ RSpec.describe 'Work item', :js, feature_category: :team_planning do
end
it_behaves_like 'work items title'
- it_behaves_like 'work items status'
+ it_behaves_like 'work items toggle status button'
it_behaves_like 'work items assignees'
it_behaves_like 'work items labels'
it_behaves_like 'work items comments', :issue