Skip to content
This repository was archived by the owner on Jul 19, 2025. It is now read-only.

QUA-360: Separate diff and total coverage in different methods #154

Merged
merged 2 commits into from
Jul 7, 2022
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion lib/cc/pull_requests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ def receive_pull_request_coverage
end

def receive_pull_request_diff_coverage
receive_request("skipped", :update_diff_coverage_status)
receive_request(%w[pending skipped], :update_diff_coverage_status)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

end

def receive_pull_request_total_coverage
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

receive_request(%w[pending skipped], :update_total_coverage_status)
end

private
Expand Down Expand Up @@ -47,6 +51,18 @@ def update_diff_coverage_status_skipped
raise NotImplementedError
end

def update_diff_coverage_status_pending
raise NotImplementedError
end

def update_total_coverage_status_skipped
raise NotImplementedError
end

def update_total_coverage_status_pending
raise NotImplementedError
end

def update_status_failure
raise NotImplementedError
end
Expand Down
1 change: 1 addition & 0 deletions lib/cc/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def self.load_services
pull_request
pull_request_coverage
pull_request_diff_coverage
pull_request_total_coverage
quality
snapshot
test
Expand Down
20 changes: 20 additions & 0 deletions lib/cc/services/github_pull_requests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,29 @@ def update_coverage_status_success

def update_diff_coverage_status_skipped
update_status("success", presenter.skipped_message, "#{config.context}/diff-coverage")

end

def update_total_coverage_status_skipped
update_status("success", presenter.skipped_message, "#{config.context}/total-coverage")
end

def update_diff_coverage_status_pending
update_status(
"pending",
@payload["message"] || presenter.pending_message,
"#{config.context}/diff-coverage"
)
end

def update_total_coverage_status_pending
update_status(
"pending",
@payload["message"] || presenter.pending_message,
"#{config.context}/total-coverage"
)
end

def update_status_failure
update_status("failure", presenter.success_message)
end
Expand Down
8 changes: 8 additions & 0 deletions spec/cc/pull_requests_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,12 @@

it_behaves_like "receive method"
end

describe "#receive_pull_request_total_coverage" do
let(:payload_status) { "skipped" }
let(:expected_method_name) { :update_total_coverage_status_skipped }
let(:method_to_call) { :receive_pull_request_total_coverage }

it_behaves_like "receive method"
end
end
42 changes: 40 additions & 2 deletions spec/cc/service/github_pull_requests_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,45 @@
it "pull request diff coverage skipped" do
expect_status_update("pbrisbin/foo", "abc123", "state" => "success",
"description" => /skipped analysis/, "context" => /diff-coverage/)
expect_status_update("pbrisbin/foo", "abc123", "state" => "success",
"description" => /skipped analysis/, "context" => /total-coverage/)

receive_pull_request_diff_coverage({},
github_slug: "pbrisbin/foo",
commit_sha: "abc123",
state: "skipped")
end

it "pull request total coverage skipped" do
expect_status_update("pbrisbin/foo", "abc123", "state" => "success",
"description" => /skipped analysis/, "context" => /total-coverage/)

receive_pull_request_total_coverage({},
github_slug: "pbrisbin/foo",
commit_sha: "abc123",
state: "skipped")
end

it "pull request diff coverage pending" do
expect_status_update("pbrisbin/foo", "abc123", "state" => "pending",
"description" => /a test message/, "context" => /diff-coverage/)

receive_pull_request_diff_coverage({},
github_slug: "pbrisbin/foo",
commit_sha: "abc123",
state: "pending",
message: "a test message")
end

it "pull request total coverage skipped" do
expect_status_update("pbrisbin/foo", "abc123", "state" => "pending",
"description" => /a test message/, "context" => /total-coverage/)

receive_pull_request_total_coverage({},
github_slug: "pbrisbin/foo",
commit_sha: "abc123",
state: "pending",
message: "a test message")
end

it "pull request status test success" do
http_stubs.post("/repos/pbrisbin/foo/statuses/#{"0" * 40}") { |_env| [422, {}, ""] }

Expand Down Expand Up @@ -233,6 +263,14 @@ def receive_pull_request_diff_coverage(config, event_data)
)
end

def receive_pull_request_total_coverage(config, event_data)
service_receive(
CC::Service::GitHubPullRequests,
{ oauth_token: "123" }.merge(config),
{ name: "pull_request_total_coverage" }.merge(event_data),
)
end

def receive_test(config, event_data = {})
service_receive(
CC::Service::GitHubPullRequests,
Expand Down