mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Remove redundant execution of Dir.chdir(app_path) { }
in railties' tests
This commit is contained in:
parent
7c564d8740
commit
ff67743fb2
4 changed files with 192 additions and 228 deletions
|
@ -19,21 +19,19 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
def test_use_value_defined_in_environment_file_in_database_yml
|
||||
Dir.chdir(app_path) do
|
||||
app_file "config/database.yml", <<-YAML
|
||||
development:
|
||||
database: <%= Rails.application.config.database %>
|
||||
adapter: sqlite3
|
||||
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
||||
timeout: 5000
|
||||
YAML
|
||||
app_file "config/database.yml", <<-YAML
|
||||
development:
|
||||
database: <%= Rails.application.config.database %>
|
||||
adapter: sqlite3
|
||||
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
||||
timeout: 5000
|
||||
YAML
|
||||
|
||||
app_file "config/environments/development.rb", <<-RUBY
|
||||
Rails.application.configure do
|
||||
config.database = "db/development.sqlite3"
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
app_file "config/environments/development.rb", <<-RUBY
|
||||
Rails.application.configure do
|
||||
config.database = "db/development.sqlite3"
|
||||
end
|
||||
RUBY
|
||||
|
||||
master, slave = PTY.open
|
||||
spawn_dbconsole(slave)
|
||||
|
@ -43,22 +41,20 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
def test_respect_environment_option
|
||||
Dir.chdir(app_path) do
|
||||
app_file "config/database.yml", <<-YAML
|
||||
default: &default
|
||||
adapter: sqlite3
|
||||
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
||||
timeout: 5000
|
||||
app_file "config/database.yml", <<-YAML
|
||||
default: &default
|
||||
adapter: sqlite3
|
||||
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
||||
timeout: 5000
|
||||
|
||||
development:
|
||||
<<: *default
|
||||
database: db/development.sqlite3
|
||||
development:
|
||||
<<: *default
|
||||
database: db/development.sqlite3
|
||||
|
||||
production:
|
||||
<<: *default
|
||||
database: db/production.sqlite3
|
||||
YAML
|
||||
end
|
||||
production:
|
||||
<<: *default
|
||||
database: db/production.sqlite3
|
||||
YAML
|
||||
|
||||
master, slave = PTY.open
|
||||
spawn_dbconsole(slave, "-e production")
|
||||
|
|
|
@ -83,10 +83,8 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
test "db:drop failure because database does not exist" do
|
||||
Dir.chdir(app_path) do
|
||||
output = rails("db:drop:_unsafe", "--trace")
|
||||
assert_match(/does not exist/, output)
|
||||
end
|
||||
output = rails("db:drop:_unsafe", "--trace")
|
||||
assert_match(/does not exist/, output)
|
||||
end
|
||||
|
||||
test "db:drop failure because bad permissions" do
|
||||
|
@ -100,13 +98,11 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
def db_migrate_and_status(expected_database)
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "book", "title:string"
|
||||
rails "db:migrate"
|
||||
output = rails("db:migrate:status")
|
||||
assert_match(%r{database:\s+\S*#{Regexp.escape(expected_database)}}, output)
|
||||
assert_match(/up\s+\d{14}\s+Create books/, output)
|
||||
end
|
||||
rails "generate", "model", "book", "title:string"
|
||||
rails "db:migrate"
|
||||
output = rails("db:migrate:status")
|
||||
assert_match(%r{database:\s+\S*#{Regexp.escape(expected_database)}}, output)
|
||||
assert_match(/up\s+\d{14}\s+Create books/, output)
|
||||
end
|
||||
|
||||
test "db:migrate and db:migrate:status without database_url" do
|
||||
|
@ -161,12 +157,11 @@ module ApplicationTests
|
|||
|
||||
test "db:fixtures:load with namespaced fixture" do
|
||||
require "#{app_path}/config/environment"
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "admin::book", "title:string"
|
||||
rails "db:migrate", "db:fixtures:load"
|
||||
require "#{app_path}/app/models/admin/book"
|
||||
assert_equal 2, Admin::Book.count
|
||||
end
|
||||
|
||||
rails "generate", "model", "admin::book", "title:string"
|
||||
rails "db:migrate", "db:fixtures:load"
|
||||
require "#{app_path}/app/models/admin/book"
|
||||
assert_equal 2, Admin::Book.count
|
||||
end
|
||||
|
||||
def db_structure_dump_and_load(expected_database)
|
||||
|
@ -205,56 +200,52 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
test "db:schema:load and db:structure:load do not purge the existing database" do
|
||||
Dir.chdir(app_path) do
|
||||
rails "runner", "ActiveRecord::Base.connection.create_table(:posts) {|t| t.string :title }"
|
||||
rails "runner", "ActiveRecord::Base.connection.create_table(:posts) {|t| t.string :title }"
|
||||
|
||||
app_file "db/schema.rb", <<-RUBY
|
||||
ActiveRecord::Schema.define(version: 20140423102712) do
|
||||
create_table(:comments) {}
|
||||
end
|
||||
RUBY
|
||||
app_file "db/schema.rb", <<-RUBY
|
||||
ActiveRecord::Schema.define(version: 20140423102712) do
|
||||
create_table(:comments) {}
|
||||
end
|
||||
RUBY
|
||||
|
||||
list_tables = lambda { rails("runner", "p ActiveRecord::Base.connection.tables").strip }
|
||||
list_tables = lambda { rails("runner", "p ActiveRecord::Base.connection.tables").strip }
|
||||
|
||||
assert_equal '["posts"]', list_tables[]
|
||||
rails "db:schema:load"
|
||||
assert_equal '["posts", "comments", "schema_migrations", "ar_internal_metadata"]', list_tables[]
|
||||
assert_equal '["posts"]', list_tables[]
|
||||
rails "db:schema:load"
|
||||
assert_equal '["posts", "comments", "schema_migrations", "ar_internal_metadata"]', list_tables[]
|
||||
|
||||
app_file "db/structure.sql", <<-SQL
|
||||
CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255));
|
||||
SQL
|
||||
app_file "db/structure.sql", <<-SQL
|
||||
CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255));
|
||||
SQL
|
||||
|
||||
rails "db:structure:load"
|
||||
assert_equal '["posts", "comments", "schema_migrations", "ar_internal_metadata", "users"]', list_tables[]
|
||||
end
|
||||
rails "db:structure:load"
|
||||
assert_equal '["posts", "comments", "schema_migrations", "ar_internal_metadata", "users"]', list_tables[]
|
||||
end
|
||||
|
||||
test "db:schema:load with inflections" do
|
||||
Dir.chdir(app_path) do
|
||||
app_file "config/initializers/inflection.rb", <<-RUBY
|
||||
ActiveSupport::Inflector.inflections do |inflect|
|
||||
inflect.irregular 'goose', 'geese'
|
||||
app_file "config/initializers/inflection.rb", <<-RUBY
|
||||
ActiveSupport::Inflector.inflections do |inflect|
|
||||
inflect.irregular 'goose', 'geese'
|
||||
end
|
||||
RUBY
|
||||
app_file "config/initializers/primary_key_table_name.rb", <<-RUBY
|
||||
ActiveRecord::Base.primary_key_prefix_type = :table_name
|
||||
RUBY
|
||||
app_file "db/schema.rb", <<-RUBY
|
||||
ActiveRecord::Schema.define(version: 20140423102712) do
|
||||
create_table("goose".pluralize) do |t|
|
||||
t.string :name
|
||||
end
|
||||
RUBY
|
||||
app_file "config/initializers/primary_key_table_name.rb", <<-RUBY
|
||||
ActiveRecord::Base.primary_key_prefix_type = :table_name
|
||||
RUBY
|
||||
app_file "db/schema.rb", <<-RUBY
|
||||
ActiveRecord::Schema.define(version: 20140423102712) do
|
||||
create_table("goose".pluralize) do |t|
|
||||
t.string :name
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
RUBY
|
||||
|
||||
rails "db:schema:load"
|
||||
rails "db:schema:load"
|
||||
|
||||
tables = rails("runner", "p ActiveRecord::Base.connection.tables").strip
|
||||
assert_match(/"geese"/, tables)
|
||||
tables = rails("runner", "p ActiveRecord::Base.connection.tables").strip
|
||||
assert_match(/"geese"/, tables)
|
||||
|
||||
columns = rails("runner", "p ActiveRecord::Base.connection.columns('geese').map(&:name)").strip
|
||||
assert_equal columns, '["gooseid", "name"]'
|
||||
end
|
||||
columns = rails("runner", "p ActiveRecord::Base.connection.columns('geese').map(&:name)").strip
|
||||
assert_equal columns, '["gooseid", "name"]'
|
||||
end
|
||||
|
||||
test "db:schema:load fails if schema.rb doesn't exist yet" do
|
||||
|
@ -300,10 +291,8 @@ module ApplicationTests
|
|||
puts ActiveRecord::Base.connection_config[:database]
|
||||
RUBY
|
||||
|
||||
Dir.chdir(app_path) do
|
||||
database_path = rails("db:setup")
|
||||
assert_equal "development.sqlite3", File.basename(database_path.strip)
|
||||
end
|
||||
database_path = rails("db:setup")
|
||||
assert_equal "development.sqlite3", File.basename(database_path.strip)
|
||||
ensure
|
||||
ENV["RAILS_ENV"] = @old_rails_env
|
||||
ENV["RACK_ENV"] = @old_rack_env
|
||||
|
|
|
@ -15,69 +15,63 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
test "running migrations with given scope" do
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
|
||||
app_file "db/migrate/01_a_migration.bukkits.rb", <<-MIGRATION
|
||||
class AMigration < ActiveRecord::Migration::Current
|
||||
end
|
||||
MIGRATION
|
||||
app_file "db/migrate/01_a_migration.bukkits.rb", <<-MIGRATION
|
||||
class AMigration < ActiveRecord::Migration::Current
|
||||
end
|
||||
MIGRATION
|
||||
|
||||
output = rails("db:migrate", "SCOPE=bukkits")
|
||||
assert_no_match(/create_table\(:users\)/, output)
|
||||
assert_no_match(/CreateUsers/, output)
|
||||
assert_no_match(/add_column\(:users, :email, :string\)/, output)
|
||||
output = rails("db:migrate", "SCOPE=bukkits")
|
||||
assert_no_match(/create_table\(:users\)/, output)
|
||||
assert_no_match(/CreateUsers/, output)
|
||||
assert_no_match(/add_column\(:users, :email, :string\)/, output)
|
||||
|
||||
assert_match(/AMigration: migrated/, output)
|
||||
assert_match(/AMigration: migrated/, output)
|
||||
|
||||
output = rails("db:migrate", "SCOPE=bukkits", "VERSION=0")
|
||||
assert_no_match(/drop_table\(:users\)/, output)
|
||||
assert_no_match(/CreateUsers/, output)
|
||||
assert_no_match(/remove_column\(:users, :email\)/, output)
|
||||
output = rails("db:migrate", "SCOPE=bukkits", "VERSION=0")
|
||||
assert_no_match(/drop_table\(:users\)/, output)
|
||||
assert_no_match(/CreateUsers/, output)
|
||||
assert_no_match(/remove_column\(:users, :email\)/, output)
|
||||
|
||||
assert_match(/AMigration: reverted/, output)
|
||||
end
|
||||
assert_match(/AMigration: reverted/, output)
|
||||
end
|
||||
|
||||
test "migration with empty version" do
|
||||
Dir.chdir(app_path) do
|
||||
output = rails("db:migrate", "VERSION=", allow_failure: true)
|
||||
assert_match(/Empty VERSION provided/, output)
|
||||
output = rails("db:migrate", "VERSION=", allow_failure: true)
|
||||
assert_match(/Empty VERSION provided/, output)
|
||||
|
||||
output = rails("db:migrate:redo", "VERSION=", allow_failure: true)
|
||||
assert_match(/Empty VERSION provided/, output)
|
||||
output = rails("db:migrate:redo", "VERSION=", allow_failure: true)
|
||||
assert_match(/Empty VERSION provided/, output)
|
||||
|
||||
output = rails("db:migrate:up", "VERSION=", allow_failure: true)
|
||||
assert_match(/VERSION is required/, output)
|
||||
output = rails("db:migrate:up", "VERSION=", allow_failure: true)
|
||||
assert_match(/VERSION is required/, output)
|
||||
|
||||
output = rails("db:migrate:up", allow_failure: true)
|
||||
assert_match(/VERSION is required/, output)
|
||||
output = rails("db:migrate:up", allow_failure: true)
|
||||
assert_match(/VERSION is required/, output)
|
||||
|
||||
output = rails("db:migrate:down", "VERSION=", allow_failure: true)
|
||||
assert_match(/VERSION is required - To go down one migration, use db:rollback/, output)
|
||||
output = rails("db:migrate:down", "VERSION=", allow_failure: true)
|
||||
assert_match(/VERSION is required - To go down one migration, use db:rollback/, output)
|
||||
|
||||
output = rails("db:migrate:down", allow_failure: true)
|
||||
assert_match(/VERSION is required - To go down one migration, use db:rollback/, output)
|
||||
end
|
||||
output = rails("db:migrate:down", allow_failure: true)
|
||||
assert_match(/VERSION is required - To go down one migration, use db:rollback/, output)
|
||||
end
|
||||
|
||||
test "model and migration generator with change syntax" do
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
|
||||
output = rails("db:migrate")
|
||||
assert_match(/create_table\(:users\)/, output)
|
||||
assert_match(/CreateUsers: migrated/, output)
|
||||
assert_match(/add_column\(:users, :email, :string\)/, output)
|
||||
assert_match(/AddEmailToUsers: migrated/, output)
|
||||
output = rails("db:migrate")
|
||||
assert_match(/create_table\(:users\)/, output)
|
||||
assert_match(/CreateUsers: migrated/, output)
|
||||
assert_match(/add_column\(:users, :email, :string\)/, output)
|
||||
assert_match(/AddEmailToUsers: migrated/, output)
|
||||
|
||||
output = rails("db:rollback", "STEP=2")
|
||||
assert_match(/drop_table\(:users\)/, output)
|
||||
assert_match(/CreateUsers: reverted/, output)
|
||||
assert_match(/remove_column\(:users, :email, :string\)/, output)
|
||||
assert_match(/AddEmailToUsers: reverted/, output)
|
||||
end
|
||||
output = rails("db:rollback", "STEP=2")
|
||||
assert_match(/drop_table\(:users\)/, output)
|
||||
assert_match(/CreateUsers: reverted/, output)
|
||||
assert_match(/remove_column\(:users, :email, :string\)/, output)
|
||||
assert_match(/AddEmailToUsers: reverted/, output)
|
||||
end
|
||||
|
||||
test "migration status when schema migrations table is not present" do
|
||||
|
@ -86,93 +80,85 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
test "migration status" do
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
|
||||
output = rails("db:migrate:status")
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
|
||||
rails "db:rollback", "STEP=1"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:rollback", "STEP=1"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Add email to users/, output)
|
||||
end
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Add email to users/, output)
|
||||
end
|
||||
|
||||
test "migration status without timestamps" do
|
||||
add_to_config("config.active_record.timestamped_migrations = false")
|
||||
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
|
||||
output = rails("db:migrate:status")
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
|
||||
|
||||
rails "db:rollback", "STEP=1"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:rollback", "STEP=1"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{3,}\s+Add email to users/, output)
|
||||
end
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{3,}\s+Add email to users/, output)
|
||||
end
|
||||
|
||||
test "migration status after rollback and redo" do
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
|
||||
output = rails("db:migrate:status")
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
|
||||
rails "db:rollback", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:rollback", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/down\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Add email to users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Add email to users/, output)
|
||||
|
||||
rails "db:migrate:redo"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:migrate:redo"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
end
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
end
|
||||
|
||||
test "migration status after rollback and forward" do
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
|
||||
output = rails("db:migrate:status")
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
|
||||
rails "db:rollback", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:rollback", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/down\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Add email to users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{14}\s+Add email to users/, output)
|
||||
|
||||
rails "db:forward", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:forward", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
end
|
||||
assert_match(/up\s+\d{14}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{14}\s+Add email to users/, output)
|
||||
end
|
||||
|
||||
test "raise error on any move when current migration does not exist" do
|
||||
|
@ -209,50 +195,45 @@ module ApplicationTests
|
|||
test "migration status after rollback and redo without timestamps" do
|
||||
add_to_config("config.active_record.timestamped_migrations = false")
|
||||
|
||||
Dir.chdir(app_path) do
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
rails "generate", "model", "user", "username:string", "password:string"
|
||||
rails "generate", "migration", "add_email_to_users", "email:string"
|
||||
rails "db:migrate"
|
||||
|
||||
output = rails("db:migrate:status")
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
|
||||
|
||||
rails "db:rollback", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:rollback", "STEP=2"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/down\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{3,}\s+Add email to users/, output)
|
||||
assert_match(/down\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/down\s+\d{3,}\s+Add email to users/, output)
|
||||
|
||||
rails "db:migrate:redo"
|
||||
output = rails("db:migrate:status")
|
||||
rails "db:migrate:redo"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
|
||||
end
|
||||
assert_match(/up\s+\d{3,}\s+Create users/, output)
|
||||
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
|
||||
end
|
||||
|
||||
test "running migrations with not timestamp head migration files" do
|
||||
Dir.chdir(app_path) do
|
||||
app_file "db/migrate/1_one_migration.rb", <<-MIGRATION
|
||||
class OneMigration < ActiveRecord::Migration::Current
|
||||
end
|
||||
MIGRATION
|
||||
|
||||
app_file "db/migrate/1_one_migration.rb", <<-MIGRATION
|
||||
class OneMigration < ActiveRecord::Migration::Current
|
||||
end
|
||||
MIGRATION
|
||||
app_file "db/migrate/02_two_migration.rb", <<-MIGRATION
|
||||
class TwoMigration < ActiveRecord::Migration::Current
|
||||
end
|
||||
MIGRATION
|
||||
|
||||
app_file "db/migrate/02_two_migration.rb", <<-MIGRATION
|
||||
class TwoMigration < ActiveRecord::Migration::Current
|
||||
end
|
||||
MIGRATION
|
||||
rails "db:migrate"
|
||||
|
||||
rails "db:migrate"
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
output = rails("db:migrate:status")
|
||||
|
||||
assert_match(/up\s+001\s+One migration/, output)
|
||||
assert_match(/up\s+002\s+Two migration/, output)
|
||||
end
|
||||
assert_match(/up\s+001\s+One migration/, output)
|
||||
assert_match(/up\s+002\s+Two migration/, output)
|
||||
end
|
||||
|
||||
test "schema generation when dump_schema_after_migration is set" do
|
||||
|
|
|
@ -40,7 +40,7 @@ module ApplicationTests
|
|||
with_rails_env "test" do
|
||||
rails "generate", "model", "product", "name:string"
|
||||
rails "db:create", "db:migrate"
|
||||
output = Dir.chdir(app_path) { rails("db:test:prepare", "test") }
|
||||
output = rails("db:test:prepare", "test")
|
||||
|
||||
refute_match(/ActiveRecord::ProtectedEnvironmentError/, output)
|
||||
end
|
||||
|
@ -372,14 +372,12 @@ module ApplicationTests
|
|||
end
|
||||
|
||||
def test_copy_templates
|
||||
Dir.chdir(app_path) do
|
||||
rails "app:templates:copy"
|
||||
%w(controller mailer scaffold).each do |dir|
|
||||
assert File.exist?(File.join(app_path, "lib", "templates", "erb", dir))
|
||||
end
|
||||
%w(controller helper scaffold_controller assets).each do |dir|
|
||||
assert File.exist?(File.join(app_path, "lib", "templates", "rails", dir))
|
||||
end
|
||||
rails "app:templates:copy"
|
||||
%w(controller mailer scaffold).each do |dir|
|
||||
assert File.exist?(File.join(app_path, "lib", "templates", "erb", dir))
|
||||
end
|
||||
%w(controller helper scaffold_controller assets).each do |dir|
|
||||
assert File.exist?(File.join(app_path, "lib", "templates", "rails", dir))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue