debian-mirror-gitlab/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

128 lines
3.3 KiB
Ruby
Raw Normal View History

2019-10-12 21:52:04 +05:30
# frozen_string_literal: true
2018-11-08 19:23:39 +05:30
require "spec_helper"
2020-06-23 00:09:42 +05:30
RSpec.describe "User interacts with deploy keys", :js do
2018-11-08 19:23:39 +05:30
let(:project) { create(:project, :repository) }
2022-04-04 11:22:00 +05:30
let(:user) { project.first_owner }
2018-11-08 19:23:39 +05:30
before do
sign_in(user)
end
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
click_button("Enable")
2021-02-22 17:27:13 +05:30
expect(page).not_to have_selector(".gl-spinner")
2022-05-07 20:08:51 +05:30
expect(page).to have_current_path(project_settings_repository_path(project), ignore_query: true)
2018-11-08 19:23:39 +05:30
find(".js-deployKeys-tab-enabled_keys").click
expect(page).to have_content(deploy_key.title)
end
end
end
context "viewing deploy keys" do
let(:deploy_key) { create(:deploy_key) }
context "when project has keys" do
before do
create(:deploy_keys_project, project: project, deploy_key: deploy_key)
end
it "shows deploy keys" do
visit(project_deploy_keys_path(project))
page.within(".deploy-keys") do
expect(page).to have_content(deploy_key.title)
end
end
end
context "when another project has keys" do
let(:another_project) { create(:project) }
before do
create(:deploy_keys_project, project: another_project, deploy_key: deploy_key)
2018-11-18 11:00:15 +05:30
another_project.add_maintainer(user)
2018-11-08 19:23:39 +05:30
end
it "shows deploy keys" do
visit(project_deploy_keys_path(project))
page.within(".deploy-keys") do
find('.js-deployKeys-tab-available_project_keys').click
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
let!(:deploy_key) { create(:deploy_key, public: true) }
it "shows public deploy keys" do
visit(project_deploy_keys_path(project))
page.within(".deploy-keys") do
find(".js-deployKeys-tab-public_keys").click
expect(page).to have_content(deploy_key.title)
end
end
end
end
context "adding deploy keys" do
before do
visit(project_deploy_keys_path(project))
end
it "adds new key" do
2020-05-24 23:13:21 +05:30
deploy_key_title = attributes_for(:key)[:title]
deploy_key_body = attributes_for(:key)[:key]
2018-11-08 19:23:39 +05:30
2020-05-24 23:13:21 +05:30
fill_in("deploy_key_title", with: deploy_key_title)
fill_in("deploy_key_key", with: deploy_key_body)
2018-11-08 19:23:39 +05:30
click_button("Add key")
2022-05-07 20:08:51 +05:30
expect(page).to have_current_path(project_settings_repository_path(project), ignore_query: true)
2018-11-08 19:23:39 +05:30
page.within(".deploy-keys") do
2020-05-24 23:13:21 +05:30
expect(page).to have_content(deploy_key_title)
2018-11-08 19:23:39 +05:30
end
end
end
context "attaching existing keys" do
context "from another project" do
let(:another_project) { create(:project) }
let(:deploy_key) { create(:deploy_key) }
before do
create(:deploy_keys_project, project: another_project, deploy_key: deploy_key)
2018-11-18 11:00:15 +05:30
another_project.add_maintainer(user)
2018-11-08 19:23:39 +05:30
end
it_behaves_like "attaches a key"
end
context "when keys are public" do
let!(:deploy_key) { create(:deploy_key, public: true) }
it_behaves_like "attaches a key"
end
end
end