Sha256: cad85ebe7384f7db6574403ec8ab9cc9ec4461a6b0c7ea0aaa66901c51ea883f

Contents?: true

Size: 1.09 KB

Versions: 27

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

require "spec_helper"
require_relative './has_many_models'

describe Mongoid::Association::Referenced::HasMany do
  context 'when projecting with #only' do
    before do
      school = HmmSchool.create!(district: 'foo')
      HmmStudent.create!(school: school, name: 'Dave', grade: 10)
    end

    let(:school) do
      HmmSchool.where(district: 'foo').only('students._id', 'students.name').first
    end

    let(:student) { school.students.first }

    it 'populates specified fields only' do
      pending 'https://jira.mongodb.org/browse/MONGOID-4704'

      expect(student.name).to eq('Dave')
      # has a default value specified in the model
      expect do
        student.grade
      end.to raise_error(ActiveModel::MissingAttributeError)
      expect(student.attributes.keys).to eq(['_id', 'name'])
    end

    # Delete this test when https://jira.mongodb.org/browse/MONGOID-4704 is
    # implemented and above test is unpended
    it 'fetches all fields' do
      expect(student.name).to eq('Dave')
      expect(student.grade).to eq(10)
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
mongoid-7.1.5 spec/mongoid/association/referenced/has_many_query_spec.rb
mongoid-7.2.0.rc1 spec/mongoid/association/referenced/has_many_query_spec.rb
mongoid-7.1.4 spec/mongoid/association/referenced/has_many_query_spec.rb
mongoid-7.1.2 spec/mongoid/association/referenced/has_many_query_spec.rb
mongoid-7.1.1 spec/mongoid/association/referenced/has_many_query_spec.rb
mongoid-7.1.0 spec/mongoid/association/referenced/has_many_query_spec.rb
mongoid-7.1.0.rc0 spec/mongoid/association/referenced/has_many_query_spec.rb