Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Members < ActiveRecord::Base
- validates_presence_of :email, if: :is_user?
- validates_presence_of :first_name, if: :is_user?
- validates_presence_of :last_name, if: :is_user?
- def is_user?
- :is_user
- end
- end
- if :is_user
- puts "will always happen" # this will be printed
- end
- describe "validations" do
- context "member is a user" do
- subject { Member.new(is_user: true) }
- it "validates presence of email" do
- subject.valid?
- expect(subject.errors["email"]).to include("can't be blank")
- end
- end
- context "member is not an user" do
- subject { Member.new(is_user: false) }
- it "doesn't require fields to have info" do
- subject.valid?
- expect(subject.errors["email"]).to_not include("can't be blank")
- expect(subject.errors["first_name"]).to_not include("can't be blank")
- expect(subject.errors["last_name"]).to_not include("can't be blank")
- end
- end
- end
- context "if user" do<br />
- before { subject.stub(:is_user?) { true } }<br />
- it { should validate_presence_of(:name) }<br />
- it { should validate_presence_of(:email) }<br />
- end
- context "if not user" do<br />
- before { subject.stub(:is_user?) { false } }<br />
- it { should_not validate_presence_of(:name) }<br />
- it { should validate_presence_of(:email) }<br />
- end
Add Comment
Please, Sign In to add comment