Skip to content

Commit a003dad

Browse files
authored
QUA-360: Separate diff and total coverage in different methods (#154)
1 parent 93dd312 commit a003dad

File tree

5 files changed

+86
-3
lines changed

5 files changed

+86
-3
lines changed

lib/cc/pull_requests.rb

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ def receive_pull_request_coverage
1414
end
1515

1616
def receive_pull_request_diff_coverage
17-
receive_request("skipped", :update_diff_coverage_status)
17+
receive_request(%w[pending skipped], :update_diff_coverage_status)
18+
end
19+
20+
def receive_pull_request_total_coverage
21+
receive_request(%w[pending skipped], :update_total_coverage_status)
1822
end
1923

2024
private
@@ -47,6 +51,18 @@ def update_diff_coverage_status_skipped
4751
raise NotImplementedError
4852
end
4953

54+
def update_diff_coverage_status_pending
55+
raise NotImplementedError
56+
end
57+
58+
def update_total_coverage_status_skipped
59+
raise NotImplementedError
60+
end
61+
62+
def update_total_coverage_status_pending
63+
raise NotImplementedError
64+
end
65+
5066
def update_status_failure
5167
raise NotImplementedError
5268
end

lib/cc/service.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def self.load_services
3737
pull_request
3838
pull_request_coverage
3939
pull_request_diff_coverage
40+
pull_request_total_coverage
4041
quality
4142
snapshot
4243
test

lib/cc/services/github_pull_requests.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,29 @@ def update_coverage_status_success
7373

7474
def update_diff_coverage_status_skipped
7575
update_status("success", presenter.skipped_message, "#{config.context}/diff-coverage")
76+
77+
end
78+
79+
def update_total_coverage_status_skipped
7680
update_status("success", presenter.skipped_message, "#{config.context}/total-coverage")
7781
end
7882

83+
def update_diff_coverage_status_pending
84+
update_status(
85+
"pending",
86+
@payload["message"] || presenter.pending_message,
87+
"#{config.context}/diff-coverage"
88+
)
89+
end
90+
91+
def update_total_coverage_status_pending
92+
update_status(
93+
"pending",
94+
@payload["message"] || presenter.pending_message,
95+
"#{config.context}/total-coverage"
96+
)
97+
end
98+
7999
def update_status_failure
80100
update_status("failure", presenter.success_message)
81101
end

spec/cc/pull_requests_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,12 @@
120120

121121
it_behaves_like "receive method"
122122
end
123+
124+
describe "#receive_pull_request_total_coverage" do
125+
let(:payload_status) { "skipped" }
126+
let(:expected_method_name) { :update_total_coverage_status_skipped }
127+
let(:method_to_call) { :receive_pull_request_total_coverage }
128+
129+
it_behaves_like "receive method"
130+
end
123131
end

spec/cc/service/github_pull_requests_spec.rb

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,45 @@
8585
it "pull request diff coverage skipped" do
8686
expect_status_update("pbrisbin/foo", "abc123", "state" => "success",
8787
"description" => /skipped analysis/, "context" => /diff-coverage/)
88-
expect_status_update("pbrisbin/foo", "abc123", "state" => "success",
89-
"description" => /skipped analysis/, "context" => /total-coverage/)
9088

9189
receive_pull_request_diff_coverage({},
9290
github_slug: "pbrisbin/foo",
9391
commit_sha: "abc123",
9492
state: "skipped")
9593
end
9694

95+
it "pull request total coverage skipped" do
96+
expect_status_update("pbrisbin/foo", "abc123", "state" => "success",
97+
"description" => /skipped analysis/, "context" => /total-coverage/)
98+
99+
receive_pull_request_total_coverage({},
100+
github_slug: "pbrisbin/foo",
101+
commit_sha: "abc123",
102+
state: "skipped")
103+
end
104+
105+
it "pull request diff coverage pending" do
106+
expect_status_update("pbrisbin/foo", "abc123", "state" => "pending",
107+
"description" => /a test message/, "context" => /diff-coverage/)
108+
109+
receive_pull_request_diff_coverage({},
110+
github_slug: "pbrisbin/foo",
111+
commit_sha: "abc123",
112+
state: "pending",
113+
message: "a test message")
114+
end
115+
116+
it "pull request total coverage skipped" do
117+
expect_status_update("pbrisbin/foo", "abc123", "state" => "pending",
118+
"description" => /a test message/, "context" => /total-coverage/)
119+
120+
receive_pull_request_total_coverage({},
121+
github_slug: "pbrisbin/foo",
122+
commit_sha: "abc123",
123+
state: "pending",
124+
message: "a test message")
125+
end
126+
97127
it "pull request status test success" do
98128
http_stubs.post("/repos/pbrisbin/foo/statuses/#{"0" * 40}") { |_env| [422, {}, ""] }
99129

@@ -233,6 +263,14 @@ def receive_pull_request_diff_coverage(config, event_data)
233263
)
234264
end
235265

266+
def receive_pull_request_total_coverage(config, event_data)
267+
service_receive(
268+
CC::Service::GitHubPullRequests,
269+
{ oauth_token: "123" }.merge(config),
270+
{ name: "pull_request_total_coverage" }.merge(event_data),
271+
)
272+
end
273+
236274
def receive_test(config, event_data = {})
237275
service_receive(
238276
CC::Service::GitHubPullRequests,

0 commit comments

Comments
 (0)