diff options
Diffstat (limited to 'spec/features/projects/settings')
7 files changed, 132 insertions, 23 deletions
diff --git a/spec/features/projects/settings/access_tokens_spec.rb b/spec/features/projects/settings/access_tokens_spec.rb new file mode 100644 index 00000000000..9a8a8e38164 --- /dev/null +++ b/spec/features/projects/settings/access_tokens_spec.rb @@ -0,0 +1,93 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'Project > Settings > Access Tokens', :js do + let_it_be(:user) { create(:user) } + let_it_be(:bot_user) { create(:user, :project_bot) } + let_it_be(:project) { create(:project) } + + before_all do + project.add_maintainer(user) + end + + before do + sign_in(user) + end + + def create_project_access_token + project.add_maintainer(bot_user) + + create(:personal_access_token, user: bot_user) + end + + def active_project_access_tokens + find('.table.active-tokens') + end + + def no_project_access_tokens_message + find('.settings-message') + end + + def created_project_access_token + find('#created-personal-access-token').value + end + + describe 'token creation' do + it 'allows creation of a project access token' do + name = 'My project access token' + + visit project_settings_access_tokens_path(project) + fill_in 'Name', with: name + + # Set date to 1st of next month + find_field('Expires at').click + find('.pika-next').click + click_on '1' + + # Scopes + check 'api' + check 'read_api' + + click_on 'Create project access token' + + expect(active_project_access_tokens).to have_text(name) + expect(active_project_access_tokens).to have_text('In') + expect(active_project_access_tokens).to have_text('api') + expect(active_project_access_tokens).to have_text('read_api') + expect(created_project_access_token).not_to be_empty + end + end + + describe 'active tokens' do + let!(:project_access_token) { create_project_access_token } + + it 'shows active project access tokens' do + visit project_settings_access_tokens_path(project) + + expect(active_project_access_tokens).to have_text(project_access_token.name) + end + end + + describe 'inactive tokens' do + let!(:project_access_token) { create_project_access_token } + + no_active_tokens_text = 'This project has no active access tokens.' + + it 'allows revocation of an active token' do + visit project_settings_access_tokens_path(project) + accept_confirm { click_on 'Revoke' } + + expect(page).to have_selector('.settings-message') + expect(no_project_access_tokens_message).to have_text(no_active_tokens_text) + end + + it 'removes expired tokens from active section' do + project_access_token.update(expires_at: 5.days.ago) + visit project_settings_access_tokens_path(project) + + expect(page).to have_selector('.settings-message') + expect(no_project_access_tokens_message).to have_text(no_active_tokens_text) + end + end +end diff --git a/spec/features/projects/settings/operations_settings_spec.rb b/spec/features/projects/settings/operations_settings_spec.rb index 3c9102431e8..752353cf2f5 100644 --- a/spec/features/projects/settings/operations_settings_spec.rb +++ b/spec/features/projects/settings/operations_settings_spec.rb @@ -76,7 +76,7 @@ describe 'Projects > Settings > For a forked project', :js do context 'success path' do let(:projects_sample_response) do Gitlab::Utils.deep_indifferent_access( - JSON.parse(fixture_file('sentry/list_projects_sample_response.json')) + Gitlab::Json.parse(fixture_file('sentry/list_projects_sample_response.json')) ) end diff --git a/spec/features/projects/settings/project_settings_spec.rb b/spec/features/projects/settings/project_settings_spec.rb index 9fc91550667..171c7920878 100644 --- a/spec/features/projects/settings/project_settings_spec.rb +++ b/spec/features/projects/settings/project_settings_spec.rb @@ -54,6 +54,36 @@ describe 'Projects settings' do end end + context 'default award emojis', :js do + it 'shows award emojis by default' do + visit edit_project_path(project) + + default_award_emojis_input = find('input[name="project[project_setting_attributes][show_default_award_emojis]"]', visible: :hidden) + + expect(default_award_emojis_input.value).to eq('true') + end + + it 'disables award emojis when the checkbox is toggled off' do + visit edit_project_path(project) + + default_award_emojis_input = find('input[name="project[project_setting_attributes][show_default_award_emojis]"]', visible: :hidden) + default_award_emojis_checkbox = find('input[name="project[project_setting_attributes][show_default_award_emojis]"][type=checkbox]') + + expect(default_award_emojis_input.value).to eq('true') + + default_award_emojis_checkbox.click + + expect(default_award_emojis_input.value).to eq('false') + + page.within('.sharing-permissions') do + find('input[value="Save changes"]').click + end + wait_for_requests + + expect(default_award_emojis_input.value).to eq('false') + end + end + def expect_toggle_state(state) is_collapsed = state == :collapsed diff --git a/spec/features/projects/settings/registry_settings_spec.rb b/spec/features/projects/settings/registry_settings_spec.rb index 74d3544ce92..ba92e8bc516 100644 --- a/spec/features/projects/settings/registry_settings_spec.rb +++ b/spec/features/projects/settings/registry_settings_spec.rb @@ -29,7 +29,7 @@ describe 'Project > Settings > CI/CD > Container registry tag expiration policy' select('7 days until tags are automatically removed', from: 'Expiration interval:') select('Every day', from: 'Expiration schedule:') select('50 tags per image name', from: 'Number of tags to retain:') - fill_in('Docker tags with names matching this regex pattern will expire:', with: '*-production') + fill_in('Tags with names matching this regex pattern will expire:', with: '*-production') end submit_button = find('.card-footer .btn.btn-success') expect(submit_button).not_to be_disabled diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb index 2fb6c71384f..b8baaa3e963 100644 --- a/spec/features/projects/settings/repository_settings_spec.rb +++ b/spec/features/projects/settings/repository_settings_spec.rb @@ -30,7 +30,7 @@ describe 'Projects > Settings > Repository settings' do before do stub_container_registry_config(enabled: true) - stub_feature_flags(ajax_new_deploy_token: { enabled: false, thing: project }) + stub_feature_flags(ajax_new_deploy_token: project) visit project_settings_repository_path(project) end @@ -222,20 +222,6 @@ describe 'Projects > Settings > Repository settings' do end end - # Removal: https://gitlab.com/gitlab-org/gitlab/-/issues/208828 - context 'with the `keep_divergent_refs` feature flag disabled' do - before do - stub_feature_flags(keep_divergent_refs: { enabled: false, thing: project }) - end - - it 'hides the "Keep divergent refs" option' do - visit project_settings_repository_path(project) - - expect(page).not_to have_selector('#keep_divergent_refs') - expect(page).not_to have_text('Keep divergent refs') - end - end - context 'repository cleanup settings' do let(:object_map_file) { Rails.root.join('spec', 'fixtures', 'bfg_object_map.txt') } 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 cd9299150b2..45a16fda2cb 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 @@ -88,18 +88,18 @@ describe "User interacts with deploy keys", :js do end it "adds new key" do - DEPLOY_KEY_TITLE = attributes_for(:key)[:title] - DEPLOY_KEY_BODY = attributes_for(:key)[:key] + deploy_key_title = attributes_for(:key)[:title] + deploy_key_body = attributes_for(:key)[:key] - fill_in("deploy_key_title", with: DEPLOY_KEY_TITLE) - fill_in("deploy_key_key", with: DEPLOY_KEY_BODY) + fill_in("deploy_key_title", with: deploy_key_title) + fill_in("deploy_key_key", with: deploy_key_body) click_button("Add key") expect(current_path).to eq(project_settings_repository_path(project)) page.within(".deploy-keys") do - expect(page).to have_content(DEPLOY_KEY_TITLE) + expect(page).to have_content(deploy_key_title) end end end 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 a77240c5c33..0abc4b41a2b 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 @@ -11,7 +11,7 @@ describe 'Repository Settings > User sees revoke deploy token modal', :js do before do project.add_role(user, role) sign_in(user) - stub_feature_flags(ajax_new_deploy_token: { enabled: false, thing: project }) + stub_feature_flags(ajax_new_deploy_token: project) visit(project_settings_repository_path(project)) click_link('Revoke') end |