Commit 64ef2c13 authored by Mark Lapierre's avatar Mark Lapierre Committed by Sanad Liaquat

Re-raise exception if there is no response

It's possible that `rescue ExceptionWithResponse` could catch a
type of exception that has no response. So we need to check if there
is a response before we return it
parent a44873e1
......@@ -4,9 +4,6 @@ module QA
context 'Create' do
describe 'Commit data' do
before(:context) do
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
# Get the user's details to confirm they're included in the email patch
@user = Resource::User.fabricate_via_api! do |user|
user.username = Runtime::User.username
......@@ -34,9 +31,12 @@ module QA
end
def view_commit
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
@project.visit!
Page::Project::Show.perform do |page| # rubocop:disable QA/AmbiguousPageObjectName
page.click_commit(@commit_message)
Page::Project::Show.perform do |show|
show.click_commit(@commit_message)
end
end
......
......@@ -14,7 +14,7 @@ module QA
payload: payload,
verify_ssl: false)
rescue RestClient::ExceptionWithResponse => e
e.response
return_response_or_raise(e)
end
def get(url, raw_response: false)
......@@ -24,7 +24,7 @@ module QA
verify_ssl: false,
raw_response: raw_response)
rescue RestClient::ExceptionWithResponse => e
e.response
return_response_or_raise(e)
end
def put(url, payload)
......@@ -34,7 +34,7 @@ module QA
payload: payload,
verify_ssl: false)
rescue RestClient::ExceptionWithResponse => e
e.response
return_response_or_raise(e)
end
def delete(url)
......@@ -43,7 +43,7 @@ module QA
url: url,
verify_ssl: false)
rescue RestClient::ExceptionWithResponse => e
e.response
return_response_or_raise(e)
end
def head(url)
......@@ -52,12 +52,18 @@ module QA
url: url,
verify_ssl: false)
rescue RestClient::ExceptionWithResponse => e
e.response
return_response_or_raise(e)
end
def parse_body(response)
JSON.parse(response.body, symbolize_names: true)
end
def return_response_or_raise(error)
raise error unless error.respond_to?(:response) && error.response
error.response
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