aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-05-13 11:35:34 +0200
committerYves Senn <yves.senn@gmail.com>2015-05-13 11:35:34 +0200
commitf7881d3e2b87016c6788ceceda4c849ae7a0a009 (patch)
tree84b19bf333788cd2b18e81d1a3446347f9101340 /activerecord/test
parent15354b6fd0e73a321b695ac3961eac8df9d6125d (diff)
downloadrails-f7881d3e2b87016c6788ceceda4c849ae7a0a009.tar.gz
rails-f7881d3e2b87016c6788ceceda4c849ae7a0a009.tar.bz2
rails-f7881d3e2b87016c6788ceceda4c849ae7a0a009.zip
invalid sti error message contains the full class name.
This can resolve confusing situation when a top level constant exists but a namespaced version is identified. Related to #19531.
Diffstat (limited to 'activerecord/test')
-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 0286c85939..f67d85603a 100644
--- a/activerecord/test/cases/inheritance_test.rb
+++ b/activerecord/test/cases/inheritance_test.rb
@@ -213,6 +213,17 @@ class InheritanceTest < ActiveRecord::TestCase
assert_raise(ActiveRecord::SubclassNotFound) { Company.new(:type => 'Account') }
end
+ def test_new_with_unrelated_namespaced_type
+ without_store_full_sti_class do
+ e = assert_raises ActiveRecord::SubclassNotFound do
+ Namespaced::Company.new(type: 'Firm')
+ end
+
+ assert_equal "Invalid single-table inheritance type: Namespaced::Firm is not a subclass of Namespaced::Company", e.message
+ end
+ end
+
+
def test_new_with_complex_inheritance
assert_nothing_raised { Client.new(type: 'VerySpecialClient') }
end