Dans mon code, j'avais la validation suivante avec les matchers Shoulda, ce qui fonctionne bien:
it { should validate_presence_of(:name) }
Dans mon modèle, j'ai ajouté la condition à ma validation:
validates_presence_of :name, :if => eligible?
Est-il possible de le refléter dans les validations?
J'ai essayé de regarder documentation pour les matchers shoulda, mais je n'ai pas pu trouver la solution.
Merci beaucoup!
Il ne semble pas que shoulda_matchers fasse cela, mais il est assez facile de l'écrire vous-même:
context "if eligible" do
before { allow(subject).to receive(:eligible?).and_return(true) }
it { should validate_presence_of(:name) }
end
context "if ineligible" do
before { allow(subject).to receive(:eligible?).and_return(false) }
it { should_not validate_presence_of(:name) }
end