aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-06-15 06:30:55 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-06-15 06:40:28 +0900
commit249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37 (patch)
tree9c5f7e30c7d0325c84677a7ca8ab5aae6e53d5cc
parentf340490b98ac9f13f004b5db8863cb3ff6fb71f9 (diff)
downloadrails-249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37.tar.gz
rails-249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37.tar.bz2
rails-249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37.zip
Add test cases for #28274
`object.id` is correctly restored since #29378 has merged. Closes #28274, Closes #28395. [Ryuta Kamizono & Eugene Kenny]
-rw-r--r--activerecord/test/cases/transactions_test.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/activerecord/test/cases/transactions_test.rb b/activerecord/test/cases/transactions_test.rb
index 5c6d78b574..79ba306ef5 100644
--- a/activerecord/test/cases/transactions_test.rb
+++ b/activerecord/test/cases/transactions_test.rb
@@ -595,6 +595,52 @@ class TransactionTest < ActiveRecord::TestCase
assert_not topic.frozen?
end
+ def test_restore_id_after_rollback
+ topic = Topic.new
+
+ Topic.transaction do
+ topic.save!
+ raise ActiveRecord::Rollback
+ end
+
+ assert_nil topic.id
+ end
+
+ def test_restore_custom_primary_key_after_rollback
+ movie = Movie.new(name: "foo")
+
+ Movie.transaction do
+ movie.save!
+ raise ActiveRecord::Rollback
+ end
+
+ assert_nil movie.id
+ end
+
+ def test_assign_id_after_rollback
+ topic = Topic.create!
+
+ Topic.transaction do
+ topic.save!
+ raise ActiveRecord::Rollback
+ end
+
+ topic.id = nil
+ assert_nil topic.id
+ end
+
+ def test_assign_custom_primary_key_after_rollback
+ movie = Movie.create!(name: "foo")
+
+ Movie.transaction do
+ movie.save!
+ raise ActiveRecord::Rollback
+ end
+
+ movie.id = nil
+ assert_nil movie.id
+ end
+
def test_rollback_of_frozen_records
topic = Topic.create.freeze
Topic.transaction do