From 8bb0fa472668be31278ecdcaa94e9d83c614b17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 20 Mar 2019 18:12:08 +0100 Subject: [PATCH] Add Budget#valuating_or_later? method We're going to use it so we know if a budget has finished its support phase. --- app/models/budget.rb | 4 ++++ app/models/budget/phase.rb | 4 ++++ spec/models/budget_spec.rb | 17 +++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/app/models/budget.rb b/app/models/budget.rb index 19cc85a10..8d65d63e3 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -125,6 +125,10 @@ class Budget < ApplicationRecord Budget::Phase::PUBLISHED_PRICES_PHASES.include?(phase) end + def valuating_or_later? + current_phase&.valuating_or_later? + end + def publishing_prices_or_later? current_phase&.publishing_prices_or_later? end diff --git a/app/models/budget/phase.rb b/app/models/budget/phase.rb index cbacefa60..125368ccd 100644 --- a/app/models/budget/phase.rb +++ b/app/models/budget/phase.rb @@ -47,6 +47,10 @@ class Budget end end + def valuating_or_later? + in_phase_or_later?("valuating") + end + def publishing_prices_or_later? in_phase_or_later?("publishing_prices") end diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb index d5fc6ffc4..87063b549 100644 --- a/spec/models/budget_spec.rb +++ b/spec/models/budget_spec.rb @@ -97,6 +97,23 @@ describe Budget do expect(budget).to be_finished end + describe "#valuating_or_later?" do + it "returns false before valuating" do + budget.phase = "selecting" + expect(budget).not_to be_valuating_or_later + end + + it "returns true while valuating" do + budget.phase = "valuating" + expect(budget).to be_valuating_or_later + end + + it "returns true after valuating" do + budget.phase = "publishing_prices" + expect(budget).to be_valuating_or_later + end + end + describe "#publishing_prices_or_later?" do it "returns false before publishing prices" do budget.phase = "valuating"