aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorWojciech Wnętrzak <w.wnetrzak@gmail.com>2014-06-01 17:27:17 +0200
committerWojciech Wnętrzak <w.wnetrzak@gmail.com>2014-06-01 17:30:05 +0200
commitdf6dc1b51a95947f26e35edda9005f0b2a2e7df7 (patch)
tree1f7b90395069e06d416522b2e8e825148278ede4 /railties
parent4ae90a7dd8f9857f5d8c90c0135dd873f90e6957 (diff)
downloadrails-df6dc1b51a95947f26e35edda9005f0b2a2e7df7.tar.gz
rails-df6dc1b51a95947f26e35edda9005f0b2a2e7df7.tar.bz2
rails-df6dc1b51a95947f26e35edda9005f0b2a2e7df7.zip
Added missing test case for migrations when using sql structure
Diffstat (limited to 'railties')
-rw-r--r--railties/test/application/test_test.rb41
1 files changed, 40 insertions, 1 deletions
diff --git a/railties/test/application/test_test.rb b/railties/test/application/test_test.rb
index a223180169..d3ea8ebc72 100644
--- a/railties/test/application/test_test.rb
+++ b/railties/test/application/test_test.rb
@@ -67,7 +67,7 @@ module ApplicationTests
assert_match %r{/app/test/unit/failing_test\.rb}, output
end
- test "migrations" do
+ test "ruby schema migrations" do
output = script('generate model user name:string')
version = output.match(/(\d+)_create_users\.rb/)[1]
@@ -104,6 +104,45 @@ module ApplicationTests
assert !result.include?("create_table(:users)")
end
+ test "sql structure migrations" do
+ output = script('generate model user name:string')
+ version = output.match(/(\d+)_create_users\.rb/)[1]
+
+ app_file 'test/models/user_test.rb', <<-RUBY
+ require 'test_helper'
+
+ class UserTest < ActiveSupport::TestCase
+ test "user" do
+ User.create! name: "Jon"
+ end
+ end
+ RUBY
+
+ app_file 'db/structure.sql', ''
+ app_file 'config/initializers/enable_sql_schema_format.rb', <<-RUBY
+ Rails.application.config.active_record.schema_format = :sql
+ RUBY
+
+ assert_unsuccessful_run "models/user_test.rb", "Migrations are pending"
+
+ app_file 'db/structure.sql', <<-RUBY
+ CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL);
+ CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version");
+ CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255));
+ INSERT INTO schema_migrations (version) VALUES ('#{version}');
+ RUBY
+
+ app_file 'config/initializers/disable_maintain_test_schema.rb', <<-RUBY
+ Rails.application.config.active_record.maintain_test_schema = false
+ RUBY
+
+ assert_unsuccessful_run "models/user_test.rb", "Could not find table 'users'"
+
+ File.delete "#{app_path}/config/initializers/disable_maintain_test_schema.rb"
+
+ assert_successful_test_run('models/user_test.rb')
+ end
+
private
def assert_unsuccessful_run(name, message)
result = run_test_file(name)