diff options
Diffstat (limited to 'spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb')
-rw-r--r-- | spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb | 89 |
1 files changed, 53 insertions, 36 deletions
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 9305467cbe4..3d9addfe456 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 @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "spec_helper" +require 'spec_helper' RSpec.describe "User interacts with deploy keys", :js, feature_category: :continuous_delivery do let(:project) { create(:project, :repository) } @@ -10,43 +10,59 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin sign_in(user) end - shared_examples "attaches a key" do - it "attaches key" do + shared_examples 'attaches a key' do + it 'attaches key' do visit(project_deploy_keys_path(project)) - page.within(".deploy-keys") do - find(".badge", text: "1").click + page.within('.deploy-keys') do + click_link(scope) - click_button("Enable") + click_button('Enable') - expect(page).not_to have_selector(".gl-spinner") + expect(page).not_to have_selector('.gl-spinner') expect(page).to have_current_path(project_settings_repository_path(project), ignore_query: true) - find(".js-deployKeys-tab-enabled_keys").click + click_link('Enabled deploy keys') expect(page).to have_content(deploy_key.title) end end end - context "viewing deploy keys" do + context 'viewing deploy keys' do let(:deploy_key) { create(:deploy_key) } - context "when project has keys" do + context 'when project has keys' do before do create(:deploy_keys_project, project: project, deploy_key: deploy_key) end - it "shows deploy keys" do + it 'shows deploy keys' do visit(project_deploy_keys_path(project)) - page.within(".deploy-keys") do + page.within('.deploy-keys') do expect(page).to have_content(deploy_key.title) end end end - context "when another project has keys" do + context 'when the project has many deploy keys' do + before do + create(:deploy_keys_project, project: project, deploy_key: deploy_key) + create_list(:deploy_keys_project, 5, project: project) + end + + it 'shows pagination' do + visit(project_deploy_keys_path(project)) + + page.within('.deploy-keys') do + expect(page).to have_link('Next') + expect(page).to have_link('2') + end + end + end + + context 'when another project has keys' do let(:another_project) { create(:project) } before do @@ -55,26 +71,25 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin another_project.add_maintainer(user) end - it "shows deploy keys" do + it 'shows deploy keys' do visit(project_deploy_keys_path(project)) - page.within(".deploy-keys") do - find('.js-deployKeys-tab-available_project_keys').click + page.within('.deploy-keys') do + click_link('Privately accessible deploy keys') expect(page).to have_content(deploy_key.title) - expect(find(".js-deployKeys-tab-available_project_keys .badge")).to have_content("1") end end end - context "when there are public deploy keys" do + context 'when there are public deploy keys' do let!(:deploy_key) { create(:deploy_key, public: true) } - it "shows public deploy keys" do + it 'shows public deploy keys' do visit(project_deploy_keys_path(project)) - page.within(".deploy-keys") do - find(".js-deployKeys-tab-public_keys").click + page.within('.deploy-keys') do + click_link('Publicly accessible deploy keys') expect(page).to have_content(deploy_key.title) end @@ -82,43 +97,44 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin end end - context "adding deploy keys" do + context 'adding deploy keys' do before do visit(project_deploy_keys_path(project)) end - it "adds new key" do + it 'adds new key' do 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) + click_button('Add new key') + fill_in('deploy_key_title', with: deploy_key_title) + fill_in('deploy_key_key', with: deploy_key_body) - click_button("Add key") + click_button('Add key') expect(page).to have_current_path(project_settings_repository_path(project), ignore_query: true) - page.within(".deploy-keys") do + page.within('.deploy-keys') do expect(page).to have_content(deploy_key_title) end end - it "click on cancel hides the form" do - click_button("Add new key") + 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") + click_button('Cancel') expect(page).not_to have_css('.gl-new-card-add-form') end end - context "attaching existing keys" do - context "from another project" do + context 'attaching existing keys' do + context 'from another project' do let(:another_project) { create(:project) } let(:deploy_key) { create(:deploy_key) } + let(:scope) { 'Privately accessible deploy keys' } before do create(:deploy_keys_project, project: another_project, deploy_key: deploy_key) @@ -126,13 +142,14 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin another_project.add_maintainer(user) end - it_behaves_like "attaches a key" + it_behaves_like 'attaches a key' end - context "when keys are public" do + context 'when keys are public' do let!(:deploy_key) { create(:deploy_key, public: true) } + let(:scope) { 'Publicly accessible deploy keys' } - it_behaves_like "attaches a key" + it_behaves_like 'attaches a key' end end end |