aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/generators/model_generator_test.rb
diff options
context:
space:
mode:
authorDerek Prior <derekprior@gmail.com>2014-11-24 21:25:15 -0500
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-11-25 20:22:58 -0200
commit323334a775bb35d901742e4cc39f6fe7b5e53c8f (patch)
treebe2b9444543f5b269b8515a6557e457742f99b73 /railties/test/generators/model_generator_test.rb
parentac0432cf351d11f9cfaf2eb879388eb8bcf09cd7 (diff)
downloadrails-323334a775bb35d901742e4cc39f6fe7b5e53c8f.tar.gz
rails-323334a775bb35d901742e4cc39f6fe7b5e53c8f.tar.bz2
rails-323334a775bb35d901742e4cc39f6fe7b5e53c8f.zip
Generators add foreign keys on references
If you run a generator such as: ``` rails generate model accounts supplier:references ``` The resulting migration will now add the corresponding foreign key constraint unless the reference was specified to be polymorphic.
Diffstat (limited to 'railties/test/generators/model_generator_test.rb')
-rw-r--r--railties/test/generators/model_generator_test.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb
index c78597c81b..ac7a0acf6b 100644
--- a/railties/test/generators/model_generator_test.rb
+++ b/railties/test/generators/model_generator_test.rb
@@ -407,6 +407,27 @@ class ModelGeneratorTest < Rails::Generators::TestCase
end
end
+ def test_foreign_key_is_added_for_references
+ run_generator ["account", "supplier:belongs_to", "user:references"]
+
+ assert_migration "db/migrate/create_accounts.rb" do |m|
+ assert_method :change, m do |up|
+ assert_match(/add_foreign_key :accounts, :suppliers/, up)
+ assert_match(/add_foreign_key :accounts, :users/, up)
+ end
+ end
+ end
+
+ def test_foreign_key_is_skipped_for_polymorphic_references
+ run_generator ["account", "supplier:belongs_to{polymorphic}"]
+
+ assert_migration "db/migrate/create_accounts.rb" do |m|
+ assert_method :change, m do |up|
+ assert_no_match(/add_foreign_key :accounts, :suppliers/, up)
+ end
+ end
+ end
+
private
def assert_generated_fixture(path, parsed_contents)
fixture_file = File.new File.expand_path(path, destination_root)