Sha256: e8e2678d301fe7383e681e488026914bbea48cc34fefe16b33e79230fee3a80d
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
require 'spec_helper' RSpec.describe CountValidator do before do stub_const('OwnerClass', Class.new(Owner)) end describe 'success' do let(:owner) { OwnerClass.new } before do OwnerClass.validates :pets, :count => {:minimum => 2} owner.pets = [Pet.new, Pet.new] end it { expect(owner).to be_valid } end describe 'failure' do let(:owner) { OwnerClass.new } before do OwnerClass.validates :pets, :count => {:minimum => 2} end it do expect(owner).to be_invalid expect(owner.errors).to include(:pets) end end context 'when associated records are marked for destruction' do let(:owner) { OwnerClass.new(pets: [Pet.new, Pet.new]) } before do OwnerClass.validates :pets, :count => {:maximum => 1} owner.pets.last.mark_for_destruction end it 'does not count associated records marked for destruction' do expect(owner).to be_valid end end context 'with no optional error messages' do let(:owner) { OwnerClass.new } before do OwnerClass.validates :pets, :count => {:minimum => 1} owner.save end it "uses it's own default error messages" do expect(owner.errors[:pets]).to eq([I18n.t('errors.messages.count_greater_than_or_equal_to.one')]) end end context 'with optional error message' do let(:owner) { OwnerClass.new } before do OwnerClass.validates :pets, :count => {:minimum => 1, :too_short => 'optional message'} owner.save end it 'uses optional error message' do expect(owner.errors[:pets]).to eq(['optional message']) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
apress-validators-0.1.0 | spec/app/validators/count_validator_spec.rb |