mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
+ Add test for auto timestamps update of both old & new parent records
This commit is contained in:
parent
36f7732e82
commit
7fc339059c
2 changed files with 38 additions and 0 deletions
|
@ -176,6 +176,40 @@ class TimestampTest < ActiveRecord::TestCase
|
||||||
assert_not_equal time, owner.updated_at
|
assert_not_equal time, owner.updated_at
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_changing_parent_of_a_record_touches_both_new_and_old_parent_record_and_grandparent_record
|
||||||
|
klass = Class.new(ActiveRecord::Base) do
|
||||||
|
def self.name; 'Toy'; end
|
||||||
|
belongs_to :pet, touch: true
|
||||||
|
end
|
||||||
|
|
||||||
|
toy1 = klass.find(1)
|
||||||
|
old_pet = toy1.pet
|
||||||
|
old_owner = old_pet.owner
|
||||||
|
|
||||||
|
toy2 = klass.find(2)
|
||||||
|
new_pet = toy2.pet
|
||||||
|
new_owner = new_pet.owner
|
||||||
|
time = 3.days.ago
|
||||||
|
|
||||||
|
old_pet.update_columns(updated_at: time)
|
||||||
|
old_owner.update_columns(updated_at: time)
|
||||||
|
new_pet.update_columns(updated_at: time)
|
||||||
|
new_owner.update_columns(updated_at: time)
|
||||||
|
|
||||||
|
toy1.pet = new_pet
|
||||||
|
toy1.save!
|
||||||
|
|
||||||
|
old_pet.reload
|
||||||
|
old_owner.reload
|
||||||
|
new_pet.reload
|
||||||
|
new_owner.reload
|
||||||
|
|
||||||
|
assert_not_equal time, old_pet.updated_at
|
||||||
|
assert_not_equal time, old_owner.updated_at
|
||||||
|
assert_not_equal time, new_pet.updated_at
|
||||||
|
assert_not_equal time, new_owner.updated_at
|
||||||
|
end
|
||||||
|
|
||||||
def test_timestamp_attributes_for_create
|
def test_timestamp_attributes_for_create
|
||||||
toy = Toy.first
|
toy = Toy.first
|
||||||
assert_equal toy.send(:timestamp_attributes_for_create), [:created_at, :created_on]
|
assert_equal toy.send(:timestamp_attributes_for_create), [:created_at, :created_on]
|
||||||
|
|
4
activerecord/test/fixtures/toys.yml
vendored
4
activerecord/test/fixtures/toys.yml
vendored
|
@ -2,3 +2,7 @@ bone:
|
||||||
toy_id: 1
|
toy_id: 1
|
||||||
name: Bone
|
name: Bone
|
||||||
pet_id: 1
|
pet_id: 1
|
||||||
|
doll:
|
||||||
|
toy_id: 2
|
||||||
|
name: Doll
|
||||||
|
pet_id: 2
|
||||||
|
|
Loading…
Reference in a new issue