Sha256: f0fcc0be1fcc5a2dd17de9a1f4e9a36efc70efc97d8c38ce06108672d5abb458

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

require 'spec_helper'

describe Mongoid::Validatable::UniquenessValidator do
  describe '#valid?' do
    context 'when the document is a root document' do
      context 'when the document is paranoid' do
        before do
          ParanoidPost.validates_uniqueness_of :title
        end

        after do
          ParanoidPost.reset_callbacks(:validate)
        end

        let!(:post) do
          ParanoidPost.create(title: 'testing')
        end

        context 'when the field is unique' do
          let(:new_post) do
            ParanoidPost.new(title: 'test')
          end

          it 'returns true' do
            expect(new_post).to be_valid
          end
        end

        context 'when the field is unique for non soft deleted docs' do
          before do
            post.delete
          end

          let(:new_post) do
            ParanoidPost.new(title: 'testing')
          end

          it 'returns true' do
            expect(new_post).to be_valid
          end
        end

        context 'when the field is not unique' do
          let(:new_post) do
            ParanoidPost.new(title: 'testing')
          end

          it 'returns false' do
            expect(new_post).not_to be_valid
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongoid-paranoia-2.0.0 spec/mongoid/validatable/uniqueness_spec.rb