Files
grecia/spec/models/budget/reclassified_vote_spec.rb
taitus ecde8c6439 Add lambda to the validations that use model constants
In this way when we need modify the constants model value in the
model/custom folder, adding lambda it will be possible load the new
values.
2022-03-22 15:52:36 +01:00

49 lines
1.3 KiB
Ruby

require "rails_helper"
describe Budget::ReclassifiedVote do
describe "Validations" do
let(:reclassified_vote) { build(:budget_reclassified_vote) }
it "is valid" do
expect(reclassified_vote).to be_valid
end
it "is not valid without a user" do
reclassified_vote.user_id = nil
expect(reclassified_vote).not_to be_valid
end
it "is not valid without an investment" do
reclassified_vote.investment_id = nil
expect(reclassified_vote).not_to be_valid
end
it "is not valid without a valid reason" do
reclassified_vote.reason = nil
expect(reclassified_vote).not_to be_valid
reclassified_vote.reason = ""
expect(reclassified_vote).not_to be_valid
reclassified_vote.reason = "random"
expect(reclassified_vote).not_to be_valid
reclassified_vote.reason = "heading_changed"
expect(reclassified_vote).to be_valid
reclassified_vote.reason = "unfeasible"
expect(reclassified_vote).to be_valid
end
it "dynamically validates the reasons" do
stub_const("#{Budget::ReclassifiedVote}::REASONS", %w[custom])
reclassified_vote.reason = "custom"
expect(reclassified_vote).to be_valid
reclassified_vote.reason = "unfeasible"
expect(reclassified_vote).not_to be_valid
end
end
end