diff options
Diffstat (limited to 'spec/features/projects/settings')
11 files changed, 85 insertions, 96 deletions
diff --git a/spec/features/projects/settings/access_tokens_spec.rb b/spec/features/projects/settings/access_tokens_spec.rb index 210815f341c..9025bd9052e 100644 --- a/spec/features/projects/settings/access_tokens_spec.rb +++ b/spec/features/projects/settings/access_tokens_spec.rb @@ -49,6 +49,7 @@ RSpec.describe 'Project > Settings > Access Tokens', :js, feature_category: :use it 'shows Owner option' do visit resource_settings_access_tokens_path + click_button 'Add new token' expect(role_dropdown_options).to include('Owner') end end @@ -63,6 +64,7 @@ RSpec.describe 'Project > Settings > Access Tokens', :js, feature_category: :use it 'does not show Owner option for a maintainer' do visit resource_settings_access_tokens_path + click_button 'Add new token' expect(role_dropdown_options).not_to include('Owner') end end @@ -81,6 +83,7 @@ RSpec.describe 'Project > Settings > Access Tokens', :js, feature_category: :use it 'shows access token creation form and text' do visit project_settings_access_tokens_path(personal_project) + click_button 'Add new token' expect(page).to have_selector('#js-new-access-token-form') end end diff --git a/spec/features/projects/settings/packages_settings_spec.rb b/spec/features/projects/settings/packages_settings_spec.rb index 564a71e9a23..5277ede8e52 100644 --- a/spec/features/projects/settings/packages_settings_spec.rb +++ b/spec/features/projects/settings/packages_settings_spec.rb @@ -35,7 +35,7 @@ RSpec.describe 'Projects > Settings > Packages', :js, feature_category: :groups_ let(:packages_enabled) { false } it 'does not show up in UI' do - expect(page).not_to have_selector('[data-testid="toggle-label"]', text: 'Packages') + expect(page).not_to have_selector('[data-testid="toggle-label"]', text: 'Package registry') end end end diff --git a/spec/features/projects/settings/pipelines_settings_spec.rb b/spec/features/projects/settings/pipelines_settings_spec.rb index ef1c03f4f27..59d9e6d105e 100644 --- a/spec/features/projects/settings/pipelines_settings_spec.rb +++ b/spec/features/projects/settings/pipelines_settings_spec.rb @@ -65,6 +65,46 @@ RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :gr expect(checkbox).not_to be_checked end + it 'disables forward deployment rollback allowed when forward deployment enabled is unchecked', :js do + visit project_settings_ci_cd_path(project) + + forward_deployment_checkbox = find_field('project_ci_cd_settings_attributes_forward_deployment_enabled') + forward_deployment_rollback_checkbox = + find_field('project_ci_cd_settings_attributes_forward_deployment_rollback_allowed') + expect(forward_deployment_checkbox).to be_checked + expect(forward_deployment_rollback_checkbox).not_to be_disabled + + forward_deployment_checkbox.click + + expect(forward_deployment_rollback_checkbox).to be_disabled + + forward_deployment_checkbox.click + + expect(forward_deployment_rollback_checkbox).not_to be_disabled + end + + it 'updates forward_deployment_rollback_allowed' do + visit project_settings_ci_cd_path(project) + + checkbox = find_field('project_ci_cd_settings_attributes_forward_deployment_rollback_allowed') + expect(checkbox).to be_checked + + checkbox.set(false) + + page.within '#js-general-pipeline-settings' do + click_on 'Save changes' + end + + expect(page.status_code).to eq(200) + + page.within '#js-general-pipeline-settings' do + expect(page).to have_button('Save changes', disabled: false) + end + + checkbox = find_field('project_ci_cd_settings_attributes_forward_deployment_rollback_allowed') + expect(checkbox).not_to be_checked + end + describe 'Auto DevOps' do context 'when auto devops is turned on instance-wide' do before do diff --git a/spec/features/projects/settings/project_badges_spec.rb b/spec/features/projects/settings/project_badges_spec.rb index 1f170300155..a66bf5cd3a9 100644 --- a/spec/features/projects/settings/project_badges_spec.rb +++ b/spec/features/projects/settings/project_badges_spec.rb @@ -24,7 +24,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do page.within '.badge-settings' do wait_for_requests - rows = all('.card-body > div') + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 2 expect(rows[0]).to have_content group_badge.link_url expect(rows[1]).to have_content project_badge.link_url @@ -33,6 +33,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do context 'adding a badge', :js do it 'user can preview a badge' do + click_button 'Add badge' page.within '.badge-settings form' do fill_in 'badge-link-url', with: badge_link_url fill_in 'badge-image-url', with: badge_image_url @@ -44,6 +45,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do end it do + click_button 'Add badge' page.within '.badge-settings' do fill_in 'badge-link-url', with: badge_link_url fill_in 'badge-image-url', with: badge_image_url @@ -51,7 +53,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do click_button 'Add badge' wait_for_requests - within '.card-body' do + within '.gl-card-body' do expect(find('a')[:href]).to eq badge_link_url expect(find('a img')[:src]).to eq badge_image_url end @@ -63,32 +65,35 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do it 'form is shown when clicking edit button in list' do page.within '.badge-settings' do wait_for_requests - rows = all('.card-body > div') + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 2 rows[1].find('[aria-label="Edit"]').click + end - within 'form' do - expect(find('#badge-link-url').value).to eq project_badge.link_url - expect(find('#badge-image-url').value).to eq project_badge.image_url - end + page.within '.gl-modal' do + expect(find('#badge-link-url').value).to eq project_badge.link_url + expect(find('#badge-image-url').value).to eq project_badge.image_url end end it 'updates a badge when submitting the edit form' do page.within '.badge-settings' do wait_for_requests - rows = all('.card-body > div') + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 2 rows[1].find('[aria-label="Edit"]').click - within 'form' do - fill_in 'badge-link-url', with: badge_link_url - fill_in 'badge-image-url', with: badge_image_url + end - click_button 'Save changes' - wait_for_requests - end + page.within '.gl-modal' do + fill_in 'badge-link-url', with: badge_link_url + fill_in 'badge-image-url', with: badge_image_url - rows = all('.card-body > div') + click_button 'Save changes' + wait_for_requests + end + + page.within '.badge-settings' do + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 2 expect(rows[1]).to have_content badge_link_url end @@ -102,7 +107,7 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do it 'shows a modal when deleting a badge' do wait_for_requests - rows = all('.card-body > div') + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 2 click_delete_button(rows[1]) @@ -112,14 +117,14 @@ RSpec.describe 'Project Badges', feature_category: :groups_and_projects do it 'deletes a badge when confirming the modal' do wait_for_requests - rows = all('.card-body > div') + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 2 click_delete_button(rows[1]) find('.modal .btn-danger').click wait_for_requests - rows = all('.card-body > div') + rows = all('.gl-card-body tbody tr') expect(rows.length).to eq 1 expect(rows[0]).to have_content group_badge.link_url end diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb index d53aefe5a4e..838ac67ee3d 100644 --- a/spec/features/projects/settings/repository_settings_spec.rb +++ b/spec/features/projects/settings/repository_settings_spec.rb @@ -156,6 +156,7 @@ RSpec.describe 'Projects > Settings > Repository settings', feature_category: :g before do visit project_settings_repository_path(project) + click_button 'Add new' end it 'shows push mirror settings', :js do diff --git a/spec/features/projects/settings/secure_files_spec.rb b/spec/features/projects/settings/secure_files_spec.rb index 7ff1a5f3568..5f94e215a5f 100644 --- a/spec/features/projects/settings/secure_files_spec.rb +++ b/spec/features/projects/settings/secure_files_spec.rb @@ -46,7 +46,7 @@ RSpec.describe 'Secure Files', :js, feature_category: :groups_and_projects do within '#js-secure-files' do expect(page).to have_content(file.name) - find('button.btn-danger-secondary').click + find('[data-testid="delete-button"]').click end expect(page).to have_content("Delete #{file.name}?") diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb index 0006762a971..4e8f42ae792 100644 --- a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb +++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb @@ -91,6 +91,7 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :groups deploy_key_title = attributes_for(:key)[:title] deploy_key_body = attributes_for(:key)[:key] + click_button("Add new key") fill_in("deploy_key_title", with: deploy_key_title) fill_in("deploy_key_key", with: deploy_key_body) @@ -102,6 +103,16 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :groups expect(page).to have_content(deploy_key_title) end end + + it "click on cancel hides the form" do + click_button("Add new key") + + expect(page).to have_css('.gl-new-card-add-form') + + click_button("Cancel") + + expect(page).not_to have_css('.gl-new-card-add-form') + end end context "attaching existing keys" do diff --git a/spec/features/projects/settings/user_manages_project_members_spec.rb b/spec/features/projects/settings/user_manages_project_members_spec.rb deleted file mode 100644 index df571e13979..00000000000 --- a/spec/features/projects/settings/user_manages_project_members_spec.rb +++ /dev/null @@ -1,71 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'Projects > Settings > User manages project members', feature_category: :groups_and_projects do - include Features::MembersHelpers - include Spec::Support::Helpers::ModalHelpers - include ListboxHelpers - - let(:group) { create(:group, name: 'OpenSource') } - let(:project) { create(:project, :with_namespace_settings) } - let(:project2) { create(:project) } - let(:user) { create(:user) } - let(:user_dmitriy) { create(:user, name: 'Dmitriy') } - let(:user_mike) { create(:user, name: 'Mike') } - - before do - project.add_maintainer(user) - project.add_developer(user_dmitriy) - sign_in(user) - end - - it 'cancels a team member', :js do - visit(project_project_members_path(project)) - - show_actions_for_username(user_dmitriy) - click_button _('Remove member') - - within_modal do - expect(page).to have_unchecked_field 'Also unassign this user from related issues and merge requests' - click_button _('Remove member') - end - - visit(project_project_members_path(project)) - - expect(members_table).not_to have_content(user_dmitriy.name) - expect(members_table).not_to have_content(user_dmitriy.username) - end - - it 'imports a team from another project', :js do - project2.add_maintainer(user) - project2.add_reporter(user_mike) - - visit(project_project_members_path(project)) - - click_on 'Import from a project' - click_on 'Select a project' - wait_for_requests - - select_listbox_item(project2.name_with_namespace) - click_button 'Import project members' - wait_for_requests - - expect(find_member_row(user_mike)).to have_content('Reporter') - end - - it 'shows all members of project shared group', :js do - group.add_owner(user) - group.add_developer(user_dmitriy) - - share_link = project.project_group_links.new(group_access: Gitlab::Access::MAINTAINER) - share_link.group_id = group.id - share_link.save! - - visit(project_project_members_path(project)) - - click_link 'Groups' - - expect(find_group_row(group)).to have_content('Maintainer') - end -end diff --git a/spec/features/projects/settings/user_renames_a_project_spec.rb b/spec/features/projects/settings/user_renames_a_project_spec.rb index 5a58c049601..b7ae595a3a9 100644 --- a/spec/features/projects/settings/user_renames_a_project_spec.rb +++ b/spec/features/projects/settings/user_renames_a_project_spec.rb @@ -61,7 +61,7 @@ RSpec.describe 'Projects > Settings > User renames a project', feature_category: it 'shows error for invalid project name' do change_name(project, '🧮 foo bar ☁️') expect(page).to have_field 'Project name', with: '🧮 foo bar ☁️' - expect(page).not_to have_content "Name can contain only letters, digits, emojis '_', '.', dash and space. It must start with letter, digit, emoji or '_'." + expect(page).not_to have_content "Name can contain only letters, digits, emoji '_', '.', dash and space. It must start with letter, digit, emoji or '_'." end end end diff --git a/spec/features/projects/settings/user_searches_in_settings_spec.rb b/spec/features/projects/settings/user_searches_in_settings_spec.rb index 978b678c334..1ca4b761788 100644 --- a/spec/features/projects/settings/user_searches_in_settings_spec.rb +++ b/spec/features/projects/settings/user_searches_in_settings_spec.rb @@ -31,7 +31,7 @@ RSpec.describe 'User searches project settings', :js, feature_category: :groups_ visit project_settings_access_tokens_path(project) end - it_behaves_like 'can highlight results', 'Expiration date' + it_behaves_like 'can highlight results', 'Token name' end context 'in Repository page' do diff --git a/spec/features/projects/settings/visibility_settings_spec.rb b/spec/features/projects/settings/visibility_settings_spec.rb index 7d41b60199c..890f514d3da 100644 --- a/spec/features/projects/settings/visibility_settings_spec.rb +++ b/spec/features/projects/settings/visibility_settings_spec.rb @@ -30,11 +30,11 @@ RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_categor context 'disable email notifications' do it 'is visible' do - expect(page).to have_selector('.js-emails-disabled', visible: true) + expect(page).to have_selector('.js-emails-enabled', visible: true) end it 'accepts the changed state' do - find('.js-emails-disabled input[type="checkbox"]').click + find('.js-emails-enabled input[type="checkbox"]').click expect { save_permissions_group }.to change { updated_emails_disabled? }.to(true) end @@ -59,7 +59,7 @@ RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_categor context 'disable email notifications' do it 'is not available' do - expect(page).not_to have_selector('.js-emails-disabled', visible: true) + expect(page).not_to have_selector('.js-emails-enabled', visible: true) end end end |