aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2014-01-13 15:04:23 +0100
committerYves Senn <yves.senn@gmail.com>2014-01-13 15:07:14 +0100
commite95031f55dd54945abebe6e9f8a12e428ada4146 (patch)
tree78980ad99b642e51df1b0fdeb366f53044ef1740 /activerecord/test/cases
parentee4b5f1b8aedc59d94e72e1f0689de48e3b477bb (diff)
downloadrails-e95031f55dd54945abebe6e9f8a12e428ada4146.tar.gz
rails-e95031f55dd54945abebe6e9f8a12e428ada4146.tar.bz2
rails-e95031f55dd54945abebe6e9f8a12e428ada4146.zip
fix bug in becomes! when changing from base to subclass. Closes #13272.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/inheritance_test.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/test/cases/inheritance_test.rb b/activerecord/test/cases/inheritance_test.rb
index cb0d374ef7..7fd7d42354 100644
--- a/activerecord/test/cases/inheritance_test.rb
+++ b/activerecord/test/cases/inheritance_test.rb
@@ -128,6 +128,17 @@ class InheritanceTest < ActiveRecord::TestCase
assert_kind_of Cabbage, cabbage
end
+ def test_alt_becomes_bang_resets_inheritance_type_column
+ vegetable = Vegetable.create!(name: "Red Pepper")
+ assert_nil vegetable.custom_type
+
+ cabbage = vegetable.becomes!(Cabbage)
+ assert_equal "Cabbage", cabbage.custom_type
+
+ vegetable = cabbage.becomes!(Vegetable)
+ assert_nil cabbage.custom_type
+ end
+
def test_inheritance_find_all
companies = Company.all.merge!(:order => 'id').to_a
assert_kind_of Firm, companies[0], "37signals should be a firm"