Use correct migration class in acceptance tests

In Rails 5.0, migration classes changed so that they were versioned:
instead of inheriting from `ActiveRecord::Migration`, you inherited from
`ActiveRecord::Migration[5.0]`. The old way wasn't removed, however --
that is, until Rails 5.1. Hence, our acceptance tests that use the old
style no longer work under the 5.1 Appraisal.
This commit is contained in:
Elliot Winkler 2017-09-28 00:50:32 -05:00
parent 5fec4cd4c9
commit b310986f9a
4 changed files with 25 additions and 2 deletions

View File

@ -5,7 +5,7 @@ describe 'shoulda-matchers integrates with multiple libraries' do
create_rails_application
write_file 'db/migrate/1_create_users.rb', <<-FILE
class CreateUsers < ActiveRecord::Migration
class CreateUsers < #{migration_class_name}
def self.up
create_table :users do |t|
t.string :name

View File

@ -5,7 +5,7 @@ describe 'shoulda-matchers integrates with Rails' do
create_rails_application
write_file 'db/migrate/1_create_users.rb', <<-FILE
class CreateUsers < ActiveRecord::Migration
class CreateUsers < #{migration_class_name}
def self.up
create_table :users do |t|
t.string :name

View File

@ -3,6 +3,7 @@ require_relative 'helpers/base_helpers'
require_relative 'helpers/command_helpers'
require_relative 'helpers/gem_helpers'
require_relative 'helpers/n_unit_helpers'
require_relative 'helpers/rails_migration_helpers'
require_relative 'helpers/rails_version_helpers'
require_relative 'helpers/rspec_helpers'
require_relative 'helpers/ruby_version_helpers'
@ -23,6 +24,7 @@ module AcceptanceTests
include CommandHelpers
include GemHelpers
include NUnitHelpers
include RailsMigrationHelpers
include RailsVersionHelpers
include RspecHelpers
include RubyVersionHelpers

View File

@ -0,0 +1,21 @@
require_relative 'gem_helpers'
module AcceptanceTests
module RailsMigrationHelpers
include RailsVersionHelpers
def migration_class_name
if rails_version >= 5
"ActiveRecord::Migration[#{rails_version_for_migration}]"
else
'ActiveRecord::Migration'
end
end
private
def rails_version_for_migration
rails_version.to_s.split('.')[0..1].join('.')
end
end
end