Sha256: 4d57151f7be9f4d015a52d11931c990d640901f4152db1bcd445cb8c0c6d1741

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

require "spec_helper"

describe Mongoid::Matchable::Regexp do

  let(:matcher) do
    described_class.new(attribute)
  end

  let(:attribute) do
    'Emily'
  end

  describe '#_matches?' do

    context 'when a BSON::Regexp::Raw object is passed' do

      let(:regexp) do
        BSON::Regexp::Raw.new('^Em')
      end

      it 'compiles the regexp object to a native regexp for the matching' do
        expect(matcher._matches?(regexp)).to be(true)
      end

      context 'when the value does not match the attribute' do

        let(:attribute) do
          'ily'
        end

        it 'compiles the regexp object to a native regexp for the matching' do
          expect(matcher._matches?(regexp)).to be(false)
        end
      end
    end

    context 'when a native Regexp object is passed' do

      let(:regexp) do
        /^Em/
      end

      it 'calls super with the native regexp' do
        expect(matcher._matches?(regexp)).to be(true)
      end

      context 'when the value does not match the attribute' do

        let(:attribute) do
          'ily'
        end

        it 'compiles the regexp object to a native regexp for the matching' do
          expect(matcher._matches?(regexp)).to be(false)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mongoid-7.1.1 spec/mongoid/matchable/regexp_spec.rb
mongoid-7.1.0 spec/mongoid/matchable/regexp_spec.rb
mongoid-7.1.0.rc0 spec/mongoid/matchable/regexp_spec.rb