diff options
Diffstat (limited to 'spec/features/projects')
161 files changed, 450 insertions, 496 deletions
diff --git a/spec/features/projects/active_tabs_spec.rb b/spec/features/projects/active_tabs_spec.rb index c27c9530f61..594c2b442aa 100644 --- a/spec/features/projects/active_tabs_spec.rb +++ b/spec/features/projects/active_tabs_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project active tab', feature_category: :projects do +RSpec.describe 'Project active tab', feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :repository, :with_namespace_settings) } let(:user) { project.first_owner } diff --git a/spec/features/projects/activity/rss_spec.rb b/spec/features/projects/activity/rss_spec.rb index 5297f30220d..fdb70092917 100644 --- a/spec/features/projects/activity/rss_spec.rb +++ b/spec/features/projects/activity/rss_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project Activity RSS', feature_category: :projects do +RSpec.describe 'Project Activity RSS', feature_category: :groups_and_projects do let(:project) { create(:project, :public) } let(:user) { project.first_owner } let(:path) { activity_project_path(project) } diff --git a/spec/features/projects/activity/user_sees_activity_spec.rb b/spec/features/projects/activity/user_sees_activity_spec.rb index cfa62415c49..5335b9d0e95 100644 --- a/spec/features/projects/activity/user_sees_activity_spec.rb +++ b/spec/features/projects/activity/user_sees_activity_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Activity > User sees activity', feature_category: :projects do +RSpec.describe 'Projects > Activity > User sees activity', feature_category: :groups_and_projects do let(:project) { create(:project, :repository, :public) } let(:user) { project.creator } let(:issue) { create(:issue, project: project) } diff --git a/spec/features/projects/activity/user_sees_private_activity_spec.rb b/spec/features/projects/activity/user_sees_private_activity_spec.rb index e0aaf1dbbc3..f475cb6d941 100644 --- a/spec/features/projects/activity/user_sees_private_activity_spec.rb +++ b/spec/features/projects/activity/user_sees_private_activity_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project > Activity > User sees private activity', :js, feature_category: :projects do +RSpec.describe 'Project > Activity > User sees private activity', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :public) } let(:author) { create(:user) } let(:user) { create(:user) } diff --git a/spec/features/projects/artifacts/user_browses_artifacts_spec.rb b/spec/features/projects/artifacts/user_browses_artifacts_spec.rb index 6948a26196b..04d93b11ca9 100644 --- a/spec/features/projects/artifacts/user_browses_artifacts_spec.rb +++ b/spec/features/projects/artifacts/user_browses_artifacts_spec.rb @@ -33,8 +33,8 @@ RSpec.describe "User browses artifacts", feature_category: :build_artifacts do page.within(".tree-table") do expect(page).to have_no_content("..") .and have_content("other_artifacts_0.1.2") - .and have_content("ci_artifacts.txt 27 Bytes") - .and have_content("rails_sample.jpg 34.4 KB") + .and have_content("ci_artifacts.txt 27 B") + .and have_content("rails_sample.jpg 34.4 KiB") end page.within(".build-header") do diff --git a/spec/features/projects/blobs/blame_spec.rb b/spec/features/projects/blobs/blame_spec.rb index 9f061a2ff14..798cd401dac 100644 --- a/spec/features/projects/blobs/blame_spec.rb +++ b/spec/features/projects/blobs/blame_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'File blame', :js, feature_category: :projects do +RSpec.describe 'File blame', :js, feature_category: :groups_and_projects do include TreeHelper let_it_be(:project) { create(:project, :public, :repository) } diff --git a/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb b/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb index 48ee39dad19..f0058e75e52 100644 --- a/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb +++ b/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Blob button line permalinks (BlobLinePermalinkUpdater)', :js, feature_category: :projects do +RSpec.describe 'Blob button line permalinks (BlobLinePermalinkUpdater)', :js, feature_category: :groups_and_projects do include TreeHelper let(:project) { create(:project, :public, :repository) } diff --git a/spec/features/projects/blobs/blob_show_spec.rb b/spec/features/projects/blobs/blob_show_spec.rb index cd1dde55e30..62cd9fd9a56 100644 --- a/spec/features/projects/blobs/blob_show_spec.rb +++ b/spec/features/projects/blobs/blob_show_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'File blob', :js, feature_category: :projects do +RSpec.describe 'File blob', :js, feature_category: :groups_and_projects do include MobileHelpers let(:project) { create(:project, :public, :repository) } @@ -579,66 +579,6 @@ RSpec.describe 'File blob', :js, feature_category: :projects do end end - describe '.gitlab/dashboards/custom-dashboard.yml' do - let(:remove_monitor_metrics) { false } - - before do - stub_feature_flags(remove_monitor_metrics: remove_monitor_metrics) - - project.add_maintainer(project.creator) - - Files::CreateService.new( - project, - project.creator, - start_branch: 'master', - branch_name: 'master', - commit_message: "Add .gitlab/dashboards/custom-dashboard.yml", - file_path: '.gitlab/dashboards/custom-dashboard.yml', - file_content: file_content - ).execute - - visit_blob('.gitlab/dashboards/custom-dashboard.yml') - end - - context 'valid dashboard file' do - let(:file_content) { File.read(Rails.root.join('config/prometheus/common_metrics.yml')) } - - it 'displays an auxiliary viewer' do - aggregate_failures do - # shows that dashboard yaml is valid - expect(page).to have_content('Metrics Dashboard YAML definition is valid.') - - # shows a learn more link - expect(page).to have_link('Learn more') - end - end - - context 'when metrics dashboard feature is unavailable' do - let(:remove_monitor_metrics) { true } - - it 'displays the blob without an auxiliary viewer' do - expect(page).to have_content('Environment metrics') - expect(page).not_to have_content('Metrics Dashboard YAML definition', wait: 0) - end - end - end - - context 'invalid dashboard file' do - let(:file_content) { "dashboard: 'invalid'" } - - it 'displays an auxiliary viewer' do - aggregate_failures do - # shows that dashboard yaml is invalid - expect(page).to have_content('Metrics Dashboard YAML definition is invalid:') - expect(page).to have_content("panel_groups: should be an array of panel_groups objects") - - # shows a learn more link - expect(page).to have_link('Learn more') - end - end - end - end - context 'LICENSE' do before do visit_blob('LICENSE') diff --git a/spec/features/projects/blobs/edit_spec.rb b/spec/features/projects/blobs/edit_spec.rb index 6e335871ed1..e8a9edcc0cc 100644 --- a/spec/features/projects/blobs/edit_spec.rb +++ b/spec/features/projects/blobs/edit_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Editing file blob', :js, feature_category: :projects do +RSpec.describe 'Editing file blob', :js, feature_category: :groups_and_projects do include Features::SourceEditorSpecHelpers include TreeHelper include Features::BlobSpecHelpers @@ -23,15 +23,11 @@ RSpec.describe 'Editing file blob', :js, feature_category: :projects do end def edit_and_commit(commit_changes: true, is_diff: false) - set_default_button('edit') - refresh - wait_for_requests - if is_diff first('.js-diff-more-actions').click click_link('Edit in single-file editor') else - click_link('Edit') + edit_in_single_file_editor end fill_editor(content: 'class NextFeature\\nend\\n') @@ -83,29 +79,20 @@ RSpec.describe 'Editing file blob', :js, feature_category: :projects do end context 'blob edit toolbar' do - toolbar_buttons = [ - "Add bold text", - "Add italic text", - "Add strikethrough text", - "Insert a quote", - "Insert code", - "Add a link", - "Add a bullet list", - "Add a numbered list", - "Add a checklist", - "Add a collapsible section", - "Add a table" - ] - - it "does not have any buttons" do - stub_feature_flags(source_editor_toolbar: true) - visit project_edit_blob_path(project, tree_join(branch, readme_file_path)) - buttons = page.all('.file-buttons .md-header-toolbar button[type="button"]') - expect(buttons.length).to eq(0) - end - - it "has defined set of toolbar buttons when the flag is off" do - stub_feature_flags(source_editor_toolbar: false) + def has_toolbar_buttons + toolbar_buttons = [ + "Add bold text", + "Add italic text", + "Add strikethrough text", + "Insert a quote", + "Insert code", + "Add a link", + "Add a bullet list", + "Add a numbered list", + "Add a checklist", + "Add a collapsible section", + "Add a table" + ] visit project_edit_blob_path(project, tree_join(branch, readme_file_path)) buttons = page.all('.file-buttons .md-header-toolbar button[type="button"]') expect(buttons.length).to eq(toolbar_buttons.length) @@ -113,6 +100,16 @@ RSpec.describe 'Editing file blob', :js, feature_category: :projects do expect(buttons[i]['title']).to include(button_title) end end + + it "has defined set of toolbar buttons when the flag is on" do + stub_feature_flags(source_editor_toolbar: true) + has_toolbar_buttons + end + + it "has defined set of toolbar buttons when the flag is off" do + stub_feature_flags(source_editor_toolbar: false) + has_toolbar_buttons + end end context 'from blob file path' do diff --git a/spec/features/projects/blobs/shortcuts_blob_spec.rb b/spec/features/projects/blobs/shortcuts_blob_spec.rb index 03276a737da..162066540d9 100644 --- a/spec/features/projects/blobs/shortcuts_blob_spec.rb +++ b/spec/features/projects/blobs/shortcuts_blob_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Blob shortcuts', :js, feature_category: :projects do +RSpec.describe 'Blob shortcuts', :js, feature_category: :groups_and_projects do include TreeHelper let(:project) { create(:project, :public, :repository) } let(:path) { project.repository.ls_files(project.repository.root_ref)[0] } 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 b723bd5690a..1990526b5fc 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 @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled', :js, feature_category: :projects do +RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled', :js, feature_category: :groups_and_projects do include CookieHelper let(:project) { create(:project, :empty_repo) } diff --git a/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb b/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb index 3b383793de2..bef4e5f89b1 100644 --- a/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb +++ b/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User views pipeline editor button on root ci config file', :js, feature_category: :projects do +RSpec.describe 'User views pipeline editor button on root ci config file', :js, feature_category: :groups_and_projects do include Features::BlobSpecHelpers let_it_be(:user) { create(:user) } @@ -19,6 +19,8 @@ RSpec.describe 'User views pipeline editor button on root ci config file', :js, project.repository.create_file(user, project.ci_config_path_or_default, 'test', message: 'testing', branch_name: 'master') visit project_blob_path(project, File.join('master', '.my-config.yml')) + click_button 'Edit' + expect(page).to have_content('Edit in pipeline editor') end @@ -26,6 +28,8 @@ RSpec.describe 'User views pipeline editor button on root ci config file', :js, project.repository.create_file(user, '.my-sub-config.yml', 'test', message: 'testing', branch_name: 'master') visit project_blob_path(project, File.join('master', '.my-sub-config.yml')) + click_button 'Edit' + expect(page).not_to have_content('Edit in pipeline editor') end end @@ -36,6 +40,9 @@ RSpec.describe 'User views pipeline editor button on root ci config file', :js, end it 'does not shows the Pipeline Editor button' do visit project_blob_path(project, File.join('master', '.my-config.yml')) + + click_button 'Edit' + expect(page).not_to have_content('Edit in pipeline editor') end end diff --git a/spec/features/projects/branches/download_buttons_spec.rb b/spec/features/projects/branches/download_buttons_spec.rb index 80ccd9c1417..2092af537e8 100644 --- a/spec/features/projects/branches/download_buttons_spec.rb +++ b/spec/features/projects/branches/download_buttons_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Download buttons in branches page', feature_category: :projects do +RSpec.describe 'Download buttons in branches page', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:role) { :developer } let(:status) { 'success' } diff --git a/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb b/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb index 9afd8b3263a..0badde99bdb 100644 --- a/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb +++ b/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'New Branch Ref Dropdown', :js, feature_category: :projects do +RSpec.describe 'New Branch Ref Dropdown', :js, feature_category: :groups_and_projects do include ListboxHelpers let(:user) { create(:user) } diff --git a/spec/features/projects/branches/user_creates_branch_spec.rb b/spec/features/projects/branches/user_creates_branch_spec.rb index 5aa10a8d4b0..8d636dacb75 100644 --- a/spec/features/projects/branches/user_creates_branch_spec.rb +++ b/spec/features/projects/branches/user_creates_branch_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User creates branch', :js, feature_category: :projects do +RSpec.describe 'User creates branch', :js, feature_category: :groups_and_projects do include Features::BranchesHelpers let_it_be(:group) { create(:group, :public) } diff --git a/spec/features/projects/branches/user_deletes_branch_spec.rb b/spec/features/projects/branches/user_deletes_branch_spec.rb index 92b5f176d2d..7e7ab4b2a47 100644 --- a/spec/features/projects/branches/user_deletes_branch_spec.rb +++ b/spec/features/projects/branches/user_deletes_branch_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -RSpec.describe "User deletes branch", :js, feature_category: :projects do +RSpec.describe "User deletes branch", :js, feature_category: :groups_and_projects do include Spec::Support::Helpers::ModalHelpers let_it_be(:user) { create(:user) } @@ -23,7 +23,8 @@ RSpec.describe "User deletes branch", :js, feature_category: :projects do branch_search.native.send_keys(:enter) page.within(".js-branch-improve\\/awesome") do - find('.js-delete-branch-button').click + click_button 'More actions' + find('[data-testid="delete-branch-button"]').click end accept_gl_confirm(button_text: 'Yes, delete branch') diff --git a/spec/features/projects/branches/user_views_branches_spec.rb b/spec/features/projects/branches/user_views_branches_spec.rb index f0a1ba84ec6..52327cc6543 100644 --- a/spec/features/projects/branches/user_views_branches_spec.rb +++ b/spec/features/projects/branches/user_views_branches_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -RSpec.describe "User views branches", :js, feature_category: :projects do +RSpec.describe "User views branches", :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :repository) } let_it_be(:user) { project.first_owner } @@ -10,22 +10,41 @@ RSpec.describe "User views branches", :js, feature_category: :projects do sign_in(user) end - context "all branches", :js do + context "all branches" do before do visit(project_branches_path(project)) - branch_search = find('input[data-testid="branch-search"]') - branch_search.set('master') - branch_search.native.send_keys(:enter) end - it "shows branches" do - expect(page).to have_content("Branches").and have_content("master") + describe 'default branch' do + before do + search_branches('master') + end - expect(page.all(".graph-side")).to all(have_content(/\d+/)) + it "shows the default branch" do + expect(page).to have_content("Branches").and have_content("master") + + expect(page.all(".graph-side")).to all(have_content(/\d+/)) + end + + it "does not show the \"More actions\" dropdown" do + expect(page).not_to have_selector('[data-testid="branch-more-actions"]') + end end - it "displays a disabled button with a tooltip for the default branch that cannot be deleted", :js do - expect(page).to have_button('The default branch cannot be deleted', disabled: true) + describe 'non-default branch' do + before do + search_branches('feature') + end + + it "shows the branches" do + expect(page).to have_content("Branches").and have_content("feature") + + expect(page.all(".graph-side")).to all(have_content(/\d+/)) + end + + it "shows the \"More actions\" dropdown" do + expect(page).to have_button('More actions') + end end end @@ -42,4 +61,10 @@ RSpec.describe "User views branches", :js, feature_category: :projects do end end end + + def search_branches(query) + branch_search = find('input[data-testid="branch-search"]') + branch_search.set(query) + branch_search.native.send_keys(:enter) + end end diff --git a/spec/features/projects/branches_spec.rb b/spec/features/projects/branches_spec.rb index e1f1a63565c..6a13d5637af 100644 --- a/spec/features/projects/branches_spec.rb +++ b/spec/features/projects/branches_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Branches', feature_category: :projects do +RSpec.describe 'Branches', feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :public, :repository) } let(:repository) { project.repository } @@ -231,7 +231,7 @@ RSpec.describe 'Branches', feature_category: :projects do visit project_branches_path(project) page.within first('.all-branches li') do - expect(page).to have_content 'Merge request' + expect(page).to have_content 'New' end end @@ -242,7 +242,7 @@ RSpec.describe 'Branches', feature_category: :projects do visit project_branches_path(project) page.within first('.all-branches li') do - expect(page).not_to have_content 'Merge request' + expect(page).not_to have_content 'New' end end @@ -266,7 +266,7 @@ RSpec.describe 'Branches', feature_category: :projects do it 'does not show merge request button' do page.within first('.all-branches li') do - expect(page).not_to have_content 'Merge request' + expect(page).not_to have_content 'New' end end end @@ -294,7 +294,7 @@ RSpec.describe 'Branches', feature_category: :projects do it 'displays a placeholder when not available' do page.all('.all-branches li') do |li| - expect(li).to have_css 'svg.s24' + expect(li).to have_css '.pipeline-status svg.s16' end end end @@ -306,7 +306,7 @@ RSpec.describe 'Branches', feature_category: :projects do it 'does not show placeholder or pipeline status' do page.all('.all-branches') do |branches| - expect(branches).not_to have_css 'svg.s24' + expect(branches).not_to have_css '.pipeline-status svg.s16' end end end @@ -322,6 +322,8 @@ RSpec.describe 'Branches', feature_category: :projects do visit project_branches_path(project) page.within first('.all-branches li') do + wait_for_requests + find('[data-testid="branch-more-actions"] .gl-new-dropdown-toggle').click click_link 'Compare' end @@ -329,7 +331,7 @@ RSpec.describe 'Branches', feature_category: :projects do end end - context 'on a read-only instance' do + context 'on a read-only instance', :js do before do allow(Gitlab::Database).to receive(:read_only?).and_return(true) end @@ -337,7 +339,7 @@ RSpec.describe 'Branches', feature_category: :projects do it_behaves_like 'compares branches' end - context 'on a read-write instance' do + context 'on a read-write instance', :js do it_behaves_like 'compares branches' end end @@ -364,7 +366,9 @@ RSpec.describe 'Branches', feature_category: :projects do end def delete_branch_and_confirm - find('.js-delete-branch-button', match: :first).click + wait_for_requests + find('[data-testid="branch-more-actions"] .gl-new-dropdown-toggle', match: :first).click + find('[data-testid="delete-branch-button"]').click within '.modal-footer' do click_button 'Yes, delete branch' diff --git a/spec/features/projects/classification_label_on_project_pages_spec.rb b/spec/features/projects/classification_label_on_project_pages_spec.rb index 662b2296234..fc3e2993cc8 100644 --- a/spec/features/projects/classification_label_on_project_pages_spec.rb +++ b/spec/features/projects/classification_label_on_project_pages_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Classification label on project pages', feature_category: :projects do +RSpec.describe 'Classification label on project pages', feature_category: :groups_and_projects do let(:project) do create(:project, external_authorization_classification_label: 'authorized label') end diff --git a/spec/features/projects/cluster_agents_spec.rb b/spec/features/projects/cluster_agents_spec.rb index 43046db2b6c..baef26e3e63 100644 --- a/spec/features/projects/cluster_agents_spec.rb +++ b/spec/features/projects/cluster_agents_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'ClusterAgents', :js, feature_category: :projects do +RSpec.describe 'ClusterAgents', :js, feature_category: :groups_and_projects do let_it_be(:token) { create(:cluster_agent_token, description: 'feature test token') } let(:agent) { token.agent } diff --git a/spec/features/projects/clusters_spec.rb b/spec/features/projects/clusters_spec.rb index 3fb586bd143..e2737d62749 100644 --- a/spec/features/projects/clusters_spec.rb +++ b/spec/features/projects/clusters_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Clusters', :js, feature_category: :projects do +RSpec.describe 'Clusters', :js, feature_category: :groups_and_projects do include GoogleApi::CloudPlatformHelpers let(:project) { create(:project) } diff --git a/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb b/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb index da83bbcb63a..e44364c7f2d 100644 --- a/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb +++ b/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb @@ -36,7 +36,7 @@ RSpec.describe 'Commit > Pipelines tab', :js, feature_category: :source_code_man wait_for_requests page.within('[data-testid="pipeline-table-row"]') do - expect(page).to have_selector('.ci-success') + expect(page).to have_selector('[data-testid="ci-badge-passed"]') expect(page).to have_content(pipeline.id) expect(page).to have_content('API') expect(page).to have_css('[data-testid="pipeline-mini-graph"]') diff --git a/spec/features/projects/compare_spec.rb b/spec/features/projects/compare_spec.rb index 4c13d23559b..beb5fa7822b 100644 --- a/spec/features/projects/compare_spec.rb +++ b/spec/features/projects/compare_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -RSpec.describe "Compare", :js, feature_category: :projects do +RSpec.describe "Compare", :js, feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, :repository) } @@ -189,7 +189,6 @@ RSpec.describe "Compare", :js, feature_category: :projects do context "when super sidebar is enabled" do before do user.update!(use_new_navigation: true) - stub_feature_flags(super_sidebar_nav: true) end it_behaves_like "compare view of branches" diff --git a/spec/features/projects/container_registry_spec.rb b/spec/features/projects/container_registry_spec.rb index 5306a9f15c6..493435d3439 100644 --- a/spec/features/projects/container_registry_spec.rb +++ b/spec/features/projects/container_registry_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Container Registry', :js, feature_category: :projects do +RSpec.describe 'Container Registry', :js, feature_category: :groups_and_projects do include_context 'container registry tags' let(:user) { create(:user) } diff --git a/spec/features/projects/deploy_keys_spec.rb b/spec/features/projects/deploy_keys_spec.rb index bd48fb68304..219e47e3f0e 100644 --- a/spec/features/projects/deploy_keys_spec.rb +++ b/spec/features/projects/deploy_keys_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project deploy keys', :js, feature_category: :projects do +RSpec.describe 'Project deploy keys', :js, feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project_empty_repo) } let_it_be(:deploy_keys_project) { create(:deploy_keys_project, project: project) } diff --git a/spec/features/projects/environments/environment_metrics_spec.rb b/spec/features/projects/environments/environment_metrics_spec.rb deleted file mode 100644 index e212d464029..00000000000 --- a/spec/features/projects/environments/environment_metrics_spec.rb +++ /dev/null @@ -1,86 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'Environment > Metrics', feature_category: :projects do - include PrometheusHelpers - - let(:user) { create(:user) } - let(:project) { create(:project, :with_prometheus_integration, :repository) } - let(:pipeline) { create(:ci_pipeline, project: project) } - let(:build) { create(:ci_build, pipeline: pipeline) } - let(:environment) { create(:environment, project: project) } - let(:current_time) { Time.now.utc } - let!(:staging) { create(:environment, name: 'staging', project: project) } - - before do - stub_feature_flags(remove_monitor_metrics: false) - - project.add_developer(user) - stub_any_prometheus_request - - sign_in(user) - stub_feature_flags(remove_monitor_metrics: false) - end - - around do |example| - travel_to(current_time) { example.run } - end - - shared_examples 'has environment selector' do - it 'has a working environment selector', :js do - visit_environment(environment) - click_link 'Monitoring' - - expect(page).to have_current_path(project_metrics_dashboard_path(project, environment: environment.id)) - expect(page).to have_css('[data-testid="environments-dropdown"]') - - within('[data-testid="environments-dropdown"]') do - # Click on the dropdown - click_on(environment.name) - - # Select the staging environment - click_on(staging.name) - end - - expect(page).to have_current_path(project_metrics_dashboard_path(project, environment: staging.id)) - - wait_for_requests - end - end - - context 'without deployments' do - it_behaves_like 'has environment selector' - end - - context 'with deployments and related deployable present' do - before do - create(:deployment, environment: environment, deployable: build) - end - - it 'shows metrics', :js do - visit_environment(environment) - click_link 'Monitoring' - - expect(page).to have_css('[data-testid="prometheus-graphs"]') - end - - it_behaves_like 'has environment selector' - end - - context 'when metrics dashboard feature is unavailable' do - before do - stub_feature_flags(remove_monitor_metrics: true) - end - - it 'does not provide a link to the monitoring dashboard' do - visit_environment(environment) - - expect(page).not_to have_link('Monitoring') - end - end - - def visit_environment(environment) - visit project_environment_path(environment.project, environment) - end -end diff --git a/spec/features/projects/environments/environment_spec.rb b/spec/features/projects/environments/environment_spec.rb index 527a146ff73..0f903901984 100644 --- a/spec/features/projects/environments/environment_spec.rb +++ b/spec/features/projects/environments/environment_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Environment', feature_category: :projects do +RSpec.describe 'Environment', feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :repository) } let(:user) { create(:user) } let(:role) { :developer } @@ -479,7 +479,10 @@ RSpec.describe 'Environment', feature_category: :projects do visit project_branches_filtered_path(project, state: 'all', search: 'feature') remove_branch_with_hooks(project, user, 'feature') do - page.within('.js-branch-feature') { find('.js-delete-branch-button').click } + page.within('.js-branch-feature') do + find('[data-testid="branch-more-actions"] .gl-new-dropdown-toggle').click + find('[data-testid="delete-branch-button"]').click + end end visit_environment(environment) diff --git a/spec/features/projects/environments/environments_spec.rb b/spec/features/projects/environments/environments_spec.rb index b50fc59ac32..2490b1fde8e 100644 --- a/spec/features/projects/environments/environments_spec.rb +++ b/spec/features/projects/environments/environments_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Environments page', :js, feature_category: :projects do +RSpec.describe 'Environments page', :js, feature_category: :groups_and_projects do include Spec::Support::Helpers::ModalHelpers let(:project) { create(:project) } diff --git a/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb b/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb index 6383c3196c4..687af894168 100644 --- a/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb +++ b/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User deletes feature flag user list', :js, feature_category: :projects do +RSpec.describe 'User deletes feature flag user list', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project) } let_it_be(:developer) { create(:user) } diff --git a/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb b/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb index 8ab9e9baab9..8d0052c4ee1 100644 --- a/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb +++ b/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User edits feature flag user list', :js, feature_category: :projects do +RSpec.describe 'User edits feature flag user list', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project) } let_it_be(:developer) { create(:user) } diff --git a/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb b/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb index 7614349c5a4..672c4eb714c 100644 --- a/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb +++ b/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User sees feature flag user list details', :js, feature_category: :projects do +RSpec.describe 'User sees feature flag user list details', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project) } let_it_be(:developer) { create(:user) } diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb index 5e0998412ed..b798524b9c4 100644 --- a/spec/features/projects/features_visibility_spec.rb +++ b/spec/features/projects/features_visibility_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Edit Project Settings', feature_category: :projects do +RSpec.describe 'Edit Project Settings', feature_category: :groups_and_projects do let(:member) { create(:user) } let!(:project) { create(:project, :public, :repository) } let!(:issue) { create(:issue, project: project) } diff --git a/spec/features/projects/files/dockerfile_dropdown_spec.rb b/spec/features/projects/files/dockerfile_dropdown_spec.rb index ec1f03570d9..a74cde35be6 100644 --- a/spec/features/projects/files/dockerfile_dropdown_spec.rb +++ b/spec/features/projects/files/dockerfile_dropdown_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User wants to add a Dockerfile file', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User wants to add a Dockerfile file', :js, feature_category: :groups_and_projects do include Features::SourceEditorSpecHelpers before do diff --git a/spec/features/projects/files/download_buttons_spec.rb b/spec/features/projects/files/download_buttons_spec.rb index 2710e2efa94..9b3d19cfea3 100644 --- a/spec/features/projects/files/download_buttons_spec.rb +++ b/spec/features/projects/files/download_buttons_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > Download buttons in files tree', feature_category: :projects do +RSpec.describe 'Projects > Files > Download buttons in files tree', feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { project.creator } diff --git a/spec/features/projects/files/edit_file_soft_wrap_spec.rb b/spec/features/projects/files/edit_file_soft_wrap_spec.rb index f6342257847..8f7c09aac69 100644 --- a/spec/features/projects/files/edit_file_soft_wrap_spec.rb +++ b/spec/features/projects/files/edit_file_soft_wrap_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User uses soft wrap while editing file', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User uses soft wrap while editing file', :js, feature_category: :groups_and_projects do before do project = create(:project, :repository) user = project.first_owner diff --git a/spec/features/projects/files/editing_a_file_spec.rb b/spec/features/projects/files/editing_a_file_spec.rb index 1f928da0427..b4edd5c2729 100644 --- a/spec/features/projects/files/editing_a_file_spec.rb +++ b/spec/features/projects/files/editing_a_file_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User wants to edit a file', feature_category: :projects do +RSpec.describe 'Projects > Files > User wants to edit a file', feature_category: :groups_and_projects do include ProjectForksHelper let(:project) { create(:project, :repository, :public) } let(:user) { project.first_owner } diff --git a/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb b/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb index d791e22e4f8..ce63afe58d1 100644 --- a/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb +++ b/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User views files page', feature_category: :projects do +RSpec.describe 'Projects > Files > User views files page', feature_category: :groups_and_projects do let(:project) { create(:forked_project_with_submodules) } let(:user) { project.first_owner } diff --git a/spec/features/projects/files/find_file_keyboard_spec.rb b/spec/features/projects/files/find_file_keyboard_spec.rb index 19813396435..85ecd1c2d96 100644 --- a/spec/features/projects/files/find_file_keyboard_spec.rb +++ b/spec/features/projects/files/find_file_keyboard_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > Find file keyboard shortcuts', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > Find file keyboard shortcuts', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { project.first_owner } diff --git a/spec/features/projects/files/gitignore_dropdown_spec.rb b/spec/features/projects/files/gitignore_dropdown_spec.rb index eedb79167bd..36b02b9b948 100644 --- a/spec/features/projects/files/gitignore_dropdown_spec.rb +++ b/spec/features/projects/files/gitignore_dropdown_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User wants to add a .gitignore file', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User wants to add a .gitignore file', :js, feature_category: :groups_and_projects do include Features::SourceEditorSpecHelpers before do 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 f2d657b3513..929554ff0d6 100644 --- a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb +++ b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js, feature_category: :groups_and_projects do include Features::SourceEditorSpecHelpers let(:params) { {} } 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 7ac9cb33060..8ec9adaeb9a 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 @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > Project owner creates a license file', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > Project owner creates a license file', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:project_maintainer) { project.first_owner } diff --git a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb index cfa55eba188..bfe1fd073c5 100644 --- a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb +++ b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Projects > Files > Project owner sees a link to create a license file in empty project', :js, -feature_category: :projects do +feature_category: :groups_and_projects do include Features::WebIdeSpecHelpers let(:project) { create(:project_empty_repo) } diff --git a/spec/features/projects/files/template_selector_menu_spec.rb b/spec/features/projects/files/template_selector_menu_spec.rb index 8dbfa3afb0b..46c4b69bc89 100644 --- a/spec/features/projects/files/template_selector_menu_spec.rb +++ b/spec/features/projects/files/template_selector_menu_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Template selector menu', :js, feature_category: :projects do +RSpec.describe 'Template selector menu', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { create(:user) } diff --git a/spec/features/projects/files/undo_template_spec.rb b/spec/features/projects/files/undo_template_spec.rb index 0dfed209ce9..4b6e6b7282c 100644 --- a/spec/features/projects/files/undo_template_spec.rb +++ b/spec/features/projects/files/undo_template_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > Template Undo Button', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > Template Undo Button', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { project.first_owner } diff --git a/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb b/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb index 8b60d21a77e..645bfeb14e3 100644 --- a/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb +++ b/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' # This is a regression test for https://gitlab.com/gitlab-org/gitlab-foss/issues/37569 RSpec.describe 'Projects > Files > User browses a tree with a folder containing only a folder', :js, -feature_category: :projects do +feature_category: :groups_and_projects do let(:project) { create(:project, :empty_repo) } let(:user) { project.first_owner } diff --git a/spec/features/projects/files/user_browses_files_spec.rb b/spec/features/projects/files/user_browses_files_spec.rb index 9b9c2158432..bb14b9c4e31 100644 --- a/spec/features/projects/files/user_browses_files_spec.rb +++ b/spec/features/projects/files/user_browses_files_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -RSpec.describe "User browses files", :js, feature_category: :projects do +RSpec.describe "User browses files", :js, feature_category: :groups_and_projects do include RepoHelpers include ListboxHelpers diff --git a/spec/features/projects/files/user_browses_lfs_files_spec.rb b/spec/features/projects/files/user_browses_lfs_files_spec.rb index 6b401d6d789..d8c1c8e4f2a 100644 --- a/spec/features/projects/files/user_browses_lfs_files_spec.rb +++ b/spec/features/projects/files/user_browses_lfs_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User browses LFS files', feature_category: :projects do +RSpec.describe 'Projects > Files > User browses LFS files', feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { project.first_owner } @@ -71,7 +71,9 @@ RSpec.describe 'Projects > Files > User browses LFS files', feature_category: :p expect(page).not_to have_content('Annotate') expect(page).not_to have_content('Blame') - expect(page).not_to have_selector(:link_or_button, text: /^Edit$/) + click_button 'Edit' + + expect(page).not_to have_selector(:link_or_button, text: /^Edit single file$/) expect(page).to have_selector(:link_or_button, 'Open in Web IDE') end end diff --git a/spec/features/projects/files/user_creates_directory_spec.rb b/spec/features/projects/files/user_creates_directory_spec.rb index 4dd579ba8e9..070b6dbec7d 100644 --- a/spec/features/projects/files/user_creates_directory_spec.rb +++ b/spec/features/projects/files/user_creates_directory_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User creates a directory', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User creates a directory', :js, feature_category: :groups_and_projects do let(:fork_message) do "You're not allowed to make changes to this project directly. "\ "A fork of this project has been created that you can make changes in, so you can submit a merge request." diff --git a/spec/features/projects/files/user_creates_files_spec.rb b/spec/features/projects/files/user_creates_files_spec.rb index 42aceef256a..de82f3062a2 100644 --- a/spec/features/projects/files/user_creates_files_spec.rb +++ b/spec/features/projects/files/user_creates_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User creates files', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User creates files', :js, feature_category: :groups_and_projects do include Features::SourceEditorSpecHelpers include Features::BlobSpecHelpers @@ -105,8 +105,6 @@ RSpec.describe 'Projects > Files > User creates files', :js, feature_category: : end it 'creates and commit a new file with new lines at the end of file' do - set_default_button('edit') - editor_set_value('Sample\n\n\n') fill_in(:file_name, with: 'not_a_file.md') fill_in(:commit_message, with: 'New commit message', visible: true) @@ -116,7 +114,7 @@ RSpec.describe 'Projects > Files > User creates files', :js, feature_category: : expect(page).to have_current_path(new_file_path, ignore_query: true) - click_link('Edit') + edit_in_single_file_editor expect(find('.monaco-editor')).to have_content('Sample\n\n\n') end diff --git a/spec/features/projects/files/user_deletes_files_spec.rb b/spec/features/projects/files/user_deletes_files_spec.rb index 61152a8badc..c526084b35d 100644 --- a/spec/features/projects/files/user_deletes_files_spec.rb +++ b/spec/features/projects/files/user_deletes_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User deletes files', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User deletes files', :js, feature_category: :groups_and_projects do let(:fork_message) do "You're not allowed to make changes to this project directly. "\ "A fork of this project has been created that you can make changes in, so you can submit a merge request." diff --git a/spec/features/projects/files/user_edits_files_spec.rb b/spec/features/projects/files/user_edits_files_spec.rb index 779257b2e2b..10fa4a21359 100644 --- a/spec/features/projects/files/user_edits_files_spec.rb +++ b/spec/features/projects/files/user_edits_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :groups_and_projects do include Features::SourceEditorSpecHelpers include ProjectForksHelper include Features::BlobSpecHelpers @@ -19,10 +19,6 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr sign_in(user) end - after do - unset_default_button - end - shared_examples 'unavailable for an archived project' do it 'does not show the edit link for an archived project', :js do project.update!(archived: true) @@ -48,9 +44,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'inserts a content of a file' do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor find('.file-editor', match: :first) editor_set_value('*.rbca') @@ -69,9 +64,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'commits an edited file' do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor find('.file-editor', match: :first) editor_set_value('*.rbca') @@ -86,9 +80,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'commits an edited file to a new branch' do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor find('.file-editor', match: :first) @@ -105,10 +98,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'shows loader on commit changes' do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') - + edit_in_single_file_editor # why: We don't want the form to actually submit, so that we can assert the button's changed state page.execute_script("document.querySelector('.js-edit-blob-form').addEventListener('submit', e => e.preventDefault())") @@ -120,9 +111,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'shows the diff of an edited file' do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor find('.file-editor', match: :first) editor_set_value('*.rbca') @@ -158,9 +148,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'inserts a content of a file in a forked project', :sidekiq_might_not_need_inline do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor expect_fork_prompt @@ -176,9 +165,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'opens the Web IDE in a forked project', :sidekiq_might_not_need_inline do - set_default_button('webide') click_link('.gitignore') - click_link_or_button('Web IDE') + edit_in_web_ide expect_fork_prompt @@ -191,9 +179,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'commits an edited file in a forked project', :sidekiq_might_not_need_inline do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor expect_fork_prompt click_link_or_button('Fork') @@ -222,9 +209,8 @@ RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :pr end it 'links to the forked project for editing', :sidekiq_might_not_need_inline do - set_default_button('edit') click_link('.gitignore') - click_link_or_button('Edit') + edit_in_single_file_editor expect(page).not_to have_link('Fork') diff --git a/spec/features/projects/files/user_find_file_spec.rb b/spec/features/projects/files/user_find_file_spec.rb index 9cc2ce6a7b4..5406726eb6e 100644 --- a/spec/features/projects/files/user_find_file_spec.rb +++ b/spec/features/projects/files/user_find_file_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User find project file', feature_category: :projects do +RSpec.describe 'User find project file', feature_category: :groups_and_projects do include ListboxHelpers let(:user) { create :user } diff --git a/spec/features/projects/files/user_reads_pipeline_status_spec.rb b/spec/features/projects/files/user_reads_pipeline_status_spec.rb index 18a5fb71b10..ce3f0541139 100644 --- a/spec/features/projects/files/user_reads_pipeline_status_spec.rb +++ b/spec/features/projects/files/user_reads_pipeline_status_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'user reads pipeline status', :js, feature_category: :projects do +RSpec.describe 'user reads pipeline status', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { create(:user) } let(:v110_pipeline) { create_pipeline('v1.1.0', 'success') } diff --git a/spec/features/projects/files/user_replaces_files_spec.rb b/spec/features/projects/files/user_replaces_files_spec.rb index 9fa3ddf92c6..bd951b974d1 100644 --- a/spec/features/projects/files/user_replaces_files_spec.rb +++ b/spec/features/projects/files/user_replaces_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User replaces files', :js, feature_category: :projects do +RSpec.describe 'Projects > Files > User replaces files', :js, feature_category: :groups_and_projects do include DropzoneHelper let(:fork_message) do diff --git a/spec/features/projects/files/user_searches_for_files_spec.rb b/spec/features/projects/files/user_searches_for_files_spec.rb index b438b203141..25456593fc4 100644 --- a/spec/features/projects/files/user_searches_for_files_spec.rb +++ b/spec/features/projects/files/user_searches_for_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User searches for files', feature_category: :projects do +RSpec.describe 'Projects > Files > User searches for files', feature_category: :groups_and_projects do let(:user) { project.first_owner } before do diff --git a/spec/features/projects/files/user_uploads_files_spec.rb b/spec/features/projects/files/user_uploads_files_spec.rb index 575a6290a32..22c3f73add5 100644 --- a/spec/features/projects/files/user_uploads_files_spec.rb +++ b/spec/features/projects/files/user_uploads_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Files > User uploads files', feature_category: :projects do +RSpec.describe 'Projects > Files > User uploads files', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, :repository, name: 'Shop', creator: user) } let(:project2) { create(:project, :repository, name: 'Another Project', path: 'another-project') } diff --git a/spec/features/projects/fork_spec.rb b/spec/features/projects/fork_spec.rb index 39cdc8faa85..7d734d5d2df 100644 --- a/spec/features/projects/fork_spec.rb +++ b/spec/features/projects/fork_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project fork', feature_category: :projects do +RSpec.describe 'Project fork', feature_category: :groups_and_projects do include ListboxHelpers include ProjectForksHelper diff --git a/spec/features/projects/forks/fork_list_spec.rb b/spec/features/projects/forks/fork_list_spec.rb index 18424c18cbc..966147637f5 100644 --- a/spec/features/projects/forks/fork_list_spec.rb +++ b/spec/features/projects/forks/fork_list_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'listing forks of a project', feature_category: :projects do +RSpec.describe 'listing forks of a project', feature_category: :groups_and_projects do include ProjectForksHelper include ExternalAuthorizationServiceHelpers diff --git a/spec/features/projects/gfm_autocomplete_load_spec.rb b/spec/features/projects/gfm_autocomplete_load_spec.rb index bb9f4e121d8..35ab0094d51 100644 --- a/spec/features/projects/gfm_autocomplete_load_spec.rb +++ b/spec/features/projects/gfm_autocomplete_load_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'GFM autocomplete loading', :js, feature_category: :projects do +RSpec.describe 'GFM autocomplete loading', :js, feature_category: :groups_and_projects do let(:project) { create(:project) } before do diff --git a/spec/features/projects/graph_spec.rb b/spec/features/projects/graph_spec.rb index a1f047d9b43..16a3686215f 100644 --- a/spec/features/projects/graph_spec.rb +++ b/spec/features/projects/graph_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project Graph', :js, feature_category: :projects do +RSpec.describe 'Project Graph', :js, feature_category: :groups_and_projects do let(:user) { create :user } let(:project) { create(:project, :repository, namespace: user.namespace) } let(:branch_name) { 'master' } diff --git a/spec/features/projects/hook_logs/user_reads_log_spec.rb b/spec/features/projects/hook_logs/user_reads_log_spec.rb index 92ddc559cf4..cffa76924f5 100644 --- a/spec/features/projects/hook_logs/user_reads_log_spec.rb +++ b/spec/features/projects/hook_logs/user_reads_log_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Hook logs', feature_category: :projects do +RSpec.describe 'Hook logs', feature_category: :groups_and_projects do let(:project) { create(:project) } let(:project_hook) { create(:project_hook, project: project) } let(:web_hook_log) { create(:web_hook_log, web_hook: project_hook, response_body: 'Hello World') } diff --git a/spec/features/projects/infrastructure_registry_spec.rb b/spec/features/projects/infrastructure_registry_spec.rb index e1619726c8d..a648a4fc1ce 100644 --- a/spec/features/projects/infrastructure_registry_spec.rb +++ b/spec/features/projects/infrastructure_registry_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Infrastructure Registry', feature_category: :projects do +RSpec.describe 'Infrastructure Registry', feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project) } diff --git a/spec/features/projects/integrations/user_activates_issue_tracker_spec.rb b/spec/features/projects/integrations/user_activates_issue_tracker_spec.rb index d2c48cb2af0..9fc91e03c94 100644 --- a/spec/features/projects/integrations/user_activates_issue_tracker_spec.rb +++ b/spec/features/projects/integrations/user_activates_issue_tracker_spec.rb @@ -89,4 +89,5 @@ RSpec.describe 'User activates issue tracker', :js, feature_category: :integrati it_behaves_like 'external issue tracker activation', tracker: 'Bugzilla' it_behaves_like 'external issue tracker activation', tracker: 'Custom issue tracker' it_behaves_like 'external issue tracker activation', tracker: 'EWM', skip_test: true + it_behaves_like 'external issue tracker activation', tracker: 'ClickUp', skip_new_issue_url: true end diff --git a/spec/features/projects/integrations/user_activates_jira_spec.rb b/spec/features/projects/integrations/user_activates_jira_spec.rb index e4b10aeb340..03d5e68d2aa 100644 --- a/spec/features/projects/integrations/user_activates_jira_spec.rb +++ b/spec/features/projects/integrations/user_activates_jira_spec.rb @@ -48,7 +48,7 @@ RSpec.describe 'User activates Jira', :js, feature_category: :integrations do it 'activates the Jira integration' do stub_request(:get, test_url).with(basic_auth: %w(username password)) - .to_raise(JIRA::HTTPError.new(double(message: 'message'))) + .to_raise(JIRA::HTTPError.new(double(message: 'message', code: '200'))) visit_project_integration('Jira') fill_form diff --git a/spec/features/projects/integrations/user_uses_inherited_settings_spec.rb b/spec/features/projects/integrations/user_uses_inherited_settings_spec.rb index 9ff344bcc88..9d9620c1461 100644 --- a/spec/features/projects/integrations/user_uses_inherited_settings_spec.rb +++ b/spec/features/projects/integrations/user_uses_inherited_settings_spec.rb @@ -4,6 +4,7 @@ require 'spec_helper' RSpec.describe 'User uses inherited settings', :js, feature_category: :integrations do include JiraIntegrationHelpers + include ListboxHelpers include_context 'project integration activation' @@ -22,17 +23,16 @@ RSpec.describe 'User uses inherited settings', :js, feature_category: :integrati expect(page).not_to have_button('Use custom settings') expect(page).to have_field('Web URL', with: parent_settings[:url], readonly: true) - expect(page).to have_field('New API token, password, or Jira personal access token', with: '', readonly: true) + expect(page).to have_field('New API token or password', with: '', readonly: true) - click_on 'Use default settings' - click_on 'Use custom settings' + select_from_listbox('Use custom settings', from: 'Use default settings') expect(page).not_to have_button('Use default settings') expect(page).to have_field('Web URL', with: project_settings[:url], readonly: false) - expect(page).to have_field('New API token, password, or Jira personal access token', with: '', readonly: false) + expect(page).to have_field('New API token or password', with: '', readonly: false) fill_in 'Web URL', with: 'http://custom.com' - fill_in 'New API token, password, or Jira personal access token', with: 'custom' + fill_in 'New API token or password', with: 'custom' click_save_integration @@ -53,14 +53,13 @@ RSpec.describe 'User uses inherited settings', :js, feature_category: :integrati expect(page).not_to have_button('Use default settings') expect(page).to have_field('URL', with: project_settings[:url], readonly: false) - expect(page).to have_field('New API token, password, or Jira personal access token', with: '', readonly: false) + expect(page).to have_field('New API token or password', with: '', readonly: false) - click_on 'Use custom settings' - click_on 'Use default settings' + select_from_listbox('Use default settings', from: 'Use custom settings') expect(page).not_to have_button('Use custom settings') expect(page).to have_field('URL', with: parent_settings[:url], readonly: true) - expect(page).to have_field('New API token, password, or Jira personal access token', with: '', readonly: true) + expect(page).to have_field('New API token or password', with: '', readonly: true) click_save_integration diff --git a/spec/features/projects/issuable_templates_spec.rb b/spec/features/projects/issuable_templates_spec.rb index 77f88994bfb..72695680809 100644 --- a/spec/features/projects/issuable_templates_spec.rb +++ b/spec/features/projects/issuable_templates_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'issuable templates', :js, feature_category: :projects do +RSpec.describe 'issuable templates', :js, feature_category: :groups_and_projects do include ProjectForksHelper include CookieHelper diff --git a/spec/features/projects/jobs/permissions_spec.rb b/spec/features/projects/jobs/permissions_spec.rb index dce86c9f0a4..e1bcc160092 100644 --- a/spec/features/projects/jobs/permissions_spec.rb +++ b/spec/features/projects/jobs/permissions_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project Jobs Permissions', feature_category: :projects do +RSpec.describe 'Project Jobs Permissions', feature_category: :groups_and_projects do using RSpec::Parameterized::TableSyntax let_it_be_with_reload(:group) { create(:group, name: 'some group') } diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb index dd57b4117f9..795084f8008 100644 --- a/spec/features/projects/jobs/user_browses_job_spec.rb +++ b/spec/features/projects/jobs/user_browses_job_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User browses a job', :js, feature_category: :projects do +RSpec.describe 'User browses a job', :js, feature_category: :groups_and_projects do include Spec::Support::Helpers::ModalHelpers let(:user) { create(:user) } diff --git a/spec/features/projects/jobs/user_browses_jobs_spec.rb b/spec/features/projects/jobs/user_browses_jobs_spec.rb index 1634f6dee74..aeba53c22b6 100644 --- a/spec/features/projects/jobs/user_browses_jobs_spec.rb +++ b/spec/features/projects/jobs/user_browses_jobs_spec.rb @@ -8,7 +8,7 @@ def visit_jobs_page wait_for_requests end -RSpec.describe 'User browses jobs', feature_category: :projects do +RSpec.describe 'User browses jobs', feature_category: :groups_and_projects do describe 'Jobs', :js do let(:project) { create(:project, :repository) } let(:user) { create(:user) } @@ -72,7 +72,7 @@ RSpec.describe 'User browses jobs', feature_category: :projects do wait_for_requests - expect(page).to have_selector('.ci-canceled') + expect(page).to have_selector('[data-testid="ci-badge-canceled"]') expect(page).not_to have_selector('[data-testid="jobs-table-error-alert"]') end end @@ -94,7 +94,7 @@ RSpec.describe 'User browses jobs', feature_category: :projects do wait_for_requests - expect(page).to have_selector('.ci-pending') + expect(page).to have_selector('[data-testid="ci-badge-pending"]') end end @@ -134,7 +134,7 @@ RSpec.describe 'User browses jobs', feature_category: :projects do wait_for_requests - expect(page).to have_selector('.ci-pending') + expect(page).to have_selector('[data-testid="ci-badge-pending"]') end it 'unschedules a job successfully' do @@ -142,7 +142,7 @@ RSpec.describe 'User browses jobs', feature_category: :projects do wait_for_requests - expect(page).to have_selector('.ci-manual') + expect(page).to have_selector('[data-testid="ci-badge-manual"]') end end diff --git a/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb b/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb index e4394010e8c..41a21b1155b 100644 --- a/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb +++ b/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User triggers manual job with variables', :js, feature_category: :projects do +RSpec.describe 'User triggers manual job with variables', :js, feature_category: :groups_and_projects do let(:user) { create(:user) } let(:user_access_level) { :developer } let(:project) { create(:project, :repository, namespace: user.namespace) } diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb index 796bac2e8e7..fcd07d33535 100644 --- a/spec/features/projects/jobs_spec.rb +++ b/spec/features/projects/jobs_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require 'tempfile' -RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :projects do +RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :groups_and_projects do include Gitlab::Routing include ProjectForksHelper @@ -66,7 +66,7 @@ RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :proj wait_for_requests - expect(page).to have_css('.ci-status.ci-success', text: 'passed') + expect(page).to have_css('[data-testid="ci-badge-passed"]', text: 'passed') end it 'shows commit`s data', :js do @@ -548,24 +548,24 @@ RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :proj end context 'when there is a cluster used for the deployment' do - let(:cluster) { create(:cluster, name: 'the-cluster') } - let(:deployment) { create(:deployment, :success, cluster: cluster, environment: environment, project: environment.project) } + let(:deployment) { create(:deployment, :success, :on_cluster, environment: environment) } let(:user_access_level) { :maintainer } + let(:cluster) { deployment.cluster } it 'shows a link to the cluster' do - expect(page).to have_link 'the-cluster' + expect(page).to have_link cluster.name end it 'shows the name of the cluster' do - expect(page).to have_content 'using cluster the-cluster' + expect(page).to have_content "using cluster #{cluster.name}" end context 'when the user is not able to view the cluster' do let(:user_access_level) { :reporter } it 'includes only the name of the cluster without a link' do - expect(page).to have_content 'using cluster the-cluster' - expect(page).not_to have_link 'the-cluster' + expect(page).to have_content "using cluster #{cluster.name}" + expect(page).not_to have_link cluster.name end end end diff --git a/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb b/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb index 63dc99efc8f..97b29ee6c91 100644 --- a/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb +++ b/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Group member cannot leave group project', feature_category: :subgroups do +RSpec.describe 'Projects > Members > Group member cannot leave group project', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:group) { create(:group) } let(:project) { create(:project, namespace: group) } diff --git a/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb b/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb index 07886950b95..6656ca3ef18 100644 --- a/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb +++ b/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Projects > Members > Group member cannot request access to their group project', -feature_category: :subgroups do +feature_category: :groups_and_projects do let(:user) { create(:user) } let(:group) { create(:group) } let(:project) { create(:project, namespace: group) } diff --git a/spec/features/projects/members/group_members_spec.rb b/spec/features/projects/members/group_members_spec.rb index c0257446a37..3ab84b40e53 100644 --- a/spec/features/projects/members/group_members_spec.rb +++ b/spec/features/projects/members/group_members_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects members', :js, feature_category: :subgroups do +RSpec.describe 'Projects members', :js, feature_category: :groups_and_projects do include Features::MembersHelpers let(:user) { create(:user) } diff --git a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb index 7a11ee61c5f..9db34cee5d6 100644 --- a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb +++ b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Projects > Members > Group requester cannot request access to project', :js, -feature_category: :subgroups do +feature_category: :groups_and_projects do let(:user) { create(:user) } let(:owner) { create(:user) } let(:group) { create(:group, :public) } diff --git a/spec/features/projects/members/groups_with_access_list_spec.rb b/spec/features/projects/members/groups_with_access_list_spec.rb index 8238f95fd47..a2a04ada627 100644 --- a/spec/features/projects/members/groups_with_access_list_spec.rb +++ b/spec/features/projects/members/groups_with_access_list_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Groups with access list', :js, feature_category: :subgroups do +RSpec.describe 'Projects > Members > Groups with access list', :js, feature_category: :groups_and_projects do + include ListboxHelpers include Features::MembersHelpers include Spec::Support::Helpers::ModalHelpers include Features::InviteMembersModalHelpers @@ -26,8 +27,7 @@ RSpec.describe 'Projects > Members > Groups with access list', :js, feature_cate end it 'updates group access level' do - click_button group_link.human_access - click_button 'Guest' + select_from_listbox('Guest', from: group_link.human_access) wait_for_requests diff --git a/spec/features/projects/members/manage_groups_spec.rb b/spec/features/projects/members/manage_groups_spec.rb index 5efb5abefc6..63ff1ba8455 100644 --- a/spec/features/projects/members/manage_groups_spec.rb +++ b/spec/features/projects/members/manage_groups_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project > Members > Manage groups', :js, feature_category: :subgroups do +RSpec.describe 'Project > Members > Manage groups', :js, feature_category: :groups_and_projects do include ActionView::Helpers::DateHelper include Features::MembersHelpers include Features::InviteMembersModalHelpers diff --git a/spec/features/projects/members/manage_members_spec.rb b/spec/features/projects/members/manage_members_spec.rb index 5ae6eb83b6b..0e3ac5ff3ac 100644 --- a/spec/features/projects/members/manage_members_spec.rb +++ b/spec/features/projects/members/manage_members_spec.rb @@ -3,6 +3,7 @@ require 'spec_helper' RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :onboarding do + include ListboxHelpers include Features::MembersHelpers include Features::InviteMembersModalHelpers include Spec::Support::Helpers::ModalHelpers @@ -61,11 +62,8 @@ RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :on page.within find_member_row(project_developer) do click_button('Developer') - page.within '.dropdown-menu' do - expect(page).not_to have_button('Owner') - end - - click_button('Reporter') + expect_no_listbox_item('Owner') + select_listbox_item('Reporter') expect(page).to have_button('Reporter') end @@ -87,8 +85,7 @@ RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :on visit_members_page page.within find_member_row(project_owner) do - click_button('Owner') - click_button('Reporter') + select_from_listbox('Reporter', from: 'Owner') expect(page).to have_button('Reporter') end diff --git a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb index be778def833..b51259bea23 100644 --- a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb +++ b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Maintainer adds member with expiration date', :js, feature_category: :subgroups do +RSpec.describe 'Projects > Members > Maintainer adds member with expiration date', :js, feature_category: :groups_and_projects do include ActiveSupport::Testing::TimeHelpers include Features::MembersHelpers include Features::InviteMembersModalHelpers diff --git a/spec/features/projects/members/master_manages_access_requests_spec.rb b/spec/features/projects/members/master_manages_access_requests_spec.rb index cea59679226..04d28022b73 100644 --- a/spec/features/projects/members/master_manages_access_requests_spec.rb +++ b/spec/features/projects/members/master_manages_access_requests_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Maintainer manages access requests', feature_category: :subgroups do +RSpec.describe 'Projects > Members > Maintainer manages access requests', feature_category: :groups_and_projects do it_behaves_like 'Maintainer manages access requests' do let(:entity) { create(:project, :public, :with_namespace_settings) } let(:members_page_path) { project_project_members_path(entity) } diff --git a/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb b/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb index dc18ca88c36..91237c334cc 100644 --- a/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb +++ b/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Member cannot request access to their project', feature_category: :subgroups do +RSpec.describe 'Projects > Members > Member cannot request access to their project', feature_category: :groups_and_projects do let(:member) { create(:user) } let(:project) { create(:project) } diff --git a/spec/features/projects/members/member_leaves_project_spec.rb b/spec/features/projects/members/member_leaves_project_spec.rb index 91e30b3396e..e0c64547e9f 100644 --- a/spec/features/projects/members/member_leaves_project_spec.rb +++ b/spec/features/projects/members/member_leaves_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Member leaves project', feature_category: :subgroups do +RSpec.describe 'Projects > Members > Member leaves project', feature_category: :groups_and_projects do include Features::MembersHelpers include Spec::Support::Helpers::ModalHelpers diff --git a/spec/features/projects/members/owner_cannot_leave_project_spec.rb b/spec/features/projects/members/owner_cannot_leave_project_spec.rb index 7908fd3a98f..c79d227647a 100644 --- a/spec/features/projects/members/owner_cannot_leave_project_spec.rb +++ b/spec/features/projects/members/owner_cannot_leave_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Owner cannot leave project', feature_category: :subgroups do +RSpec.describe 'Projects > Members > Owner cannot leave project', feature_category: :groups_and_projects do let(:project) { create(:project) } before do diff --git a/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb b/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb index b5a862578d3..84cf31b526a 100644 --- a/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb +++ b/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Owner cannot request access to their own project', feature_category: :subgroups do +RSpec.describe 'Projects > Members > Owner cannot request access to their own project', feature_category: :groups_and_projects do let(:project) { create(:project) } before do diff --git a/spec/features/projects/members/sorting_spec.rb b/spec/features/projects/members/sorting_spec.rb index 85bf381404c..9747d499ae9 100644 --- a/spec/features/projects/members/sorting_spec.rb +++ b/spec/features/projects/members/sorting_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Sorting', :js, feature_category: :subgroups do +RSpec.describe 'Projects > Members > Sorting', :js, feature_category: :groups_and_projects do include Features::MembersHelpers let(:maintainer) { create(:user, name: 'John Doe', created_at: 5.days.ago, last_activity_on: Date.today) } diff --git a/spec/features/projects/members/tabs_spec.rb b/spec/features/projects/members/tabs_spec.rb index 9ee06edc0c1..edd4a51089c 100644 --- a/spec/features/projects/members/tabs_spec.rb +++ b/spec/features/projects/members/tabs_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > Tabs', :js, feature_category: :subgroups do +RSpec.describe 'Projects > Members > Tabs', :js, feature_category: :groups_and_projects do include Features::MembersHelpers using RSpec::Parameterized::TableSyntax diff --git a/spec/features/projects/members/user_requests_access_spec.rb b/spec/features/projects/members/user_requests_access_spec.rb index 11d162fabd4..6f76424e377 100644 --- a/spec/features/projects/members/user_requests_access_spec.rb +++ b/spec/features/projects/members/user_requests_access_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Members > User requests access', :js, feature_category: :subgroups do +RSpec.describe 'Projects > Members > User requests access', :js, feature_category: :groups_and_projects do include Spec::Support::Helpers::ModalHelpers let_it_be(:user) { create(:user) } diff --git a/spec/features/projects/merge_request_button_spec.rb b/spec/features/projects/merge_request_button_spec.rb index 56aee469252..6d6d850342a 100644 --- a/spec/features/projects/merge_request_button_spec.rb +++ b/spec/features/projects/merge_request_button_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Merge Request button', feature_category: :projects do +RSpec.describe 'Merge Request button', feature_category: :groups_and_projects do include ProjectForksHelper let_it_be(:user) { create(:user) } @@ -50,10 +50,17 @@ RSpec.describe 'Merge Request button', feature_category: :projects do end it 'does not show Create merge request button' do + href = project_new_merge_request_path( + project, + merge_request: { + source_branch: 'feature' + }.merge(extra_mr_params) + ) + visit url within('#content-body') do - expect(page).not_to have_link(label) + expect(page).not_to have_link(label, href: href) end end end @@ -105,7 +112,7 @@ RSpec.describe 'Merge Request button', feature_category: :projects do context 'on branches page' do it_behaves_like 'Merge request button only shown when allowed' do - let(:label) { 'Merge request' } + let(:label) { 'New' } let(:url) { project_branches_filtered_path(project, state: 'all', search: 'feature') } let(:fork_url) { project_branches_filtered_path(forked_project, state: 'all', search: 'feature') } end diff --git a/spec/features/projects/milestones/milestone_showing_spec.rb b/spec/features/projects/milestones/milestone_showing_spec.rb new file mode 100644 index 00000000000..b68f569221a --- /dev/null +++ b/spec/features/projects/milestones/milestone_showing_spec.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Project milestone', :js, feature_category: :team_planning do + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, namespace: user.namespace) } + + let(:milestone) { create(:milestone, project: project) } + + before do + sign_in(user) + end + + it_behaves_like 'milestone with interactive markdown task list items in description' do + let(:milestone_path) { project_milestone_path(project, milestone) } + end +end diff --git a/spec/features/projects/navbar_spec.rb b/spec/features/projects/navbar_spec.rb index 532dd7d0a84..97dfeb6fd06 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', :with_license, feature_category: :projects do +RSpec.describe 'Project navbar', :with_license, feature_category: :groups_and_projects do include NavbarStructureHelper include WaitForRequests @@ -20,7 +20,6 @@ RSpec.describe 'Project navbar', :with_license, feature_category: :projects do stub_config(registry: { enabled: false }) stub_feature_flags(harbor_registry_integration: false) stub_feature_flags(ml_experiment_tracking: false) - stub_feature_flags(remove_monitor_metrics: false) insert_package_nav(_('Deployments')) insert_infrastructure_registry_nav insert_infrastructure_google_cloud_nav diff --git a/spec/features/projects/network_graph_spec.rb b/spec/features/projects/network_graph_spec.rb index af976b8ffb0..eff0335c891 100644 --- a/spec/features/projects/network_graph_spec.rb +++ b/spec/features/projects/network_graph_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project Network Graph', :js, feature_category: :projects do +RSpec.describe 'Project Network Graph', :js, feature_category: :groups_and_projects do let(:user) { create :user } let(:project) { create :project, :repository, namespace: user.namespace } let(:ref_selector) { '.ref-selector' } diff --git a/spec/features/projects/new_project_from_template_spec.rb b/spec/features/projects/new_project_from_template_spec.rb index 97304840010..8e2016ce17e 100644 --- a/spec/features/projects/new_project_from_template_spec.rb +++ b/spec/features/projects/new_project_from_template_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'New project from template', :js, feature_category: :projects do +RSpec.describe 'New project from template', :js, feature_category: :groups_and_projects do let(:user) { create(:user) } before do diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb index 351662af217..d05b7649f94 100644 --- a/spec/features/projects/new_project_spec.rb +++ b/spec/features/projects/new_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'New project', :js, feature_category: :projects do +RSpec.describe 'New project', :js, feature_category: :groups_and_projects do include Features::TopNavSpecHelpers before do @@ -99,7 +99,6 @@ RSpec.describe 'New project', :js, feature_category: :projects do context 'when the new navigation is enabled' do before do user.update!(use_new_navigation: true) - stub_feature_flags(super_sidebar_nav: true) end include_examples '"New project" page' diff --git a/spec/features/projects/package_files_spec.rb b/spec/features/projects/package_files_spec.rb index 824b57db7ad..540ad745610 100644 --- a/spec/features/projects/package_files_spec.rb +++ b/spec/features/projects/package_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'PackageFiles', feature_category: :projects do +RSpec.describe 'PackageFiles', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project) } let!(:package) { create(:maven_package, project: project) } diff --git a/spec/features/projects/packages_spec.rb b/spec/features/projects/packages_spec.rb index 5d3ebd8bec6..5073c147b6c 100644 --- a/spec/features/projects/packages_spec.rb +++ b/spec/features/projects/packages_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Packages', feature_category: :projects do +RSpec.describe 'Packages', feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project) } diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb index 81e003d7d1c..358c55376d4 100644 --- a/spec/features/projects/pipeline_schedules_spec.rb +++ b/spec/features/projects/pipeline_schedules_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Pipeline Schedules', :js, feature_category: :projects do +RSpec.describe 'Pipeline Schedules', :js, feature_category: :groups_and_projects do include Spec::Support::Helpers::ModalHelpers let!(:project) { create(:project, :repository) } @@ -413,8 +413,8 @@ RSpec.describe 'Pipeline Schedules', :js, feature_category: :projects do end def select_timezone - find('[data-testid="schedule-timezone"] .dropdown-toggle').click - find("button", text: "Arizona").click + find('[data-testid="schedule-timezone"] .gl-new-dropdown-toggle').click + find("li", text: "Arizona").click end def select_target_branch diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb index 7167581eedf..abc9e3d30fc 100644 --- a/spec/features/projects/pipelines/pipeline_spec.rb +++ b/spec/features/projects/pipelines/pipeline_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Pipeline', :js, feature_category: :projects do +RSpec.describe 'Pipeline', :js, feature_category: :groups_and_projects do include RoutesHelpers include ProjectForksHelper include ::ExclusiveLeaseHelpers @@ -13,6 +13,7 @@ RSpec.describe 'Pipeline', :js, feature_category: :projects do let(:role) { :developer } before do + stub_feature_flags(pipeline_details_header_vue: false) sign_in(user) project.add_role(user, role) end diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb index d3ccde3d2e1..441f39e6999 100644 --- a/spec/features/projects/pipelines/pipelines_spec.rb +++ b/spec/features/projects/pipelines/pipelines_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Pipelines', :js, feature_category: :projects do +RSpec.describe 'Pipelines', :js, feature_category: :groups_and_projects do include ListboxHelpers include ProjectForksHelper include Spec::Support::Helpers::ModalHelpers @@ -10,6 +10,10 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do let(:project) { create(:project) } let(:expected_detached_mr_tag) { 'merge request' } + before do + stub_feature_flags(pipeline_details_header_vue: false) + end + context 'when user is logged in' do let(:user) { create(:user) } @@ -116,7 +120,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do it 'indicates that pipeline can be canceled' do expect(page).to have_selector('.js-pipelines-cancel-button') - expect(page).to have_selector('.ci-running') + expect(page).to have_selector('[data-testid="ci-badge-running"]') end context 'when canceling' do @@ -128,7 +132,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do it 'indicated that pipelines was canceled', :sidekiq_might_not_need_inline do expect(page).not_to have_selector('.js-pipelines-cancel-button') - expect(page).to have_selector('.ci-canceled') + expect(page).to have_selector('[data-testid="ci-badge-canceled"]') end end end @@ -146,7 +150,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do it 'indicates that pipeline can be retried' do expect(page).to have_selector('.js-pipelines-retry-button') - expect(page).to have_selector('.ci-failed') + expect(page).to have_selector('[data-testid="ci-badge-failed"]') end context 'when retrying' do @@ -157,7 +161,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do it 'shows running pipeline that is not retryable' do expect(page).not_to have_selector('.js-pipelines-retry-button') - expect(page).to have_selector('.ci-running') + expect(page).to have_selector('[data-testid="ci-badge-running"]') end end end @@ -396,7 +400,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do end it 'shows the pipeline as preparing' do - expect(page).to have_selector('.ci-preparing') + expect(page).to have_selector('[data-testid="ci-badge-preparing"]') end end @@ -417,7 +421,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do end it 'has pipeline running' do - expect(page).to have_selector('.ci-running') + expect(page).to have_selector('[data-testid="ci-badge-running"]') end context 'when canceling' do @@ -428,7 +432,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do it 'indicates that pipeline was canceled', :sidekiq_might_not_need_inline do expect(page).not_to have_selector('.js-pipelines-cancel-button') - expect(page).to have_selector('.ci-canceled') + expect(page).to have_selector('[data-testid="ci-badge-canceled"]') end end end @@ -450,7 +454,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do end it 'has failed pipeline', :sidekiq_might_not_need_inline do - expect(page).to have_selector('.ci-failed') + expect(page).to have_selector('[data-testid="ci-badge-failed"]') end end end @@ -605,17 +609,17 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do wait_for_requests end - it 'changes the Pipeline ID column for Pipeline IID' do - page.find('[data-testid="pipeline-key-collapsible-box"]').click + it 'changes the Pipeline ID column link to Pipeline IID and persists', :aggregate_failures do + expect(page).to have_link(text: "##{pipeline.id}") - within '.gl-new-dropdown-contents' do - dropdown_options = page.find_all '.gl-new-dropdown-item' + select_from_listbox('Show Pipeline IID', from: 'Show Pipeline ID') - dropdown_options[1].click - end + expect(page).to have_link(text: "##{pipeline.iid}") + + visit project_pipelines_path(project) + wait_for_requests - expect(page.find('[data-testid="pipeline-th"]')).to have_content 'Pipeline' - expect(page.find('[data-testid="pipeline-url-link"]')).to have_content "##{pipeline.iid}" + expect(page).to have_link(text: "##{pipeline.iid}") end end end @@ -686,7 +690,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :projects do click_button project.default_branch wait_for_requests - find('.gl-new-dropdown-item', text: '2-mb-file').click + find('.gl-new-dropdown-item', text: 'spooky-stuff').click wait_for_requests end diff --git a/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb b/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb index fb7814285b8..0cc105353f5 100644 --- a/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb +++ b/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Raw > User interacts with raw endpoint', feature_category: :projects do +RSpec.describe 'Projects > Raw > User interacts with raw endpoint', feature_category: :groups_and_projects do include RepoHelpers let(:user) { create(:user) } diff --git a/spec/features/projects/releases/user_views_releases_spec.rb b/spec/features/projects/releases/user_views_releases_spec.rb index 0a4075be02f..d0111d0b9c8 100644 --- a/spec/features/projects/releases/user_views_releases_spec.rb +++ b/spec/features/projects/releases/user_views_releases_spec.rb @@ -24,6 +24,17 @@ RSpec.describe 'User views releases', :js, feature_category: :continuous_deliver stub_default_url_options(host: 'localhost') end + shared_examples 'when the project does not have releases' do + before do + project.releases.delete_all + visit project_releases_path(project) + end + + it 'sees an empty state' do + expect(page).to have_selector('[data-testid="gl-empty-state-content"]') + end + end + context('when the user is a maintainer') do before do sign_in(maintainer) @@ -110,6 +121,8 @@ RSpec.describe 'User views releases', :js, feature_category: :continuous_deliver it_behaves_like 'releases sort order' end end + + it_behaves_like 'when the project does not have releases' end context('when the user is a guest') do @@ -130,5 +143,7 @@ RSpec.describe 'User views releases', :js, feature_category: :continuous_deliver expect(page).not_to have_content(release_v3.commit.short_id) end end + + it_behaves_like 'when the project does not have releases' end end diff --git a/spec/features/projects/remote_mirror_spec.rb b/spec/features/projects/remote_mirror_spec.rb index aa0c1ead4c0..4f27ba04f37 100644 --- a/spec/features/projects/remote_mirror_spec.rb +++ b/spec/features/projects/remote_mirror_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project remote mirror', :feature, feature_category: :projects do +RSpec.describe 'Project remote mirror', :feature, feature_category: :groups_and_projects do let(:project) { create(:project, :repository, :remote_mirror) } let(:remote_mirror) { project.remote_mirrors.first } let(:user) { create(:user) } diff --git a/spec/features/projects/settings/branch_names_settings_spec.rb b/spec/features/projects/settings/branch_names_settings_spec.rb index 5d82dff1efd..cc7396513cb 100644 --- a/spec/features/projects/settings/branch_names_settings_spec.rb +++ b/spec/features/projects/settings/branch_names_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project settings > repositories > Branch names', :js, feature_category: :projects do +RSpec.describe 'Project settings > repositories > Branch names', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :public) } let(:user) { create(:user) } diff --git a/spec/features/projects/settings/branch_rules_settings_spec.rb b/spec/features/projects/settings/branch_rules_settings_spec.rb index 59609fecd93..5ef80521401 100644 --- a/spec/features/projects/settings/branch_rules_settings_spec.rb +++ b/spec/features/projects/settings/branch_rules_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > Repository > Branch rules settings', feature_category: :projects do +RSpec.describe 'Projects > Settings > Repository > Branch rules settings', feature_category: :groups_and_projects do let(:project) { create(:project_empty_repo) } let(:user) { create(:user) } let(:role) { :developer } @@ -45,14 +45,5 @@ RSpec.describe 'Projects > Settings > Repository > Branch rules settings', featu expect(page).to have_content('Branch rules') end end - - context 'branch_rules feature flag disabled' do - it 'does not render branch rules content' do - stub_feature_flags(branch_rules: false) - request - - expect(page).to have_gitlab_http_status(:not_found) - end - end end end diff --git a/spec/features/projects/settings/external_authorization_service_settings_spec.rb b/spec/features/projects/settings/external_authorization_service_settings_spec.rb index a99fd5f9788..4a56e6c8bbf 100644 --- a/spec/features/projects/settings/external_authorization_service_settings_spec.rb +++ b/spec/features/projects/settings/external_authorization_service_settings_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Projects > Settings > External Authorization Classification Label setting', -feature_category: :projects do +feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project_empty_repo) } diff --git a/spec/features/projects/settings/forked_project_settings_spec.rb b/spec/features/projects/settings/forked_project_settings_spec.rb index 6b646bcf7d3..c2a5b36a81b 100644 --- a/spec/features/projects/settings/forked_project_settings_spec.rb +++ b/spec/features/projects/settings/forked_project_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :projects do +RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :groups_and_projects do include ProjectForksHelper let(:user) { create(:user) } let(:original_project) { create(:project) } diff --git a/spec/features/projects/settings/lfs_settings_spec.rb b/spec/features/projects/settings/lfs_settings_spec.rb index 1695b49830d..bc5efecfe0d 100644 --- a/spec/features/projects/settings/lfs_settings_spec.rb +++ b/spec/features/projects/settings/lfs_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > LFS settings', feature_category: :projects do +RSpec.describe 'Projects > Settings > LFS settings', feature_category: :groups_and_projects do let(:project) { create(:project) } let(:user) { create(:user) } let(:role) { :maintainer } diff --git a/spec/features/projects/settings/merge_requests_settings_spec.rb b/spec/features/projects/settings/merge_requests_settings_spec.rb index ca90817b0a4..8b5f9b67890 100644 --- a/spec/features/projects/settings/merge_requests_settings_spec.rb +++ b/spec/features/projects/settings/merge_requests_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > Merge requests', feature_category: :projects do +RSpec.describe 'Projects > Settings > Merge requests', feature_category: :groups_and_projects do include ProjectForksHelper let(:user) { create(:user) } @@ -98,6 +98,36 @@ RSpec.describe 'Projects > Settings > Merge requests', feature_category: :projec end end + describe 'With the fast_forward_merge_trains_support feature flag turned off' do + before do + sign_in(user) + stub_feature_flags(fast_forward_merge_trains_support: false) + + visit(project_settings_merge_requests_path(project)) + end + + it 'does not display the fast forward merge train message' do + page.within '.merge-request-settings-form' do + expect(page).not_to have_content 'merging is only possible if the branch can be rebased without conflicts.' + end + end + end + + describe 'With the fast_forward_merge_trains_support feature flag turned on' do + before do + sign_in(user) + stub_feature_flags(fast_forward_merge_trains_support: true) + + visit(project_settings_merge_requests_path(project)) + end + + it 'displays the fast forward merge train message' do + page.within '.merge-request-settings-form' do + expect(page).to have_content 'merging is only possible if the branch can be rebased without conflicts.' + end + end + end + context 'when Merge Request are initially disabled', :js do before do project.project_feature.update_attribute('merge_requests_access_level', ProjectFeature::DISABLED) diff --git a/spec/features/projects/settings/monitor_settings_spec.rb b/spec/features/projects/settings/monitor_settings_spec.rb index 1367ffb0009..c5a5826a778 100644 --- a/spec/features/projects/settings/monitor_settings_spec.rb +++ b/spec/features/projects/settings/monitor_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :projects do +RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :groups_and_projects do include ListboxHelpers let_it_be(:project) { create(:project, :repository, create_templates: :issue) } @@ -11,7 +11,6 @@ RSpec.describe 'Projects > Settings > For a forked project', :js, feature_catego before do sign_in(user) - stub_feature_flags(remove_monitor_metrics: false) end describe 'Sidebar > Monitor' do @@ -19,8 +18,8 @@ RSpec.describe 'Projects > Settings > For a forked project', :js, feature_catego visit project_path(project) wait_for_requests - expect(page).to have_selector('.sidebar-sub-level-items a[aria-label="Monitor"]', - text: 'Monitor', visible: :hidden) + expect(page).to have_selector('.sidebar-sub-level-items a[aria-label="Error Tracking"]', + text: 'Error Tracking', visible: :hidden) end end @@ -192,30 +191,5 @@ RSpec.describe 'Projects > Settings > For a forked project', :js, feature_catego end end end - - describe 'grafana integration settings form' do - it 'successfully fills and completes the form' do - visit project_settings_operations_path(project) - - wait_for_requests - - within '.js-grafana-integration' do - click_button('Expand') - end - - expect(page).to have_content('Grafana URL') - expect(page).to have_content('API token') - expect(page).to have_button('Save changes') - - fill_in('grafana-url', with: 'http://gitlab-test.grafana.net') - fill_in('grafana-token', with: 'token') - - click_button('Save changes') - - wait_for_requests - - assert_text('Your changes have been saved') - end - end end end diff --git a/spec/features/projects/settings/packages_settings_spec.rb b/spec/features/projects/settings/packages_settings_spec.rb index bf5c779b109..564a71e9a23 100644 --- a/spec/features/projects/settings/packages_settings_spec.rb +++ b/spec/features/projects/settings/packages_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > Packages', :js, feature_category: :projects do +RSpec.describe 'Projects > Settings > Packages', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project) } let(:user) { project.first_owner } diff --git a/spec/features/projects/settings/pipelines_settings_spec.rb b/spec/features/projects/settings/pipelines_settings_spec.rb index 51858ddf8c5..ef1c03f4f27 100644 --- a/spec/features/projects/settings/pipelines_settings_spec.rb +++ b/spec/features/projects/settings/pipelines_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :projects do +RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :groups_and_projects do let(:project) { create(:project) } let(:user) { create(:user) } let(:role) { :developer } diff --git a/spec/features/projects/settings/project_badges_spec.rb b/spec/features/projects/settings/project_badges_spec.rb index f4c2265c2c2..1f170300155 100644 --- a/spec/features/projects/settings/project_badges_spec.rb +++ b/spec/features/projects/settings/project_badges_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project Badges', feature_category: :projects do +RSpec.describe 'Project Badges', feature_category: :groups_and_projects do include WaitForRequests let(:user) { create(:user) } diff --git a/spec/features/projects/settings/project_settings_spec.rb b/spec/features/projects/settings/project_settings_spec.rb index 46a41cfc6f1..1c1bbc7e85c 100644 --- a/spec/features/projects/settings/project_settings_spec.rb +++ b/spec/features/projects/settings/project_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects settings', feature_category: :projects do +RSpec.describe 'Projects settings', feature_category: :groups_and_projects do let_it_be(:project) { create(:project) } let(:user) { project.first_owner } diff --git a/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb b/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb index bdfe6a06dd1..50693dda685 100644 --- a/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb +++ b/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Project > Settings > Packages and registries > Container registry tag expiration policy', -feature_category: :projects do +feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project, reload: true) { create(:project, namespace: user.namespace) } diff --git a/spec/features/projects/settings/registry_settings_spec.rb b/spec/features/projects/settings/registry_settings_spec.rb index 68e9b0225ea..b8016a5d2df 100644 --- a/spec/features/projects/settings/registry_settings_spec.rb +++ b/spec/features/projects/settings/registry_settings_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Project > Settings > Packages and registries > Container registry tag expiration policy', -feature_category: :projects do +feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project, reload: true) { create(:project, namespace: user.namespace) } diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb index 08abade7d18..2439e624dd6 100644 --- a/spec/features/projects/settings/repository_settings_spec.rb +++ b/spec/features/projects/settings/repository_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > Repository settings', feature_category: :projects do +RSpec.describe 'Projects > Settings > Repository settings', feature_category: :groups_and_projects do include Features::MirroringHelpers let(:project) { create(:project_empty_repo) } @@ -10,7 +10,6 @@ RSpec.describe 'Projects > Settings > Repository settings', feature_category: :p let(:role) { :developer } before do - stub_feature_flags(branch_rules: false) stub_feature_flags(mirror_only_branches_match_regex: false) project.add_role(user, role) sign_in(user) @@ -43,15 +42,7 @@ RSpec.describe 'Projects > Settings > Repository settings', feature_category: :p end context 'Branch rules', :js do - context 'branch_rules feature flag disabled', :js do - it 'does not render branch rules settings' do - visit project_settings_repository_path(project) - expect(page).not_to have_content('Branch rules') - end - end - it 'renders branch rules settings' do - stub_feature_flags(branch_rules: true) visit project_settings_repository_path(project) expect(page).to have_content('Branch rules') end diff --git a/spec/features/projects/settings/secure_files_spec.rb b/spec/features/projects/settings/secure_files_spec.rb index 9afe1f4de54..7ff1a5f3568 100644 --- a/spec/features/projects/settings/secure_files_spec.rb +++ b/spec/features/projects/settings/secure_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Secure Files', :js, feature_category: :projects do +RSpec.describe 'Secure Files', :js, feature_category: :groups_and_projects do let(:project) { create(:project) } let(:user) { create(:user) } @@ -12,6 +12,17 @@ RSpec.describe 'Secure Files', :js, feature_category: :projects do sign_in(user) end + context 'when disabled at the instance level' do + before do + stub_config(ci_secure_files: { enabled: false }) + end + + it 'does not show the secure files settings' do + visit project_settings_ci_cd_path(project) + expect(page).not_to have_content('Secure Files') + end + end + context 'authenticated user with admin permissions' do it 'shows the secure files settings' do visit project_settings_ci_cd_path(project) diff --git a/spec/features/projects/settings/service_desk_setting_spec.rb b/spec/features/projects/settings/service_desk_setting_spec.rb index 74139aa0d7f..c18da56f3ee 100644 --- a/spec/features/projects/settings/service_desk_setting_spec.rb +++ b/spec/features/projects/settings/service_desk_setting_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Service Desk Setting', :js, :clean_gitlab_redis_cache, feature_category: :projects do +RSpec.describe 'Service Desk Setting', :js, :clean_gitlab_redis_cache, feature_category: :groups_and_projects do let(:project) { create(:project_empty_repo, :private, service_desk_enabled: false) } let(:presenter) { project.present(current_user: user) } let(:user) { create(:user) } diff --git a/spec/features/projects/settings/slack_application_spec.rb b/spec/features/projects/settings/slack_application_spec.rb new file mode 100644 index 00000000000..79291094aae --- /dev/null +++ b/spec/features/projects/settings/slack_application_spec.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Slack application', :js, feature_category: :integrations do + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user, maintainer_projects: [project]) } + let_it_be(:integration) { create(:gitlab_slack_application_integration, project: project) } + let(:slack_application_form_path) { edit_project_settings_integration_path(project, integration) } + + before do + stub_application_setting(slack_app_enabled: true) + + gitlab_sign_in(user) + end + + it 'I can edit slack integration' do + visit slack_application_form_path + + within '[data-testid="integration-settings-form"]' do + click_link 'Edit' + end + + fill_in 'slack_integration_alias', with: 'alias-edited' + click_button 'Save changes' + + expect(page).to have_content('The project alias was updated successfully') + + within '[data-testid="integration-settings-form"]' do + expect(page).to have_content('alias-edited') + end + end + + it 'shows the trigger form fields' do + visit slack_application_form_path + + expect(page).to have_selector('[data-testid="trigger-fields-group"]') + end + + context 'when the integration is disabled' do + before do + integration.update!(active: false) + end + + it 'does not show the trigger form fields' do + expect(page).not_to have_selector('[data-testid="trigger-fields-group"]') + end + end +end diff --git a/spec/features/projects/settings/user_archives_project_spec.rb b/spec/features/projects/settings/user_archives_project_spec.rb index a6aac02d272..e4a5249c678 100644 --- a/spec/features/projects/settings/user_archives_project_spec.rb +++ b/spec/features/projects/settings/user_archives_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User archives a project', feature_category: :projects do +RSpec.describe 'Projects > Settings > User archives a project', feature_category: :groups_and_projects do let(:user) { create(:user) } before do diff --git a/spec/features/projects/settings/user_changes_avatar_spec.rb b/spec/features/projects/settings/user_changes_avatar_spec.rb index 87043aec9b6..c589366d3df 100644 --- a/spec/features/projects/settings/user_changes_avatar_spec.rb +++ b/spec/features/projects/settings/user_changes_avatar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User changes avatar', feature_category: :projects do +RSpec.describe 'Projects > Settings > User changes avatar', feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { project.creator } diff --git a/spec/features/projects/settings/user_changes_default_branch_spec.rb b/spec/features/projects/settings/user_changes_default_branch_spec.rb index 67ba16a2716..5886699a192 100644 --- a/spec/features/projects/settings/user_changes_default_branch_spec.rb +++ b/spec/features/projects/settings/user_changes_default_branch_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User changes default branch', feature_category: :projects do +RSpec.describe 'Projects > Settings > User changes default branch', feature_category: :groups_and_projects do include ListboxHelpers let(:user) { create(:user) } 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 3a58de9aa7d..0006762a971 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 @@ -2,7 +2,7 @@ require "spec_helper" -RSpec.describe "User interacts with deploy keys", :js, feature_category: :projects do +RSpec.describe "User interacts with deploy keys", :js, feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { project.first_owner } diff --git a/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb b/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb index cfefdd54c23..1189f5590f8 100644 --- a/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb +++ b/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe 'Projects > Settings > User manages merge request settings', feature_category: :projects do +RSpec.describe 'Projects > Settings > User manages merge request settings', feature_category: :groups_and_projects do include ProjectForksHelper let(:user) { create(:user) } 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 b7463537fb2..df571e13979 100644 --- a/spec/features/projects/settings/user_manages_project_members_spec.rb +++ b/spec/features/projects/settings/user_manages_project_members_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User manages project members', feature_category: :projects do +RSpec.describe 'Projects > Settings > User manages project members', feature_category: :groups_and_projects do include Features::MembersHelpers include Spec::Support::Helpers::ModalHelpers include ListboxHelpers 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 a6b72e7a297..5a58c049601 100644 --- a/spec/features/projects/settings/user_renames_a_project_spec.rb +++ b/spec/features/projects/settings/user_renames_a_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User renames a project', feature_category: :projects do +RSpec.describe 'Projects > Settings > User renames a project', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, namespace: user.namespace, path: 'gitlab', name: 'sample') } 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 923a6a10671..f0ef4a285ad 100644 --- a/spec/features/projects/settings/user_searches_in_settings_spec.rb +++ b/spec/features/projects/settings/user_searches_in_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User searches project settings', :js, feature_category: :projects do +RSpec.describe 'User searches project settings', :js, feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :repository, namespace: user.namespace, pages_https_only: false) } diff --git a/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb b/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb index 65aed4fd06f..1bc5af39f12 100644 --- a/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb +++ b/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Repository Settings > User sees revoke deploy token modal', :js, feature_category: :projects do +RSpec.describe 'Repository Settings > User sees revoke deploy token modal', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :public, :repository) } let(:user) { project.creator } let(:role) { :developer } diff --git a/spec/features/projects/settings/user_tags_project_spec.rb b/spec/features/projects/settings/user_tags_project_spec.rb index 43e8e5a2d38..6b616b4abed 100644 --- a/spec/features/projects/settings/user_tags_project_spec.rb +++ b/spec/features/projects/settings/user_tags_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User tags a project', :js, feature_category: :projects do +RSpec.describe 'Projects > Settings > User tags a project', :js, feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, namespace: user.namespace) } let!(:topic) { create(:topic, name: 'topic1') } diff --git a/spec/features/projects/settings/user_transfers_a_project_spec.rb b/spec/features/projects/settings/user_transfers_a_project_spec.rb index 53b4ee881f9..97871eed296 100644 --- a/spec/features/projects/settings/user_transfers_a_project_spec.rb +++ b/spec/features/projects/settings/user_transfers_a_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > User transfers a project', :js, feature_category: :projects do +RSpec.describe 'Projects > Settings > User transfers a project', :js, feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, :repository, namespace: user.namespace) } let(:group) { create(:group) } diff --git a/spec/features/projects/settings/visibility_settings_spec.rb b/spec/features/projects/settings/visibility_settings_spec.rb index 5246eda976b..7d41b60199c 100644 --- a/spec/features/projects/settings/visibility_settings_spec.rb +++ b/spec/features/projects/settings/visibility_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_category: :projects do +RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, namespace: user.namespace, visibility_level: 20) } diff --git a/spec/features/projects/settings/webhooks_settings_spec.rb b/spec/features/projects/settings/webhooks_settings_spec.rb index e527d0c9c74..5d345c63d60 100644 --- a/spec/features/projects/settings/webhooks_settings_spec.rb +++ b/spec/features/projects/settings/webhooks_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Settings > Webhook Settings', feature_category: :projects do +RSpec.describe 'Projects > Settings > Webhook Settings', feature_category: :groups_and_projects do let(:project) { create(:project) } let(:user) { create(:user) } let(:webhooks_path) { project_hooks_path(project) } diff --git a/spec/features/projects/show/clone_button_spec.rb b/spec/features/projects/show/clone_button_spec.rb index 48af4bf8277..e3964a37bcf 100644 --- a/spec/features/projects/show/clone_button_spec.rb +++ b/spec/features/projects/show/clone_button_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > Clone button', feature_category: :projects do +RSpec.describe 'Projects > Show > Clone button', feature_category: :groups_and_projects do let_it_be(:admin) { create(:admin) } let_it_be(:guest) { create(:user) } let_it_be(:project) { create(:project, :private, :in_group, :repository) } diff --git a/spec/features/projects/show/download_buttons_spec.rb b/spec/features/projects/show/download_buttons_spec.rb index e4d50daa6f4..a4df6a56e02 100644 --- a/spec/features/projects/show/download_buttons_spec.rb +++ b/spec/features/projects/show/download_buttons_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > Download buttons', feature_category: :projects do +RSpec.describe 'Projects > Show > Download buttons', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:role) { :developer } let(:status) { 'success' } diff --git a/spec/features/projects/show/no_password_spec.rb b/spec/features/projects/show/no_password_spec.rb index 9ead729af83..ff32f779c95 100644 --- a/spec/features/projects/show/no_password_spec.rb +++ b/spec/features/projects/show/no_password_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'No Password Alert', feature_category: :projects do +RSpec.describe 'No Password Alert', feature_category: :groups_and_projects do let_it_be(:message_password_auth_enabled) { 'Your account is authenticated with SSO or SAML. To push and pull over HTTP with Git using this account, you must set a password or set up a Personal Access Token to use instead of a password. For more information, see Clone with HTTPS.' } let_it_be(:message_password_auth_disabled) { 'Your account is authenticated with SSO or SAML. To push and pull over HTTP with Git using this account, you must set up a Personal Access Token to use instead of a password. For more information, see Clone with HTTPS.' } diff --git a/spec/features/projects/show/redirects_spec.rb b/spec/features/projects/show/redirects_spec.rb index d1cb896450f..ef326b92b98 100644 --- a/spec/features/projects/show/redirects_spec.rb +++ b/spec/features/projects/show/redirects_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > Redirects', feature_category: :projects do +RSpec.describe 'Projects > Show > Redirects', feature_category: :groups_and_projects do let(:user) { create :user } let(:public_project) { create :project, :public } let(:private_project) { create :project, :private } diff --git a/spec/features/projects/show/rss_spec.rb b/spec/features/projects/show/rss_spec.rb index c2e8a844094..f57bb5e8df3 100644 --- a/spec/features/projects/show/rss_spec.rb +++ b/spec/features/projects/show/rss_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > RSS', feature_category: :projects do +RSpec.describe 'Projects > Show > RSS', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, :repository, visibility_level: Gitlab::VisibilityLevel::PUBLIC) } let(:path) { project_path(project) } diff --git a/spec/features/projects/show/schema_markup_spec.rb b/spec/features/projects/show/schema_markup_spec.rb index 8262245c5cb..5c1b519bb6e 100644 --- a/spec/features/projects/show/schema_markup_spec.rb +++ b/spec/features/projects/show/schema_markup_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > Schema Markup', feature_category: :projects do +RSpec.describe 'Projects > Show > Schema Markup', feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :repository, :public, :with_avatar, description: 'foobar', topic_list: 'topic1, topic2') } it 'shows SoftwareSourceCode structured markup', :js do diff --git a/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb b/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb index 2f33622d218..997a804e6ac 100644 --- a/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb +++ b/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Project > Show > User interacts with auto devops implicitly enabled banner', -feature_category: :projects do +feature_category: :groups_and_projects do let(:project) { create(:project, :repository) } let(:user) { create(:user) } diff --git a/spec/features/projects/show/user_interacts_with_stars_spec.rb b/spec/features/projects/show/user_interacts_with_stars_spec.rb index e2166854ba3..e231068cad0 100644 --- a/spec/features/projects/show/user_interacts_with_stars_spec.rb +++ b/spec/features/projects/show/user_interacts_with_stars_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User interacts with project stars', feature_category: :projects do +RSpec.describe 'Projects > Show > User interacts with project stars', feature_category: :groups_and_projects do let(:project) { create(:project, :public, :repository) } context 'when user is signed in', :js do diff --git a/spec/features/projects/show/user_manages_notifications_spec.rb b/spec/features/projects/show/user_manages_notifications_spec.rb index 8f6535fd4f0..455b931e7f3 100644 --- a/spec/features/projects/show/user_manages_notifications_spec.rb +++ b/spec/features/projects/show/user_manages_notifications_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User manages notifications', :js, feature_category: :projects do +RSpec.describe 'Projects > Show > User manages notifications', :js, feature_category: :groups_and_projects do let(:project) { create(:project, :public, :repository) } before do diff --git a/spec/features/projects/show/user_sees_collaboration_links_spec.rb b/spec/features/projects/show/user_sees_collaboration_links_spec.rb index 145500a4c63..29fb20841fd 100644 --- a/spec/features/projects/show/user_sees_collaboration_links_spec.rb +++ b/spec/features/projects/show/user_sees_collaboration_links_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: :projects do +RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: :groups_and_projects do using RSpec::Parameterized::TableSyntax let_it_be(:project) { create(:project, :repository, :public) } @@ -51,7 +51,8 @@ RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: : end # The Web IDE - expect(page).to have_link('Web IDE') + click_button 'Edit' + expect(page).to have_button('Web IDE') end it 'hides the links when the project is archived' do @@ -73,7 +74,7 @@ RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: : expect(page).not_to have_selector('[data-testid="add-to-tree"]') - expect(page).not_to have_link('Web IDE') + expect(page).not_to have_button('Edit') end end @@ -95,7 +96,7 @@ RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: : end it "updates Web IDE link" do - expect(page.has_link?('Web IDE')).to be(expect_ide_link) + expect(page.has_button?('Edit')).to be(expect_ide_link) end end end diff --git a/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb b/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb index 876eecfe559..0cc8919d1e9 100644 --- a/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb +++ b/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User sees a deletion failure message', feature_category: :projects do +RSpec.describe 'Projects > Show > User sees a deletion failure message', feature_category: :groups_and_projects do let(:project) { create(:project, :empty_repo, pending_delete: true) } before do diff --git a/spec/features/projects/show/user_sees_git_instructions_spec.rb b/spec/features/projects/show/user_sees_git_instructions_spec.rb index 022f21f198d..5e6857843a6 100644 --- a/spec/features/projects/show/user_sees_git_instructions_spec.rb +++ b/spec/features/projects/show/user_sees_git_instructions_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User sees Git instructions', feature_category: :projects do +RSpec.describe 'Projects > Show > User sees Git instructions', feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } before do @@ -26,7 +26,7 @@ RSpec.describe 'Projects > Show > User sees Git instructions', feature_category: expect(page).to have_content('Command line instructions') end - expect(page).to have_content("git push -u origin master") + expect(page).to have_content("git push --set-upstream origin master") end end @@ -84,7 +84,7 @@ RSpec.describe 'Projects > Show > User sees Git instructions', feature_category: it "recommends default_branch_name instead of master" do click_link 'Create empty repository' - expect(page).to have_content("git push -u origin example_branch") + expect(page).to have_content("git push --set-upstream origin example_branch") end end diff --git a/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb b/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb index 25d241f004e..70e316983d9 100644 --- a/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb +++ b/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User sees last commit CI status', feature_category: :projects do +RSpec.describe 'Projects > Show > User sees last commit CI status', feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :repository, :public) } it 'shows the project README', :js do diff --git a/spec/features/projects/show/user_sees_readme_spec.rb b/spec/features/projects/show/user_sees_readme_spec.rb index a8c91b30f25..36fa800a7cf 100644 --- a/spec/features/projects/show/user_sees_readme_spec.rb +++ b/spec/features/projects/show/user_sees_readme_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User sees README', feature_category: :projects do +RSpec.describe 'Projects > Show > User sees README', feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :repository, :public) } diff --git a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb index 9eb2d109829..41eab966895 100644 --- a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb +++ b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User sees setup shortcut buttons', feature_category: :projects do +RSpec.describe 'Projects > Show > User sees setup shortcut buttons', feature_category: :groups_and_projects do # For "New file", "Add license" functionality, # see spec/features/projects/files/project_owner_creates_license_file_spec.rb # see spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb diff --git a/spec/features/projects/show/user_uploads_files_spec.rb b/spec/features/projects/show/user_uploads_files_spec.rb index ed378040ce9..5dde415151b 100644 --- a/spec/features/projects/show/user_uploads_files_spec.rb +++ b/spec/features/projects/show/user_uploads_files_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > Show > User uploads files', feature_category: :projects do +RSpec.describe 'Projects > Show > User uploads files', feature_category: :groups_and_projects do include DropzoneHelper let(:user) { create(:user) } diff --git a/spec/features/projects/sourcegraph_csp_spec.rb b/spec/features/projects/sourcegraph_csp_spec.rb index 4c8dd0a7df0..0e1a0c897e8 100644 --- a/spec/features/projects/sourcegraph_csp_spec.rb +++ b/spec/features/projects/sourcegraph_csp_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Sourcegraph Content Security Policy', feature_category: :projects do +RSpec.describe 'Sourcegraph Content Security Policy', feature_category: :groups_and_projects do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :repository, namespace: user.namespace) } diff --git a/spec/features/projects/sub_group_issuables_spec.rb b/spec/features/projects/sub_group_issuables_spec.rb index 2502d969305..601f88708f4 100644 --- a/spec/features/projects/sub_group_issuables_spec.rb +++ b/spec/features/projects/sub_group_issuables_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Subgroup Issuables', :js, feature_category: :projects do +RSpec.describe 'Subgroup Issuables', :js, feature_category: :groups_and_projects do let!(:group) { create(:group, name: 'group') } let!(:subgroup) { create(:group, parent: group, name: 'subgroup') } let!(:project) { create(:project, namespace: subgroup, name: 'project') } diff --git a/spec/features/projects/terraform_spec.rb b/spec/features/projects/terraform_spec.rb index b7500b0cfb7..518fa79f003 100644 --- a/spec/features/projects/terraform_spec.rb +++ b/spec/features/projects/terraform_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Terraform', :js, feature_category: :projects do +RSpec.describe 'Terraform', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project) } let_it_be(:terraform_state) { create(:terraform_state, :locked, :with_version, project: project) } diff --git a/spec/features/projects/tree/rss_spec.rb b/spec/features/projects/tree/rss_spec.rb index 0b016ee3dd9..176c5d85d93 100644 --- a/spec/features/projects/tree/rss_spec.rb +++ b/spec/features/projects/tree/rss_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project Tree RSS', feature_category: :projects do +RSpec.describe 'Project Tree RSS', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, :repository, visibility_level: Gitlab::VisibilityLevel::PUBLIC) } let(:path) { project_tree_path(project, :master) } diff --git a/spec/features/projects/tree/upload_file_spec.rb b/spec/features/projects/tree/upload_file_spec.rb index 6ec57af2590..47139013b67 100644 --- a/spec/features/projects/tree/upload_file_spec.rb +++ b/spec/features/projects/tree/upload_file_spec.rb @@ -27,7 +27,7 @@ RSpec.describe 'Multi-file editor upload file', :js, feature_category: :web_ide set_cookie('new_repo', 'false') end - it 'uploads text file' do + it 'uploads text file', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/415220' do wait_for_all_requests # make the field visible so capybara can use it execute_script('document.querySelector("#file-upload").classList.remove("hidden")') diff --git a/spec/features/projects/user_changes_project_visibility_spec.rb b/spec/features/projects/user_changes_project_visibility_spec.rb index 64af25aea28..f27a659f65f 100644 --- a/spec/features/projects/user_changes_project_visibility_spec.rb +++ b/spec/features/projects/user_changes_project_visibility_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User changes public project visibility', :js, feature_category: :projects do +RSpec.describe 'User changes public project visibility', :js, feature_category: :groups_and_projects do include ProjectForksHelper shared_examples 'changing visibility to private' do diff --git a/spec/features/projects/user_creates_project_spec.rb b/spec/features/projects/user_creates_project_spec.rb index af0bd932095..484808dcfd1 100644 --- a/spec/features/projects/user_creates_project_spec.rb +++ b/spec/features/projects/user_creates_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User creates a project', :js, feature_category: :projects do +RSpec.describe 'User creates a project', :js, feature_category: :groups_and_projects do let(:user) { create(:user) } before do diff --git a/spec/features/projects/user_sees_sidebar_spec.rb b/spec/features/projects/user_sees_sidebar_spec.rb index 3a6e11356a2..5a744be5d81 100644 --- a/spec/features/projects/user_sees_sidebar_spec.rb +++ b/spec/features/projects/user_sees_sidebar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Projects > User sees sidebar', feature_category: :projects do +RSpec.describe 'Projects > User sees sidebar', feature_category: :groups_and_projects do let(:user) { create(:user) } let(:project) { create(:project, :private, public_builds: false, namespace: user.namespace) } diff --git a/spec/features/projects/user_sees_user_popover_spec.rb b/spec/features/projects/user_sees_user_popover_spec.rb index 9d8d06c514e..523f1366a14 100644 --- a/spec/features/projects/user_sees_user_popover_spec.rb +++ b/spec/features/projects/user_sees_user_popover_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User sees user popover', :js, feature_category: :projects do +RSpec.describe 'User sees user popover', :js, feature_category: :groups_and_projects do include Features::NotesHelpers let_it_be(:user) { create(:user, pronouns: 'they/them') } diff --git a/spec/features/projects/user_sorts_projects_spec.rb b/spec/features/projects/user_sorts_projects_spec.rb index 6a18d95c840..b80caca5810 100644 --- a/spec/features/projects/user_sorts_projects_spec.rb +++ b/spec/features/projects/user_sorts_projects_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User sorts projects and order persists', feature_category: :projects do +RSpec.describe 'User sorts projects and order persists', feature_category: :groups_and_projects do include CookieHelper let_it_be(:user) { create(:user) } diff --git a/spec/features/projects/user_uses_shortcuts_spec.rb b/spec/features/projects/user_uses_shortcuts_spec.rb index 1d4ab242308..77f753b92eb 100644 --- a/spec/features/projects/user_uses_shortcuts_spec.rb +++ b/spec/features/projects/user_uses_shortcuts_spec.rb @@ -2,14 +2,13 @@ require 'spec_helper' -RSpec.describe 'User uses shortcuts', :js, feature_category: :projects do +RSpec.describe 'User uses shortcuts', :js, feature_category: :groups_and_projects do let_it_be(:project) { create(:project, :repository) } let(:user) { project.first_owner } before do sign_in(user) - stub_feature_flags(remove_monitor_metrics: false) visit(project_path(project)) @@ -183,16 +182,6 @@ RSpec.describe 'User uses shortcuts', :js, feature_category: :projects do end end - context 'when navigating to the Monitor pages' do - it 'redirects to the Metrics page' do - find('body').native.send_key('g') - find('body').native.send_key('l') - - expect(page).to have_active_navigation('Monitor') - expect(page).to have_active_sub_navigation('Metrics') - end - end - context 'when navigating to the Infrastructure pages' do it 'redirects to the Kubernetes page' do find('body').native.send_key('g') diff --git a/spec/features/projects/user_views_empty_project_spec.rb b/spec/features/projects/user_views_empty_project_spec.rb index e38cfc2273a..ed34b109d29 100644 --- a/spec/features/projects/user_views_empty_project_spec.rb +++ b/spec/features/projects/user_views_empty_project_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'User views an empty project', feature_category: :projects do +RSpec.describe 'User views an empty project', feature_category: :groups_and_projects do include Features::InviteMembersModalHelpers let_it_be(:project) { create(:project, :empty_repo) } @@ -14,7 +14,7 @@ RSpec.describe 'User views an empty project', feature_category: :projects do it 'shows push-to-default-branch instructions' do visit project_path(project) - expect(page).to have_content("git push -u origin #{default_branch}") + expect(page).to have_content("git push --set-upstream origin #{default_branch}") end end @@ -53,7 +53,7 @@ RSpec.describe 'User views an empty project', feature_category: :projects do it 'does not show push-to-master instructions' do visit project_path(project) - expect(page).not_to have_content('git push -u origin') + expect(page).not_to have_content('git push --set-upstream origin') end end end @@ -67,7 +67,7 @@ RSpec.describe 'User views an empty project', feature_category: :projects do it 'does not show push-to-master instructions nor invite members link', :aggregate_failures, :js do visit project_path(project) - expect(page).not_to have_content('git push -u origin') + expect(page).not_to have_content('git push --set-upstream origin') expect(page).not_to have_button(text: 'Invite members') end end diff --git a/spec/features/projects/view_on_env_spec.rb b/spec/features/projects/view_on_env_spec.rb index bf32431fc88..5f502c0297a 100644 --- a/spec/features/projects/view_on_env_spec.rb +++ b/spec/features/projects/view_on_env_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'View on environment', :js, feature_category: :projects do +RSpec.describe 'View on environment', :js, feature_category: :groups_and_projects do let(:branch_name) { 'feature' } let(:file_path) { 'files/ruby/feature.rb' } let(:project) { create(:project, :repository) } diff --git a/spec/features/projects/work_items/work_item_spec.rb b/spec/features/projects/work_items/work_item_spec.rb index b706a624fc5..e996a76b1c5 100644 --- a/spec/features/projects/work_items/work_item_spec.rb +++ b/spec/features/projects/work_items/work_item_spec.rb @@ -4,9 +4,11 @@ require 'spec_helper' RSpec.describe 'Work item', :js, feature_category: :team_planning do let_it_be_with_reload(:user) { create(:user) } + let_it_be_with_reload(:user2) { create(:user, name: 'John') } let_it_be(:project) { create(:project, :public) } let_it_be(:work_item) { create(:work_item, project: project) } + let_it_be(:emoji_upvote) { create(:award_emoji, :upvote, awardable: work_item, user: user2) } let_it_be(:milestone) { create(:milestone, project: project) } let_it_be(:milestones) { create_list(:milestone, 25, project: project) } let_it_be(:note) { create(:note, noteable: work_item, project: work_item.project) } @@ -33,6 +35,10 @@ RSpec.describe 'Work item', :js, feature_category: :team_planning do end end + it 'actions dropdown is displayed' do + expect(page).to have_selector('[data-testid="work-item-actions-dropdown"]') + end + it_behaves_like 'work items title' it_behaves_like 'work items status' it_behaves_like 'work items assignees' @@ -74,10 +80,6 @@ RSpec.describe 'Work item', :js, feature_category: :team_planning do visit work_items_path end - it 'actions dropdown is not displayed' do - expect(page).not_to have_selector('[data-testid="work-item-actions-dropdown"]') - end - it 'todos action is not displayed' do expect(page).not_to have_selector('[data-testid="work-item-todos-action"]') end |