Commit 501a4319 authored by Mark Lapierre's avatar Mark Lapierre

Fix deploy key test

Fetch a specific key's fingerprint instead of all fingerprints.
Check for the specific key by title and expected fingerprint.
This avoids the use of `all`, which can be unreliable.
parent 6b2f81f6
......@@ -113,7 +113,7 @@ export default {
<div class="gl-responsive-table-row deploy-key">
<div class="table-section section-40">
<div role="rowheader" class="table-mobile-header">{{ s__('DeployKeys|Deploy key') }}</div>
<div class="table-mobile-content">
<div class="table-mobile-content qa-key">
<strong class="title qa-key-title"> {{ deployKey.title }} </strong>
<div class="fingerprint qa-key-fingerprint">{{ deployKey.fingerprint }}</div>
</div>
......
......@@ -14,8 +14,13 @@ module QA
end
view 'app/assets/javascripts/deploy_keys/components/key.vue' do
element :key_title, /class=".*qa-key-title.*"/ # rubocop:disable QA/ElementWithPattern
element :key_fingerprint, /class=".*qa-key-fingerprint.*"/ # rubocop:disable QA/ElementWithPattern
element :key
element :key_title
element :key_fingerprint
end
def add_key
click_on 'Add key'
end
def fill_key_title(title)
......@@ -26,31 +31,29 @@ module QA
fill_in 'deploy_key_key', with: key
end
def add_key
click_on 'Add key'
end
def key_title
def find_fingerprint(title)
within_project_deploy_keys do
find_element(:key_title).text
find_element(:key, title)
.find(element_selector_css(:key_fingerprint)).text
end
end
def key_fingerprint
def has_key?(title, fingerprint)
within_project_deploy_keys do
find_element(:key_fingerprint).text
find_element(:key, title)
.has_css?(element_selector_css(:key_fingerprint), text: fingerprint)
end
end
def key_titles
def key_title
within_project_deploy_keys do
all_elements(:key_title)
find_element(:key_title).text
end
end
def key_fingerprints
def key_fingerprint
within_project_deploy_keys do
all_elements(:key_fingerprint)
find_element(:key_fingerprint).text
end
end
......@@ -58,7 +61,7 @@ module QA
def within_project_deploy_keys
wait(reload: false) do
has_css?(element_selector_css(:project_deploy_keys))
has_element?(:project_deploy_keys)
end
within_element(:project_deploy_keys) do
......
......@@ -8,11 +8,7 @@ module QA
attribute :fingerprint do
Page::Project::Settings::Repository.perform do |setting|
setting.expand_deploy_keys do |key|
key_offset = key.key_titles.index do |key_title|
key_title.text == title
end
key.key_fingerprints[key_offset].text
key.find_fingerprint(title)
end
end
end
......
......@@ -5,7 +5,7 @@ module QA
describe 'Deploy key creation' do
it 'user adds a deploy key' do
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.act { sign_in_using_credentials }
Page::Main::Login.perform(&:sign_in_using_credentials)
key = Runtime::Key::RSA.new
deploy_key_title = 'deploy key title'
......@@ -16,7 +16,13 @@ module QA
resource.key = deploy_key_value
end
expect(deploy_key.fingerprint).to eq(key.fingerprint)
expect(deploy_key.fingerprint).to eq key.fingerprint
Page::Project::Settings::Repository.perform do |setting|
setting.expand_deploy_keys do |keys|
expect(keys).to have_key(deploy_key_title, key.fingerprint)
end
end
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment