Sha256: 4a43c4fb8398a740b81e687bf2a4cc99b6eddeb1d16a52c0f1d18413faf65c45

Contents?: true

Size: 1.67 KB

Versions: 5

Compression:

Stored size: 1.67 KB

Contents

require "spec_helper"

describe "Paranoia uniqueness scoped validator" do
  describe "#valid?" do
    context "when the document is a root document" do
      context "when the document is paranoid" do
        before do
          ParanoidPost.validates(:title, uniqueness: { conditions: -> { ParanoidPost.where(deleted_at: nil) } })
        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 for soft deleted docs" do

          before do
            post = ParanoidPost.create(title: "test")
            post.delete
          end

          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 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

5 entries across 5 versions & 2 rubygems

Version Path
mongoid_paranoia-0.4.0 spec/mongoid/validatable/uniqueness_spec.rb
mongoid_paranoia-0.3.0 spec/mongoid/validatable/uniqueness_spec.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/bundler/gems/mongoid-paranoia-83dc8de7b426/spec/mongoid/validatable/uniqueness_spec.rb
mongoid_paranoia-0.2.1 spec/mongoid/validatable/uniqueness_spec.rb
mongoid_paranoia-0.2.0 spec/mongoid/validatable/uniqueness_spec.rb