aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/timestamp_test.rb
diff options
context:
space:
mode:
authorLucas Mazza <lucastmazza@gmail.com>2014-04-22 23:37:13 -0500
committerLucas Mazza <lucastmazza@gmail.com>2014-04-23 13:07:14 -0500
commit4866399054c9facf11bc743c0e0969e6c81f6c31 (patch)
treecd72a19b3b5f18894086e179461ecdadd0527d19 /activerecord/test/cases/timestamp_test.rb
parentd10e2ca9f199105849444b39f55d4922339d9c8d (diff)
downloadrails-4866399054c9facf11bc743c0e0969e6c81f6c31.tar.gz
rails-4866399054c9facf11bc743c0e0969e6c81f6c31.tar.bz2
rails-4866399054c9facf11bc743c0e0969e6c81f6c31.zip
`ActiveRecord::Base.no_touching` no longer triggers callbacks or start empty transactions.
Closes #14841.
Diffstat (limited to 'activerecord/test/cases/timestamp_test.rb')
-rw-r--r--activerecord/test/cases/timestamp_test.rb21
1 files changed, 20 insertions, 1 deletions
diff --git a/activerecord/test/cases/timestamp_test.rb b/activerecord/test/cases/timestamp_test.rb
index 594b4fb07b..77ab427be0 100644
--- a/activerecord/test/cases/timestamp_test.rb
+++ b/activerecord/test/cases/timestamp_test.rb
@@ -112,7 +112,7 @@ class TimestampTest < ActiveRecord::TestCase
previous_starting = task.starting
previous_ending = task.ending
task.touch(:starting, :ending)
-
+
assert_not_equal previous_starting, task.starting
assert_not_equal previous_ending, task.ending
assert_in_delta Time.now, task.starting, 1
@@ -170,6 +170,25 @@ class TimestampTest < ActiveRecord::TestCase
assert !@developer.no_touching?
end
+ def test_no_touching_with_callbacks
+ klass = Class.new(ActiveRecord::Base) do
+ self.table_name = "developers"
+
+ attr_accessor :after_touch_called
+
+ after_touch do |user|
+ user.after_touch_called = true
+ end
+ end
+
+ developer = klass.first
+
+ klass.no_touching do
+ developer.touch
+ assert_not developer.after_touch_called
+ end
+ end
+
def test_saving_a_record_with_a_belongs_to_that_specifies_touching_the_parent_should_update_the_parent_updated_at
pet = Pet.first
owner = pet.owner