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