consul/consul

View on GitHub
spec/components/admin/stats/sdg/goal_component_spec.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "rails_helper"

describe Admin::Stats::SDG::GoalComponent do
  let(:component) { Admin::Stats::SDG::GoalComponent.new(goal: goal) }
  let(:goal) { SDG::Goal.sample }

  it "shows goal stats" do
    create_list(:poll, 2, sdg_goals: [goal])
    create_list(:proposal, 3, sdg_goals: [goal])
    create_list(:debate, 1, sdg_goals: [goal])
    past = create(:budget, name: "Past year budget")
    create_list(:budget_investment, 1, :winner, sdg_goals: [goal], price: 1000, budget: past)
    current = create(:budget, name: "Current budget")
    create_list(:budget_investment, 2, sdg_goals: [goal], price: 1000, budget: current)

    render_inline component

    expect(page).to have_text "Proposals 3"
    expect(page).to have_text "Polls 2"
    expect(page).to have_text "Debates 1"
    expect("Current budget").to appear_before("Past year budget")
    expect(page).to have_text "Investment projects sent 2"
    expect(page).to have_text "Winner investment projects 0"
    expect(page).to have_text "Approved amount $0"
    expect(page).to have_text "Investment projects sent 1"
    expect(page).to have_text "Winner investment projects 1"
    expect(page).to have_text "Approved amount $1,000"
  end
end