diff options
author | Michael Kozono <mkozono@gmail.com> | 2018-01-26 09:41:19 -0800 |
---|---|---|
committer | Michael Kozono <mkozono@gmail.com> | 2018-01-26 16:09:01 -0800 |
commit | 25cd25fc40b3178530f62755158ecd047d8a0b49 (patch) | |
tree | f412ad90a36a134deefd549c65dbd166f9617c61 | |
parent | 6c978c8f287d2fc61c58ab59973e0015bfc2ac58 (diff) | |
download | gitlab-ce-25cd25fc40b3178530f62755158ecd047d8a0b49.tar.gz |
Fix intermittent clone over SSH failureqa/mk-fix-intermittent-clone-failure
We always clone over HTTP, so if the QA spec attempts to clone over SSH, we know it gathered the wrong repo URI.
-rw-r--r-- | qa/qa/page/base.rb | 16 | ||||
-rw-r--r-- | qa/qa/page/main/login.rb | 6 | ||||
-rw-r--r-- | qa/qa/page/project/show.rb | 15 |
3 files changed, 22 insertions, 15 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index 81ba80cdbaf..fa7a3760057 100644 --- a/qa/qa/page/base.rb +++ b/qa/qa/page/base.rb @@ -13,16 +13,18 @@ module QA visit current_url end - def wait(css = '.application', time: 60) - Time.now.tap do |start| - while Time.now - start < time - break if page.has_css?(css, wait: 5) + def wait(max: 60, time: 1, reload: true) + start = Time.now - refresh - end + while Time.now - start < max + return true if yield + + sleep(time) + + refresh if reload end - yield if block_given? + false end def scroll_to(selector, text: nil) diff --git a/qa/qa/page/main/login.rb b/qa/qa/page/main/login.rb index 9cff2c5c317..95880475ffa 100644 --- a/qa/qa/page/main/login.rb +++ b/qa/qa/page/main/login.rb @@ -10,12 +10,14 @@ module QA view 'app/views/devise/sessions/_new_base.html.haml' do element :login_field, 'text_field :login' - element :passowrd_field, 'password_field :password' + element :password_field, 'password_field :password' element :sign_in_button, 'submit "Sign in"' end def initialize - wait('.application', time: 500) + wait(max: 500) do + page.has_css?('.application') + end end def sign_in_using_credentials diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb index 5e66e40a0b5..5762c50cde7 100644 --- a/qa/qa/page/project/show.rb +++ b/qa/qa/page/project/show.rb @@ -3,11 +3,9 @@ module QA module Project class Show < Page::Base view 'app/views/shared/_clone_panel.html.haml' do + element :clone_holder, '.git-clone-holder' element :clone_dropdown element :clone_options_dropdown, '.clone-options-dropdown' - end - - view 'app/views/shared/_clone_panel.html.haml' do element :project_repository_location, 'text_field_tag :project_clone' end @@ -16,10 +14,15 @@ module QA end def choose_repository_clone_http - click_element :clone_dropdown + wait(reload: false) do + click_element :clone_dropdown + + page.within('.clone-options-dropdown') do + click_link('HTTP') + end - page.within('.clone-options-dropdown') do - click_link('HTTP') + # Ensure git clone textbox was updated to http URI + page.has_css?('.git-clone-holder input#project_clone[value*="http"]') end end |