Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[precheck] print the HTTP status as the failure reason when it's not 200 #21051

Merged
merged 1 commit into from Oct 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion precheck/lib/precheck/rules/unreachable_urls_rule.rb
Expand Up @@ -33,7 +33,7 @@ def rule_block
connection.use(FaradayMiddleware::FollowRedirects)
connection.adapter(:net_http)
end
return RuleReturn.new(validation_state: Precheck::VALIDATION_STATES[:failed], failure_data: url) unless request.head.status == 200
return RuleReturn.new(validation_state: Precheck::VALIDATION_STATES[:failed], failure_data: "HTTP #{request.head.status}: #{url}") unless request.head.status == 200
rescue StandardError => e
UI.verbose("URL #{url} not reachable 😵: #{e.message}")
# I can only return :fail here, but I also want to return #{url}
Expand Down
8 changes: 4 additions & 4 deletions precheck/spec/rules/unreachable_urls_rule_spec.rb
Expand Up @@ -42,22 +42,22 @@ def setup_url_rule_mock(url: "http://fastlane.tools", return_status: 200)

result = rule.check_item(item)
expect(result.status).to eq(VALIDATION_STATES[:failed])
expect(result.rule_return.failure_data).to eq("http://fastlane.tools")
expect(result.rule_return.failure_data).to eq("HTTP 500: http://fastlane.tools")

setup_url_rule_mock(return_status: 404)
result = rule.check_item(item)
expect(result.status).to eq(VALIDATION_STATES[:failed])
expect(result.rule_return.failure_data).to eq("http://fastlane.tools")
expect(result.rule_return.failure_data).to eq("HTTP 404: http://fastlane.tools")

setup_url_rule_mock(return_status: 409)
result = rule.check_item(item)
expect(result.status).to eq(VALIDATION_STATES[:failed])
expect(result.rule_return.failure_data).to eq("http://fastlane.tools")
expect(result.rule_return.failure_data).to eq("HTTP 409: http://fastlane.tools")

setup_url_rule_mock(return_status: 403)
result = rule.check_item(item)
expect(result.status).to eq(VALIDATION_STATES[:failed])
expect(result.rule_return.failure_data).to eq("http://fastlane.tools")
expect(result.rule_return.failure_data).to eq("HTTP 403: http://fastlane.tools")
end

it "fails if not optional and URL is nil" do
Expand Down