diff options
author | Thomas Hollstegge <thomas.hollstegge@zweitag.de> | 2011-09-14 17:32:31 +0200 |
---|---|---|
committer | Thomas Hollstegge <thomas.hollstegge@zweitag.de> | 2012-11-17 16:45:23 +0100 |
commit | 70fa756ddb83684a05c840ff16e6b57cff5c5048 (patch) | |
tree | 1fc943f7ce52cde153754b96c299f590f51d559f /activerecord/test | |
parent | ee9412839b8e4f30103519c20001a12582b824b8 (diff) | |
download | rails-70fa756ddb83684a05c840ff16e6b57cff5c5048.tar.gz rails-70fa756ddb83684a05c840ff16e6b57cff5c5048.tar.bz2 rails-70fa756ddb83684a05c840ff16e6b57cff5c5048.zip |
AR::Base.becomes should not change the STI type
If you want to change the STI type too, use AR::Base.becomes! instead
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/persistence_test.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/activerecord/test/cases/persistence_test.rb b/activerecord/test/cases/persistence_test.rb index 4b938da5c4..b2609f6395 100644 --- a/activerecord/test/cases/persistence_test.rb +++ b/activerecord/test/cases/persistence_test.rb @@ -280,12 +280,23 @@ class PersistencesTest < ActiveRecord::TestCase def test_update_sti_type assert_instance_of Reply, topics(:second) - topic = topics(:second).becomes(Topic) + topic = topics(:second).becomes!(Topic) assert_instance_of Topic, topic topic.save! assert_instance_of Topic, Topic.find(topic.id) end + def test_preserve_original_sti_type + reply = topics(:second) + assert_equal "Reply", reply.type + + topic = reply.becomes(Topic) + assert_equal "Reply", reply.type + + assert_instance_of Topic, topic + assert_equal "Reply", topic.type + end + def test_delete topic = Topic.find(1) assert_equal topic, topic.delete, 'topic.delete did not return self' |