Sha256: 99af9eea1c230fd6bbe60d5d0d9e30161457b3bcd41b67b50f4e639de3dcbe17

Contents?: true

Size: 1.88 KB

Versions: 4

Compression:

Stored size: 1.88 KB

Contents

require "cc/presenters/pull_requests_presenter"

describe CC::Service::PullRequestsPresenter, type: :service do
  it "message singular" do
    expect(build_presenter("fixed" => 1, "new" => 1).success_message).
      to eq("1 new issue (1 fixed)")
  end

  it "message plural" do
    expect(build_presenter("fixed" => 1, "new" => 2).success_message).
      to eq("2 new issues (1 fixed)")
  end

  it "message only fixed" do
    expect(build_presenter("fixed" => 1, "new" => 0).success_message).
      to eq("1 fixed issue")
  end

  it "message only new" do
    expect(build_presenter("fixed" => 0, "new" => 3).success_message).
      to eq("3 new issues")
  end

  it "message no new or fixed" do
    expect(build_presenter("fixed" => 0, "new" => 0).success_message).
      to eq("no new or fixed issues")
  end

  it "message coverage same" do
    expect("85%").to eq(build_presenter({}, "covered_percent" => 85, "covered_percent_delta" => 0).coverage_message)
  end

  it "message coverage up" do
    expect("85.5% (+2.46%)").to eq(build_presenter({}, "covered_percent" => 85.5, "covered_percent_delta" => 2.4567).coverage_message)
  end

  it "message coverage down" do
    expect("85.35% (-3%)").to eq( build_presenter({}, "covered_percent" => 85.348, "covered_percent_delta" => -3.0).coverage_message)
  end

  it "message approved" do
    expect(build_presenter({"fixed" => 1, "new" => 1}, { "approved_by" => "FooBar"}).success_message).
      to eq("Approved by FooBar.")
  end

  it "message approved is empty string" do
    expect(build_presenter({"fixed" => 1, "new" => 1}, { "approved_by" => ""}).success_message).
      to eq("1 new issue (1 fixed)")
  end

  private

  def build_payload(issue_counts)
    { "issue_comparison_counts" => issue_counts }
  end

  def build_presenter(issue_counts, payload = {})
    CC::Service::PullRequestsPresenter.new(build_payload(issue_counts).merge(payload))
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
codeclimate-services-1.9.8 spec/cc/presenters/pull_requests_presenter_spec.rb
codeclimate-services-1.9.7 spec/cc/presenters/pull_requests_presenter_spec.rb
codeclimate-services-1.9.6 spec/cc/presenters/pull_requests_presenter_spec.rb
codeclimate-services-1.9.5 spec/cc/presenters/pull_requests_presenter_spec.rb