summaryrefslogtreecommitdiff
path: root/spec/features/projects
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/projects')
-rw-r--r--spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb12
-rw-r--r--spec/features/projects/commit/cherry_pick_spec.rb4
-rw-r--r--spec/features/projects/diffs/diff_show_spec.rb2
-rw-r--r--spec/features/projects/environments/environment_spec.rb10
-rw-r--r--spec/features/projects/files/template_type_dropdown_spec.rb143
-rw-r--r--spec/features/projects/files/undo_template_spec.rb19
-rw-r--r--spec/features/projects/fork_spec.rb15
-rw-r--r--spec/features/projects/import_export/export_file_spec.rb4
-rw-r--r--spec/features/projects/issues/design_management/user_uploads_designs_spec.rb2
-rw-r--r--spec/features/projects/jobs_spec.rb14
-rw-r--r--spec/features/projects/labels/sort_labels_spec.rb20
-rw-r--r--spec/features/projects/members/manage_members_spec.rb22
-rw-r--r--spec/features/projects/members/sorting_spec.rb4
-rw-r--r--spec/features/projects/milestones/milestones_sorting_spec.rb15
-rw-r--r--spec/features/projects/navbar_spec.rb4
-rw-r--r--spec/features/projects/new_project_spec.rb4
-rw-r--r--spec/features/projects/pages/user_edits_settings_spec.rb2
-rw-r--r--spec/features/projects/pipelines/legacy_pipelines_spec.rb 0
-rw-r--r--spec/features/projects/pipelines/pipeline_spec.rb44
-rw-r--r--spec/features/projects/pipelines/pipelines_spec.rb21
-rw-r--r--spec/features/projects/settings/monitor_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/pipelines_settings_spec.rb24
-rw-r--r--spec/features/projects/settings/user_manages_project_members_spec.rb7
-rw-r--r--spec/features/projects/settings/user_searches_in_settings_spec.rb1
-rw-r--r--spec/features/projects/terraform_spec.rb11
-rw-r--r--spec/features/projects/tree/create_directory_spec.rb8
-rw-r--r--spec/features/projects/tree/create_file_spec.rb7
-rw-r--r--spec/features/projects/tree/tree_show_spec.rb6
-rw-r--r--spec/features/projects/tree/upload_file_spec.rb7
29 files changed, 123 insertions, 311 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 a497be4cbc3..b723bd5690a 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
@@ -24,12 +24,6 @@ RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled
expect(file_name.value).to have_content('.gitlab-ci.yml')
end
- it 'chooses the .gitlab-ci.yml Template Type' do
- template_type = page.find(:css, '.template-type-selector .dropdown-toggle-text')
-
- expect(template_type.text).to have_content('.gitlab-ci.yml')
- end
-
it 'displays suggest_gitlab_ci_yml popover' do
page.find(:css, '.gitlab-ci-yml-selector').click
@@ -60,12 +54,6 @@ RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled
expect(file_name.value).not_to have_content('.gitlab-ci.yml')
end
- it 'does not choose the .gitlab-ci.yml Template Type' do
- template_type = page.find(:css, '.template-type-selector .dropdown-toggle-text')
-
- expect(template_type.text).to have_content('Select a template type')
- end
-
it 'does not display suggest_gitlab_ci_yml popover' do
popover_selector = '.b-popover.suggest-gitlab-ci-yml'
diff --git a/spec/features/projects/commit/cherry_pick_spec.rb b/spec/features/projects/commit/cherry_pick_spec.rb
index dc8b84283a1..4b9b692b652 100644
--- a/spec/features/projects/commit/cherry_pick_spec.rb
+++ b/spec/features/projects/commit/cherry_pick_spec.rb
@@ -78,9 +78,9 @@ RSpec.describe 'Cherry-pick Commits', :js, feature_category: :source_code_manage
end
page.within("#{modal_selector} .dropdown-menu") do
- find('[data-testid="dropdown-search-box"]').set('feature')
+ fill_in 'Search branches', with: 'feature'
wait_for_requests
- click_button 'feature'
+ find('.gl-dropdown-item-text-wrapper', exact_text: 'feature').click
end
submit_cherry_pick
diff --git a/spec/features/projects/diffs/diff_show_spec.rb b/spec/features/projects/diffs/diff_show_spec.rb
index 973c61de31d..eb700e10141 100644
--- a/spec/features/projects/diffs/diff_show_spec.rb
+++ b/spec/features/projects/diffs/diff_show_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Diff file viewer', :js, :with_clean_rails_cache, feature_category: :code_review do
+RSpec.describe 'Diff file viewer', :js, :with_clean_rails_cache, feature_category: :code_review_workflow do
let(:project) { create(:project, :public, :repository) }
def visit_commit(sha, anchor: nil)
diff --git a/spec/features/projects/environments/environment_spec.rb b/spec/features/projects/environments/environment_spec.rb
index 75913082803..91401d19fd1 100644
--- a/spec/features/projects/environments/environment_spec.rb
+++ b/spec/features/projects/environments/environment_spec.rb
@@ -52,6 +52,16 @@ RSpec.describe 'Environment', feature_category: :projects do
end
end
+ context 'without deployments' do
+ before do
+ visit_environment(environment)
+ end
+
+ it 'does not show deployments', :js do
+ expect(page).to have_content('You don\'t have any deployments right now.')
+ end
+ end
+
context 'with deployments' do
before do
visit_environment(environment)
diff --git a/spec/features/projects/files/template_type_dropdown_spec.rb b/spec/features/projects/files/template_type_dropdown_spec.rb
deleted file mode 100644
index 990b118d172..00000000000
--- a/spec/features/projects/files/template_type_dropdown_spec.rb
+++ /dev/null
@@ -1,143 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'Projects > Files > Template type dropdown selector', :js, feature_category: :projects do
- let(:project) { create(:project, :repository) }
- let(:user) { project.first_owner }
-
- before do
- sign_in user
- end
-
- context 'editing a non-matching file' do
- before do
- create_and_edit_file('.random-file.js')
- end
-
- it 'not displayed' do
- check_type_selector_display(false)
- end
-
- it 'selects every template type correctly' do
- fill_in 'file_path', with: '.gitignore'
- try_selecting_all_types
- end
-
- it 'updates template type toggle value when template is chosen' do
- fill_in 'file_path', with: '.gitignore'
- select_template('gitignore', 'Actionscript')
- check_type_selector_toggle_text('.gitignore')
- end
- end
-
- context 'editing a matching file' do
- before do
- visit project_edit_blob_path(project, File.join(project.default_branch, 'LICENSE'))
- end
-
- it 'displayed' do
- check_type_selector_display(true)
- end
-
- it 'selects every template type correctly' do
- try_selecting_all_types
- end
-
- context 'user previews changes' do
- before do
- click_link 'Preview changes'
- end
-
- it 'type selector is hidden and shown correctly' do
- check_type_selector_display(false)
- click_link 'Write'
- check_type_selector_display(true)
- end
- end
- end
-
- context 'creating a matching file' do
- before do
- visit project_new_blob_path(project, 'master', file_name: '.gitignore')
- end
-
- it 'is displayed' do
- check_type_selector_display(true)
- end
-
- it 'toggle is set to the correct value' do
- select_template('gitignore', 'Actionscript')
- check_type_selector_toggle_text('.gitignore')
- end
-
- it 'sets the toggle text when selecting the template type' do
- select_template_type('.gitignore')
- check_type_selector_toggle_text('.gitignore')
- end
-
- it 'selects every template type correctly' do
- try_selecting_all_types
- end
- end
-
- context 'creating a file' do
- before do
- visit project_new_blob_path(project, project.default_branch)
- end
-
- it 'type selector is shown' do
- check_type_selector_display(true)
- end
-
- it 'toggle is set to the proper value' do
- check_type_selector_toggle_text('Select a template type')
- end
-
- it 'selects every template type correctly' do
- try_selecting_all_types
- end
- end
-end
-
-def check_type_selector_display(is_visible)
- count = is_visible ? 1 : 0
- expect(page).to have_css('.js-template-type-selector', count: count)
-end
-
-def try_selecting_all_types
- try_selecting_template_type('LICENSE', 'Apply a template')
- try_selecting_template_type('Dockerfile', 'Apply a template')
- try_selecting_template_type('.gitlab-ci.yml', 'Apply a template')
- try_selecting_template_type('.gitignore', 'Apply a template')
-end
-
-def try_selecting_template_type(template_type, selector_label)
- select_template_type(template_type)
- check_template_selector_display(selector_label)
-end
-
-def select_template_type(template_type)
- find('.js-template-type-selector').click
- find('.dropdown-content li', text: template_type).click
-end
-
-def select_template(type, template)
- find(".js-#{type}-selector-wrap").click
- find('.dropdown-content li', text: template).click
-end
-
-def check_template_selector_display(content)
- expect(page).to have_content(content)
-end
-
-def check_type_selector_toggle_text(template_type)
- dropdown_toggle_button = find('.template-type-selector .dropdown-toggle-text')
- expect(dropdown_toggle_button).to have_content(template_type)
-end
-
-def create_and_edit_file(file_name)
- visit project_new_blob_path(project, 'master', file_name: file_name)
- click_button "Commit changes"
- visit project_edit_blob_path(project, File.join(project.default_branch, file_name))
-end
diff --git a/spec/features/projects/files/undo_template_spec.rb b/spec/features/projects/files/undo_template_spec.rb
index afc9a5fd232..0dfed209ce9 100644
--- a/spec/features/projects/files/undo_template_spec.rb
+++ b/spec/features/projects/files/undo_template_spec.rb
@@ -13,19 +13,6 @@ 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_type('LICENSE')
- select_file_template('.js-license-selector', 'Apache License 2.0')
- end
-
- it 'reverts template application' do
- try_template_undo('http://www.apache.org/licenses/', 'Apply a template')
- end
- end
-
- context 'creating a non-matching file' do
- before do
- visit project_new_blob_path(project, 'master')
- select_file_template_type('LICENSE')
select_file_template('.js-license-selector', 'Apache License 2.0')
end
@@ -53,7 +40,6 @@ end
def check_content_reverted(template_content)
find('.b-toaster a', text: 'Undo').click
expect(page).not_to have_content(template_content)
- expect(page).to have_css('.template-type-selector .dropdown-toggle-text')
end
def select_file_template(template_selector_selector, template_name)
@@ -61,8 +47,3 @@ def select_file_template(template_selector_selector, template_name)
find('.dropdown-content li', text: template_name).click
wait_for_requests
end
-
-def select_file_template_type(template_type)
- find('.js-template-type-selector').click
- find('.dropdown-content li', text: template_type).click
-end
diff --git a/spec/features/projects/fork_spec.rb b/spec/features/projects/fork_spec.rb
index 3867f7fd086..8b484141a95 100644
--- a/spec/features/projects/fork_spec.rb
+++ b/spec/features/projects/fork_spec.rb
@@ -3,6 +3,7 @@
require 'spec_helper'
RSpec.describe 'Project fork', feature_category: :projects do
+ include ListboxHelpers
include ProjectForksHelper
let(:user) { create(:user) }
@@ -137,10 +138,9 @@ RSpec.describe 'Project fork', feature_category: :projects do
let(:user) { create(:group_member, :maintainer, user: create(:user), group: group).user }
def submit_form(group_obj = group)
- find('[data-testid="select_namespace_dropdown"]').click
- find('[data-testid="select_namespace_dropdown_search_field"]').fill_in(with: group_obj.name)
- click_button group_obj.name
-
+ click_button(s_('ForkProject|Select a namespace'))
+ send_keys group_obj.name
+ select_listbox_item(group_obj.name)
click_button 'Fork project'
end
@@ -151,6 +151,13 @@ RSpec.describe 'Project fork', feature_category: :projects do
expect(page).to have_content 'Forked from'
end
+ it 'redirects to the source project when cancel is clicked' do
+ visit new_project_fork_path(project)
+ click_on 'Cancel'
+
+ expect(page).to have_current_path(project_path(project))
+ end
+
it 'shows the new forked project on the forks page' do
visit new_project_fork_path(project)
submit_form
diff --git a/spec/features/projects/import_export/export_file_spec.rb b/spec/features/projects/import_export/export_file_spec.rb
index 8986ce91ae3..0230c9e835b 100644
--- a/spec/features/projects/import_export/export_file_spec.rb
+++ b/spec/features/projects/import_export/export_file_spec.rb
@@ -20,7 +20,9 @@ RSpec.describe 'Import/Export - project export integration test', :js, feature_c
}
end
- let(:safe_hashes) { { yaml_variables: %w[key value public] } }
+ let(:safe_hashes) do
+ { yaml_variables: %w[key value public] }
+ end
let(:project) { setup_project }
diff --git a/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb b/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb
index 858d6751afa..55aa6db23c7 100644
--- a/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb
+++ b/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe 'User uploads new design', :js, feature_category: :design_managem
context "when the feature is available" do
let(:feature_enabled) { true }
- it 'uploads designs' do
+ it 'uploads designs', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/358845' do
upload_design(logo_fixture, count: 1)
expect(page).to have_selector('.js-design-list-item', count: 1)
diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb
index 557a20ff2d6..4734a607ef1 100644
--- a/spec/features/projects/jobs_spec.rb
+++ b/spec/features/projects/jobs_spec.rb
@@ -739,7 +739,12 @@ RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :proj
it 'shows manual action empty state', :js do
expect(page).to have_content(job.detailed_status(user).illustration[:title])
expect(page).to have_content('This job requires a manual action')
- expect(page).to have_content('This job requires manual intervention to start. Before starting this job, you can add variables below for last-minute configuration changes.')
+ expect(page).to have_content(
+ _(
+ 'This job does not start automatically and must be started manually. ' \
+ 'You can add CI/CD variables below for last-minute configuration changes before starting the job.'
+ )
+ )
expect(page).to have_button('Trigger this manual action')
end
@@ -772,7 +777,12 @@ RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :proj
wait_for_requests
expect(page).to have_content('This job requires a manual action')
- expect(page).to have_content('This job requires manual intervention to start. Before starting this job, you can add variables below for last-minute configuration changes.')
+ expect(page).to have_content(
+ _(
+ 'This job does not start automatically and must be started manually. ' \
+ 'You can add CI/CD variables below for last-minute configuration changes before starting the job.'
+ )
+ )
expect(page).to have_button('Trigger this manual action')
end
end
diff --git a/spec/features/projects/labels/sort_labels_spec.rb b/spec/features/projects/labels/sort_labels_spec.rb
index 378a575348e..74ce2f40df8 100644
--- a/spec/features/projects/labels/sort_labels_spec.rb
+++ b/spec/features/projects/labels/sort_labels_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'Sort labels', :js, feature_category: :team_planning do
+ include ListboxHelpers
+
let(:user) { create(:user) }
let(:project) { create(:project) }
let!(:label1) { create(:label, title: 'Foo', description: 'Lorem ipsum', project: project) }
@@ -28,16 +30,16 @@ RSpec.describe 'Sort labels', :js, feature_category: :team_planning do
it 'sorts by date' do
click_button 'Name'
- sort_options = find('ul[role="listbox"]').all('li').collect(&:text)
-
- expect(sort_options[0]).to eq('Name')
- expect(sort_options[1]).to eq('Name, descending')
- expect(sort_options[2]).to eq('Last created')
- expect(sort_options[3]).to eq('Oldest created')
- expect(sort_options[4]).to eq('Updated date')
- expect(sort_options[5]).to eq('Oldest updated')
+ expect_listbox_items([
+ 'Name',
+ 'Name, descending',
+ 'Last created',
+ 'Oldest created',
+ 'Updated date',
+ 'Oldest updated'
+ ])
- find('li', text: 'Name, descending').click
+ select_listbox_item('Name, descending')
# assert default sorting
within '.other-labels' do
diff --git a/spec/features/projects/members/manage_members_spec.rb b/spec/features/projects/members/manage_members_spec.rb
index 3ffa402dc2c..615ef1b03dd 100644
--- a/spec/features/projects/members/manage_members_spec.rb
+++ b/spec/features/projects/members/manage_members_spec.rb
@@ -139,17 +139,15 @@ RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :on
it 'can only remove non-Owner members' do
page.within find_member_row(project_owner) do
- expect(page).not_to have_button('Remove member')
+ expect(page).not_to have_selector user_action_dropdown
end
- # Open modal
- page.within find_member_row(project_developer) do
- click_button 'Remove member'
- end
+ show_actions_for_username(project_developer)
+ click_button _('Remove member')
within_modal do
expect(page).to have_unchecked_field 'Also unassign this user from related issues and merge requests'
- click_button('Remove member')
+ click_button _('Remove member')
end
wait_for_requests
@@ -163,18 +161,12 @@ RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :on
let(:current_user) { group_owner }
it 'can remove any direct member' do
- page.within find_member_row(project_owner) do
- expect(page).to have_button('Remove member')
- end
-
- # Open modal
- page.within find_member_row(project_owner) do
- click_button 'Remove member'
- end
+ show_actions_for_username(project_owner)
+ click_button _('Remove member')
within_modal do
expect(page).to have_unchecked_field 'Also unassign this user from related issues and merge requests'
- click_button('Remove member')
+ click_button _('Remove member')
end
wait_for_requests
diff --git a/spec/features/projects/members/sorting_spec.rb b/spec/features/projects/members/sorting_spec.rb
index 5c72d9efeb3..6df1e974f42 100644
--- a/spec/features/projects/members/sorting_spec.rb
+++ b/spec/features/projects/members/sorting_spec.rb
@@ -48,7 +48,7 @@ RSpec.describe 'Projects > Members > Sorting', :js, feature_category: :subgroups
expect(first_row.text).to have_content(maintainer.name)
expect(second_row.text).to have_content(developer.name)
- expect_sort_by('Created on', :asc)
+ expect_sort_by('User created', :asc)
end
it 'sorts by user created on descending' do
@@ -57,7 +57,7 @@ RSpec.describe 'Projects > Members > Sorting', :js, feature_category: :subgroups
expect(first_row.text).to have_content(developer.name)
expect(second_row.text).to have_content(maintainer.name)
- expect_sort_by('Created on', :desc)
+ expect_sort_by('User created', :desc)
end
it 'sorts by last activity ascending' do
diff --git a/spec/features/projects/milestones/milestones_sorting_spec.rb b/spec/features/projects/milestones/milestones_sorting_spec.rb
index 8a8e7d07435..9bf04164a09 100644
--- a/spec/features/projects/milestones/milestones_sorting_spec.rb
+++ b/spec/features/projects/milestones/milestones_sorting_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'Milestones sorting', :js, feature_category: :team_planning do
+ include ListboxHelpers
+
let(:user) { create(:user) }
let(:project) { create(:project, name: 'test', namespace: user.namespace) }
let(:milestones_for_sort_by) do
@@ -40,14 +42,13 @@ RSpec.describe 'Milestones sorting', :js, feature_category: :team_planning do
# assert milestones listed for given sort order
selected_sort_order = 'Due soon'
milestones_for_sort_by.each do |sort_by, expected_milestones|
- within '[data-testid=milestone_sort_by_dropdown]' do
- click_button selected_sort_order
- milestones = find('ul[role="listbox"]').all('li').map(&:text)
- expect(milestones).to eq(ordered_milestones)
+ click_button selected_sort_order
- find('li', text: sort_by).click
- expect(page).to have_button(sort_by)
- end
+ expect_listbox_items(ordered_milestones)
+
+ select_listbox_item(sort_by)
+
+ expect(page).to have_button(sort_by)
within '.milestones' do
expect(page.all('ul.content-list > li strong > a').map(&:text)).to eq(expected_milestones)
diff --git a/spec/features/projects/navbar_spec.rb b/spec/features/projects/navbar_spec.rb
index 4d85b5cfb2e..6090d132e3a 100644
--- a/spec/features/projects/navbar_spec.rb
+++ b/spec/features/projects/navbar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project navbar', feature_category: :projects do
+RSpec.describe 'Project navbar', :with_license, feature_category: :projects do
include NavbarStructureHelper
include WaitForRequests
@@ -15,6 +15,8 @@ RSpec.describe 'Project navbar', feature_category: :projects do
before do
sign_in(user)
+ stub_feature_flags(show_pages_in_deployments_menu: false)
+
stub_config(registry: { enabled: false })
stub_feature_flags(harbor_registry_integration: false)
insert_package_nav(_('Deployments'))
diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb
index 769ad5bf61a..c6a6ee68185 100644
--- a/spec/features/projects/new_project_spec.rb
+++ b/spec/features/projects/new_project_spec.rb
@@ -552,7 +552,7 @@ RSpec.describe 'New project', :js, feature_category: :projects do
it_behaves_like 'has instructions to enable OAuth'
end
- context 'as an admin' do
+ context 'as an admin', :do_not_mock_admin_mode_setting do
let(:user) { create(:admin) }
let(:oauth_config_instructions) { 'To enable importing projects from Bitbucket, as administrator you need to configure OAuth integration' }
@@ -571,7 +571,7 @@ RSpec.describe 'New project', :js, feature_category: :projects do
it_behaves_like 'has instructions to enable OAuth'
end
- context 'as an admin' do
+ context 'as an admin', :do_not_mock_admin_mode_setting do
let(:user) { create(:admin) }
let(:oauth_config_instructions) { 'To enable importing projects from GitLab.com, as administrator you need to configure OAuth integration' }
diff --git a/spec/features/projects/pages/user_edits_settings_spec.rb b/spec/features/projects/pages/user_edits_settings_spec.rb
index 7ceefdecbae..8c713b6f73a 100644
--- a/spec/features/projects/pages/user_edits_settings_spec.rb
+++ b/spec/features/projects/pages/user_edits_settings_spec.rb
@@ -10,6 +10,8 @@ RSpec.describe 'Pages edits pages settings', :js, feature_category: :pages do
before do
allow(Gitlab.config.pages).to receive(:enabled).and_return(true)
+ stub_feature_flags(show_pages_in_deployments_menu: false)
+
project.add_maintainer(user)
sign_in(user)
diff --git a/spec/features/projects/pipelines/legacy_pipelines_spec.rb b/spec/features/projects/pipelines/legacy_pipelines_spec.rb
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/spec/features/projects/pipelines/legacy_pipelines_spec.rb
diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb
index d6067e22952..d5739386a30 100644
--- a/spec/features/projects/pipelines/pipeline_spec.rb
+++ b/spec/features/projects/pipelines/pipeline_spec.rb
@@ -18,6 +18,8 @@ RSpec.describe 'Pipeline', :js, feature_category: :projects do
end
shared_context 'pipeline builds' do
+ let!(:external_stage) { create(:ci_stage, name: 'external', pipeline: pipeline) }
+
let!(:build_passed) do
create(:ci_build, :success,
pipeline: pipeline, stage: 'build', stage_idx: 0, name: 'build')
@@ -52,7 +54,7 @@ RSpec.describe 'Pipeline', :js, feature_category: :projects do
create(:generic_commit_status, status: 'success',
pipeline: pipeline,
name: 'jenkins',
- stage: 'external',
+ ci_stage: external_stage,
ref: 'master',
target_url: 'http://gitlab.com/status')
end
@@ -98,42 +100,16 @@ RSpec.describe 'Pipeline', :js, feature_category: :projects do
end
end
- context 'with pipeline_name feature flag enabled' do
- before do
- stub_feature_flags(pipeline_name: true)
- end
-
- it 'displays pipeline name instead of commit title' do
- visit_pipeline
-
- within 'h3' do
- expect(page).to have_content(pipeline.name)
- end
-
- within '.well-segment[data-testid="commit-row"]' do
- expect(page).to have_content(project.commit.title)
- expect(page).to have_content(project.commit.short_id)
- end
- end
- end
+ it 'displays pipeline name instead of commit title' do
+ visit_pipeline
- context 'with pipeline_name feature flag disabled' do
- before do
- stub_feature_flags(pipeline_name: false)
+ within 'h3' do
+ expect(page).to have_content(pipeline.name)
end
- it 'displays commit title' do
- visit_pipeline
-
- within 'h3' do
- expect(page).not_to have_content(pipeline.name)
- expect(page).to have_content(project.commit.title)
- end
-
- within '.well-segment[data-testid="commit-row"]' do
- expect(page).not_to have_content(project.commit.title)
- expect(page).to have_content(project.commit.short_id)
- end
+ within '.well-segment[data-testid="commit-row"]' do
+ expect(page).to have_content(project.commit.title)
+ expect(page).to have_content(project.commit.short_id)
end
end
diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index 3bdabd672c7..6a44f421249 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -3,6 +3,7 @@
require 'spec_helper'
RSpec.describe 'Pipelines', :js, feature_category: :projects do
+ include ListboxHelpers
include ProjectForksHelper
include Spec::Support::Helpers::ModalHelpers
@@ -594,7 +595,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do
end
it 'changes the Pipeline ID column for Pipeline IID' do
- page.find('[data-testid="pipeline-key-dropdown"]').click
+ page.find('[data-testid="pipeline-key-collapsible-box"]').click
within '.gl-dropdown-contents' do
dropdown_options = page.find_all '.gl-dropdown-item'
@@ -618,6 +619,8 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do
user: user)
end
+ let(:external_stage) { create(:ci_stage, name: 'external', pipeline: pipeline) }
+
before do
create_build('build', 0, 'build', :success)
create_build('test', 1, 'rspec 0:2', :pending)
@@ -627,7 +630,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do
create_build('test', 1, 'audit', :created)
create_build('deploy', 2, 'production', :created)
- create(:generic_commit_status, pipeline: pipeline, stage: 'external', name: 'jenkins', stage_idx: 3, ref: 'master')
+ create(:generic_commit_status, pipeline: pipeline, ci_stage: external_stage, name: 'jenkins', ref: 'master')
visit project_pipeline_path(project, pipeline)
wait_for_requests
@@ -672,7 +675,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do
click_button project.default_branch
wait_for_requests
- find('p', text: 'master').click
+ find('.gl-dropdown-item', text: 'master').click
wait_for_requests
end
@@ -776,8 +779,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do
describe 'new pipeline page' do
it 'has field to add a new pipeline' do
- expect(page).to have_selector('[data-testid="ref-select"]')
- expect(find('[data-testid="ref-select"]')).to have_content project.default_branch
+ expect(page).to have_button project.default_branch
expect(page).to have_content('Run for')
end
end
@@ -785,14 +787,9 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do
describe 'find pipelines' do
it 'shows filtered pipelines', :js do
click_button project.default_branch
+ send_keys('fix')
- page.within '[data-testid="ref-select"]' do
- find('[data-testid="search-refs"]').native.send_keys('fix')
-
- page.within '.gl-dropdown-contents' do
- expect(page).to have_content('fix')
- end
- end
+ expect_listbox_item('fix')
end
end
end
diff --git a/spec/features/projects/settings/monitor_settings_spec.rb b/spec/features/projects/settings/monitor_settings_spec.rb
index 2cdcf86757e..4b553b57331 100644
--- a/spec/features/projects/settings/monitor_settings_spec.rb
+++ b/spec/features/projects/settings/monitor_settings_spec.rb
@@ -113,7 +113,7 @@ RSpec.describe 'Projects > Settings > For a forked project', :js, feature_catego
within('div#project-dropdown') do
click_button('Select project')
- click_button('Sentry | internal')
+ find('li', text: 'Sentry | internal').click
end
click_button('Save changes')
diff --git a/spec/features/projects/settings/pipelines_settings_spec.rb b/spec/features/projects/settings/pipelines_settings_spec.rb
index 37973c9b8d6..51858ddf8c5 100644
--- a/spec/features/projects/settings/pipelines_settings_spec.rb
+++ b/spec/features/projects/settings/pipelines_settings_spec.rb
@@ -149,29 +149,5 @@ RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :pr
end
end
end
-
- describe 'runners registration token' do
- let!(:token) { project.runners_token }
-
- before do
- visit project_settings_ci_cd_path(project)
- end
-
- it 'has a registration token' do
- expect(page.find('#registration_token')).to have_content(token)
- end
-
- describe 'reload registration token' do
- let(:page_token) { find('#registration_token').text }
-
- before do
- click_link 'Reset registration token'
- end
-
- it 'changes registration token' do
- expect(page_token).not_to eq token
- end
- end
- end
end
end
diff --git a/spec/features/projects/settings/user_manages_project_members_spec.rb b/spec/features/projects/settings/user_manages_project_members_spec.rb
index ee832da48d9..fac4d5a99a5 100644
--- a/spec/features/projects/settings/user_manages_project_members_spec.rb
+++ b/spec/features/projects/settings/user_manages_project_members_spec.rb
@@ -22,13 +22,12 @@ RSpec.describe 'Projects > Settings > User manages project members', feature_cat
it 'cancels a team member', :js do
visit(project_project_members_path(project))
- page.within find_member_row(user_dmitriy) do
- click_button 'Remove member'
- end
+ show_actions_for_username(user_dmitriy)
+ click_button _('Remove member')
within_modal do
expect(page).to have_unchecked_field 'Also unassign this user from related issues and merge requests'
- click_button('Remove member')
+ click_button _('Remove member')
end
visit(project_project_members_path(project))
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 8a11507d064..923a6a10671 100644
--- a/spec/features/projects/settings/user_searches_in_settings_spec.rb
+++ b/spec/features/projects/settings/user_searches_in_settings_spec.rb
@@ -68,6 +68,7 @@ RSpec.describe 'User searches project settings', :js, feature_category: :project
context 'in Pages page' do
before do
+ stub_feature_flags(show_pages_in_deployments_menu: false)
allow(Gitlab.config.pages).to receive(:enabled).and_return(true)
visit project_pages_path(project)
diff --git a/spec/features/projects/terraform_spec.rb b/spec/features/projects/terraform_spec.rb
index bbc7f675c55..5e2f65165c2 100644
--- a/spec/features/projects/terraform_spec.rb
+++ b/spec/features/projects/terraform_spec.rb
@@ -56,9 +56,9 @@ RSpec.describe 'Terraform', :js, feature_category: :projects do
end
context 'when clicking on the delete button' do
- let(:additional_state) { create(:terraform_state, project: project) }
+ let!(:additional_state) { create(:terraform_state, project: project) }
- it 'removes the state', :aggregate_failures, quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/333640' do
+ it 'removes the state', :aggregate_failures do
visit project_terraform_index_path(project)
expect(page).to have_content(additional_state.name)
@@ -69,7 +69,12 @@ RSpec.describe 'Terraform', :js, feature_category: :projects do
click_button 'Remove'
expect(page).to have_content("#{additional_state.name} successfully removed")
- expect { additional_state.reload }.to raise_error ActiveRecord::RecordNotFound
+
+ find("[data-testid='remove-icon']").hover
+ expect(page).to have_content("Deletion in progress")
+
+ additional_state.reload
+ expect(additional_state.deleted_at).not_to be_nil
end
end
diff --git a/spec/features/projects/tree/create_directory_spec.rb b/spec/features/projects/tree/create_directory_spec.rb
index 3a0160c42fb..58f572bc021 100644
--- a/spec/features/projects/tree/create_directory_spec.rb
+++ b/spec/features/projects/tree/create_directory_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'Multi-file editor new directory', :js, feature_category: :web_ide do
+ include WebIdeSpecHelpers
+
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
@@ -16,9 +18,7 @@ RSpec.describe 'Multi-file editor new directory', :js, feature_category: :web_id
wait_for_requests
- click_link('Web IDE')
-
- wait_for_requests
+ ide_visit_from_link
end
after do
@@ -26,6 +26,8 @@ RSpec.describe 'Multi-file editor new directory', :js, feature_category: :web_id
end
it 'creates directory in current directory' do
+ wait_for_all_requests
+
all('.ide-tree-actions button').last.click
page.within('.modal') do
diff --git a/spec/features/projects/tree/create_file_spec.rb b/spec/features/projects/tree/create_file_spec.rb
index 61240150658..674aef8e6f4 100644
--- a/spec/features/projects/tree/create_file_spec.rb
+++ b/spec/features/projects/tree/create_file_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'Multi-file editor new file', :js, feature_category: :web_ide do
+ include WebIdeSpecHelpers
+
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
@@ -16,9 +18,7 @@ RSpec.describe 'Multi-file editor new file', :js, feature_category: :web_ide do
wait_for_requests
- click_link('Web IDE')
-
- wait_for_requests
+ ide_visit_from_link
end
after do
@@ -26,6 +26,7 @@ RSpec.describe 'Multi-file editor new file', :js, feature_category: :web_ide do
end
it 'creates file in current directory' do
+ wait_for_requests
first('.ide-tree-actions button').click
page.within('.modal') do
diff --git a/spec/features/projects/tree/tree_show_spec.rb b/spec/features/projects/tree/tree_show_spec.rb
index 21932cae58b..835a3cda65e 100644
--- a/spec/features/projects/tree/tree_show_spec.rb
+++ b/spec/features/projects/tree/tree_show_spec.rb
@@ -3,6 +3,7 @@
require 'spec_helper'
RSpec.describe 'Projects tree', :js, feature_category: :web_ide do
+ include WebIdeSpecHelpers
include RepoHelpers
let(:user) { create(:user) }
@@ -123,10 +124,9 @@ RSpec.describe 'Projects tree', :js, feature_category: :web_ide do
it 'opens folder in IDE' do
visit project_tree_path(project, File.join('master', 'bar'))
+ ide_visit_from_link
- click_link 'Web IDE'
-
- wait_for_requests
+ wait_for_all_requests
find('.ide-file-list')
wait_for_requests
expect(page).to have_selector('.is-open', text: 'bar')
diff --git a/spec/features/projects/tree/upload_file_spec.rb b/spec/features/projects/tree/upload_file_spec.rb
index 1e4abc789c2..42fa88a0d3e 100644
--- a/spec/features/projects/tree/upload_file_spec.rb
+++ b/spec/features/projects/tree/upload_file_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'Multi-file editor upload file', :js, feature_category: :web_ide do
+ include WebIdeSpecHelpers
+
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
let(:txt_file) { File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt') }
@@ -18,9 +20,7 @@ RSpec.describe 'Multi-file editor upload file', :js, feature_category: :web_ide
wait_for_requests
- click_link('Web IDE')
-
- wait_for_requests
+ ide_visit_from_link
end
after do
@@ -28,6 +28,7 @@ RSpec.describe 'Multi-file editor upload file', :js, feature_category: :web_ide
end
it 'uploads text file' do
+ wait_for_all_requests
# make the field visible so capybara can use it
execute_script('document.querySelector("#file-upload").classList.remove("hidden")')
attach_file('file-upload', txt_file)