diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-15 12:07:59 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-15 12:07:59 +0300 |
commit | e5731d5194e20deb33725943248c5899e4fdf05d (patch) | |
tree | aac082e7b302151dfe38a8a58c0c90f1a66fa017 /spec/features | |
parent | 1e9d859394883d104191c51fa18c2353f7bcc1fd (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features')
4 files changed, 115 insertions, 5 deletions
diff --git a/spec/features/admin/admin_users_impersonation_tokens_spec.rb b/spec/features/admin/admin_users_impersonation_tokens_spec.rb index 27f2436108c..b9de858e3b9 100644 --- a/spec/features/admin/admin_users_impersonation_tokens_spec.rb +++ b/spec/features/admin/admin_users_impersonation_tokens_spec.rb @@ -70,7 +70,7 @@ describe 'Admin > Users > Impersonation Tokens', :js do accept_confirm { click_on "Revoke" } expect(page).to have_selector(".settings-message") - expect(no_personal_access_tokens_message).to have_text("This user has no active Impersonation Tokens.") + expect(no_personal_access_tokens_message).to have_text("This user has no active impersonation tokens.") end it "removes expired tokens from 'active' section" do @@ -79,7 +79,7 @@ describe 'Admin > Users > Impersonation Tokens', :js do visit admin_user_impersonation_tokens_path(user_id: user.username) expect(page).to have_selector(".settings-message") - expect(no_personal_access_tokens_message).to have_text("This user has no active Impersonation Tokens.") + expect(no_personal_access_tokens_message).to have_text("This user has no active impersonation tokens.") end end end diff --git a/spec/features/profiles/personal_access_tokens_spec.rb b/spec/features/profiles/personal_access_tokens_spec.rb index 22f9c8d8afc..1fb61eeeb5a 100644 --- a/spec/features/profiles/personal_access_tokens_spec.rb +++ b/spec/features/profiles/personal_access_tokens_spec.rb @@ -86,7 +86,7 @@ describe 'Profile > Personal Access Tokens', :js do accept_confirm { click_on "Revoke" } expect(page).to have_selector(".settings-message") - expect(no_personal_access_tokens_message).to have_text("This user has no active Personal Access Tokens.") + expect(no_personal_access_tokens_message).to have_text("This user has no active personal access tokens.") end it "removes expired tokens from 'active' section" do @@ -94,7 +94,7 @@ describe 'Profile > Personal Access Tokens', :js do visit profile_personal_access_tokens_path expect(page).to have_selector(".settings-message") - expect(no_personal_access_tokens_message).to have_text("This user has no active Personal Access Tokens.") + expect(no_personal_access_tokens_message).to have_text("This user has no active personal access tokens.") end context "when revocation fails" do diff --git a/spec/features/projects/members/list_spec.rb b/spec/features/projects/members/list_spec.rb index 84000ef73ce..f404699b2f6 100644 --- a/spec/features/projects/members/list_spec.rb +++ b/spec/features/projects/members/list_spec.rb @@ -34,7 +34,7 @@ describe 'Project members list' do expect(second_row).to be_blank end - it 'update user acess level', :js do + it 'update user access level', :js do project.add_developer(user2) visit_members_page @@ -86,6 +86,23 @@ describe 'Project members list' do end end + context 'project bots' do + let(:project_bot) { create(:user, :project_bot, name: 'project_bot') } + + before do + project.add_maintainer(project_bot) + end + + it 'does not show form used to change roles and "Expiration date" or the remove user button' do + project_member = project.project_members.find_by(user_id: project_bot.id) + + visit_members_page + + expect(page).not_to have_selector("#edit_project_member_#{project_member.id}") + expect(page).not_to have_selector("#project_member_#{project_member.id} .btn-remove") + end + end + def add_user(id, role) page.within ".invite-users-form" do select2(id, from: "#user_ids", multiple: true) 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 |