Sha256: 5d7d4c13ce5b3a1ae587ebb4ee07b9f84b1b17ba9581e5996f3bc6724b8af34a

Contents?: true

Size: 1.32 KB

Versions: 27

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

require "spec_helper"
require_relative './embeds_many_models'

describe Mongoid::Association::Embedded::EmbedsMany do

  context 'when projecting with #only' do
    before do
      congress = EmmCongress.new(name: 'foo')
      congress.legislators << EmmLegislator.new(a: 1, b: 2)
      congress.save!
    end

    let(:congress) do
      EmmCongress.where(name: 'foo').only(:name, 'legislators._id', 'legislators.a').first
    end

    let(:legislator) { congress.legislators.first }

    it 'populates specified fields only' do
      expect(legislator.a).to eq(1)
      # has a default value specified in the model
      expect do
        legislator.b
      end.to raise_error(ActiveModel::MissingAttributeError)
      expect(legislator.attributes.keys).to eq(['_id', 'a'])
    end

    context 'when using only with $' do
      before do
        Patient.destroy_all
        Patient.create!(
          title: 'Steve',
          addresses: [
            Address.new(number: '123'),
            Address.new(number: '456'),
          ],
        )
      end

      let(:patient) do
        Patient.where('addresses.number' => {'$gt' => 100}).only('addresses.$').first
      end

      it 'loads embedded association' do
        expect(patient.addresses.first.number).to eq(123)
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
mongoid-7.3.5 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.3.4 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.1.11 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.6 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.3.3 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.3.2 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.5 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.1.10 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.1.9 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.4 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.3.1 spec/mongoid/association/embedded/embeds_many_query_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongoid-7.1.7/spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.3.0 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.3 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.1.8 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.2 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.1 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.1.7 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.2.0 spec/mongoid/association/embedded/embeds_many_query_spec.rb
mongoid-7.1.6 spec/mongoid/association/embedded/embeds_many_query_spec.rb