From 8c7ac6721c44e64543071323f8ad05d3daec0020 Mon Sep 17 00:00:00 2001 From: Camillo Facello <52419977+camillof@users.noreply.github.com> Date: Tue, 5 Jul 2022 11:09:14 -0300 Subject: [PATCH 1/2] Separate diff and total coverage in different calls --- lib/cc/pull_requests.rb | 18 ++++++++- lib/cc/service.rb | 1 + lib/cc/services/github_pull_requests.rb | 20 ++++++++++ spec/cc/pull_requests_spec.rb | 8 ++++ spec/cc/service/github_pull_requests_spec.rb | 40 +++++++++++++++++++- 5 files changed, 84 insertions(+), 3 deletions(-) diff --git a/lib/cc/pull_requests.rb b/lib/cc/pull_requests.rb index 79bee31..9d26cb8 100644 --- a/lib/cc/pull_requests.rb +++ b/lib/cc/pull_requests.rb @@ -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) + end + + def receive_pull_request_total_coverage + receive_request(%w[pending skipped], :update_total_coverage_status) end private @@ -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 diff --git a/lib/cc/service.rb b/lib/cc/service.rb index 7cfa78a..a8ec670 100644 --- a/lib/cc/service.rb +++ b/lib/cc/service.rb @@ -37,6 +37,7 @@ def self.load_services pull_request pull_request_coverage pull_request_diff_coverage + pull_request_total_coverage quality snapshot test diff --git a/lib/cc/services/github_pull_requests.rb b/lib/cc/services/github_pull_requests.rb index ab8570b..605d3f0 100644 --- a/lib/cc/services/github_pull_requests.rb +++ b/lib/cc/services/github_pull_requests.rb @@ -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 diff --git a/spec/cc/pull_requests_spec.rb b/spec/cc/pull_requests_spec.rb index eab0d51..8c5760b 100644 --- a/spec/cc/pull_requests_spec.rb +++ b/spec/cc/pull_requests_spec.rb @@ -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 diff --git a/spec/cc/service/github_pull_requests_spec.rb b/spec/cc/service/github_pull_requests_spec.rb index 9c3e0a1..99f91e0 100644 --- a/spec/cc/service/github_pull_requests_spec.rb +++ b/spec/cc/service/github_pull_requests_spec.rb @@ -85,8 +85,6 @@ 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", @@ -94,6 +92,36 @@ 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" => /is analyzing/, "context" => /diff-coverage/) + + receive_pull_request_diff_coverage({}, + github_slug: "pbrisbin/foo", + commit_sha: "abc123", + state: "pending") + end + + it "pull request total coverage skipped" do + expect_status_update("pbrisbin/foo", "abc123", "state" => "pending", + "description" => /is analyzing/, "context" => /total-coverage/) + + receive_pull_request_total_coverage({}, + github_slug: "pbrisbin/foo", + commit_sha: "abc123", + state: "pending") + end + it "pull request status test success" do http_stubs.post("/repos/pbrisbin/foo/statuses/#{"0" * 40}") { |_env| [422, {}, ""] } @@ -233,6 +261,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, From f0b1632fd94110b537222d4589bf211a66f4ee1d Mon Sep 17 00:00:00 2001 From: Camillo Facello <52419977+camillof@users.noreply.github.com> Date: Tue, 5 Jul 2022 14:14:53 -0300 Subject: [PATCH 2/2] Minor test update, to test message payload --- spec/cc/service/github_pull_requests_spec.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/spec/cc/service/github_pull_requests_spec.rb b/spec/cc/service/github_pull_requests_spec.rb index 99f91e0..a06913e 100644 --- a/spec/cc/service/github_pull_requests_spec.rb +++ b/spec/cc/service/github_pull_requests_spec.rb @@ -104,22 +104,24 @@ it "pull request diff coverage pending" do expect_status_update("pbrisbin/foo", "abc123", "state" => "pending", - "description" => /is analyzing/, "context" => /diff-coverage/) + "description" => /a test message/, "context" => /diff-coverage/) receive_pull_request_diff_coverage({}, github_slug: "pbrisbin/foo", commit_sha: "abc123", - state: "pending") + state: "pending", + message: "a test message") end it "pull request total coverage skipped" do expect_status_update("pbrisbin/foo", "abc123", "state" => "pending", - "description" => /is analyzing/, "context" => /total-coverage/) + "description" => /a test message/, "context" => /total-coverage/) receive_pull_request_total_coverage({}, github_slug: "pbrisbin/foo", commit_sha: "abc123", - state: "pending") + state: "pending", + message: "a test message") end it "pull request status test success" do