Sha256: 850bad006fb0dd33507beff9bd1b62e98b7559e546cb521c8a8e834ce743d61e

Contents?: true

Size: 1.6 KB

Versions: 10

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

require "spec_helper"
require_relative '../has_and_belongs_to_many_models'

describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
  context 'with primary_key and foreign_key given' do
    let(:company) { HabtmmCompany.create!(c_id: 123) }
    let(:employee) { HabtmmEmployee.create!(e_id: 456) }

    before do
      company.employees << employee
    end

    it 'references correct field' do
      expect(company.e_ids).to eq([456])
    end

    describe 'nullify' do
      before do
        company.employees << repl_employee
        company.save!
        expect(company.employees.length).to eq(2)
        repl_employee.habtmm_company_ids = [company.id]
        repl_employee.save!
        repl_employee.reload
        expect(repl_employee.habtmm_company_ids).to eq([company.id])
      end

      context 'without replacement' do
        let(:repl_employee) { HabtmmEmployee.create!(e_id: 444) }

        it 'disassociates child from parent' do
          company.employees.nullify
          repl_employee.reload
          expect(repl_employee.habtmm_company_ids).to eq([])
        end
      end

      context 'with replacement' do
        let(:repl_employee) { HabtmmEmployee.create!(e_id: 444) }

        before do
          company.employees << repl_employee
          expect(company.employees.length).to eq(2)
        end

        it 'keeps replacement associated with the parent' do
          company.employees.nullify([repl_employee])
          repl_employee.reload
          expect(repl_employee.habtmm_company_ids).to eq([company.id])
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mongoid-7.0.13 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.12 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.11 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.10 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.8 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.7 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.6 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.5 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.4 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb
mongoid-7.0.3 spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb