# frozen_string_literal: true require "cases/helper" require "models/content" class BidirectionalDestroyDependenciesTest < ActiveRecord::TestCase fixtures :content, :content_positions def setup Content.destroyed_ids.clear ContentPosition.destroyed_ids.clear end def test_bidirectional_dependence_when_destroying_item_with_belongs_to_association content_position = ContentPosition.find(1) content = content_position.content assert_not_nil content content_position.destroy assert_equal [content_position.id], ContentPosition.destroyed_ids assert_equal [content.id], Content.destroyed_ids end def test_bidirectional_dependence_when_destroying_item_with_has_one_association content = Content.find(1) content_position = content.content_position assert_not_nil content_position content.destroy assert_equal [content.id], Content.destroyed_ids assert_equal [content_position.id], ContentPosition.destroyed_ids end def test_bidirectional_dependence_when_destroying_item_with_has_one_association_fails_first_time content = ContentWhichRequiresTwoDestroyCalls.find(1) 2.times { content.destroy } assert_equal content.destroyed?, true end end