Sha256: 97c035b4ad7d6cf2e27f5f95f5bcfc9030abe594d917fe9f9f0328073cfc2b45

Contents?: true

Size: 1.97 KB

Versions: 38

Compression:

Stored size: 1.97 KB

Contents

require "spec_helper"

describe Mongoid::Criteria::Queryable::Forwardable do

  describe ".select_with" do

    context "when extending from a class" do

      before(:all) do
        class Mountain
          extend Mongoid::Criteria::Queryable::Forwardable
          select_with :queryable

          def self.queryable
            Query.new
          end
        end
      end

      after(:all) do
        Object.send(:remove_const, :Mountain)
      end

      context "when provided a symbol" do

        Mongoid::Criteria::Queryable::Selectable.forwardables.each do |method|

          it "forwards #{method} to the provided method name" do
            expect(Mountain).to respond_to(method)
          end
        end

        Mongoid::Criteria::Queryable::Optional.forwardables.each do |method|

          it "forwards #{method} to the provided method name" do
            expect(Mountain).to respond_to(method)
          end
        end
      end
    end

    context "when extending from a module" do

      before(:all) do
        module Finders
          extend Mongoid::Criteria::Queryable::Forwardable
          select_with :queryable

          def self.queryable
            Query.new
          end
        end
      end

      after(:all) do
        Object.send(:remove_const, :Finders)
      end

      context "when provided a symbol" do

        before(:all) do
          class Mountain
            extend Finders
          end
        end

        after(:all) do
          Object.send(:remove_const, :Mountain)
        end

        Mongoid::Criteria::Queryable::Selectable.forwardables.each do |method|

          it "forwards #{method} to the provided method name" do
            expect(Mountain).to respond_to(method)
          end
        end

        Mongoid::Criteria::Queryable::Optional.forwardables.each do |method|

          it "forwards #{method} to the provided method name" do
            expect(Mountain).to respond_to(method)
          end
        end
      end
    end
  end
end

Version data entries

38 entries across 36 versions & 2 rubygems

Version Path
mongoid-7.0.13 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.12 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-6.4.8 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.11 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.10 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-6.4.7 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-6.4.5 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.8 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.7 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.6 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.5 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.4 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-6.4.4 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.3 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-6.4.2 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.2 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.1 spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-6.4.1 spec/mongoid/criteria/queryable/forwardable_spec.rb
tdiary-5.0.8 vendor/bundle/gems/mongoid-6.4.0/spec/mongoid/criteria/queryable/forwardable_spec.rb
mongoid-7.0.0 spec/mongoid/criteria/queryable/forwardable_spec.rb