We're going to add more cases and the test for the link to the evaluate would become too big, so we're splitting it.
77 lines
2.8 KiB
Ruby
77 lines
2.8 KiB
Ruby
require "rails_helper"
|
|
|
|
describe Valuation::Budgets::RowComponent do
|
|
let(:valuator) { create(:valuator) }
|
|
|
|
before { sign_in(valuator.user) }
|
|
|
|
describe "investments count" do
|
|
it "counts visible and assigned investments when the budget is in the valuating phase" do
|
|
budget = create(:budget, :valuating)
|
|
create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
|
create(:budget_investment, :invisible_to_valuators, budget: budget, valuators: [valuator])
|
|
create(:budget_investment, :visible_to_valuators, budget: budget)
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).to have_selector ".investments-count", text: "1"
|
|
end
|
|
|
|
it "displays zero when the budget is not in the valuating phase" do
|
|
budget = create(:budget, %i[accepting finished].sample)
|
|
create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).to have_selector ".investments-count", text: "0"
|
|
end
|
|
end
|
|
|
|
describe "link to evaluate investments" do
|
|
it "is shown when the valuator has visible investments assigned in the valuating phase" do
|
|
budget = create(:budget, :valuating)
|
|
create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).to have_link "Evaluate"
|
|
end
|
|
|
|
it "is not shown when the assigned investments aren't visible to valuators" do
|
|
budget = create(:budget, :valuating)
|
|
create(:budget_investment, :invisible_to_valuators, budget: budget, valuators: [valuator])
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).not_to have_link "Evaluate"
|
|
end
|
|
|
|
it "is not shown when the valuator doesn't have assigned investments" do
|
|
budget = create(:budget, :valuating)
|
|
create(:budget_investment, :visible_to_valuators, budget: budget)
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).not_to have_link "Evaluate"
|
|
end
|
|
|
|
it "is not shown when the budget hasn't reached the valuating phase" do
|
|
budget = create(:budget, :accepting)
|
|
create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).not_to have_link "Evaluate"
|
|
end
|
|
|
|
it "is not shown when the valuating phase is over" do
|
|
budget = create(:budget, :finished)
|
|
create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
|
|
|
render_inline Valuation::Budgets::RowComponent.new(budget: budget)
|
|
|
|
expect(page).not_to have_link "Evaluate"
|
|
end
|
|
end
|
|
end
|