From b310986f9a3b7547c98e54db97600f8128e28ff5 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Thu, 28 Sep 2017 00:50:32 -0500 Subject: [PATCH] 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. --- .../multiple_libraries_integration_spec.rb | 2 +- spec/acceptance/rails_integration_spec.rb | 2 +- spec/support/acceptance/helpers.rb | 2 ++ .../helpers/rails_migration_helpers.rb | 21 +++++++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 spec/support/acceptance/helpers/rails_migration_helpers.rb diff --git a/spec/acceptance/multiple_libraries_integration_spec.rb b/spec/acceptance/multiple_libraries_integration_spec.rb index d03babac..376e1291 100644 --- a/spec/acceptance/multiple_libraries_integration_spec.rb +++ b/spec/acceptance/multiple_libraries_integration_spec.rb @@ -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 diff --git a/spec/acceptance/rails_integration_spec.rb b/spec/acceptance/rails_integration_spec.rb index f18a6725..79d6e197 100644 --- a/spec/acceptance/rails_integration_spec.rb +++ b/spec/acceptance/rails_integration_spec.rb @@ -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 diff --git a/spec/support/acceptance/helpers.rb b/spec/support/acceptance/helpers.rb index 2b5160d6..c09a1dfa 100644 --- a/spec/support/acceptance/helpers.rb +++ b/spec/support/acceptance/helpers.rb @@ -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 diff --git a/spec/support/acceptance/helpers/rails_migration_helpers.rb b/spec/support/acceptance/helpers/rails_migration_helpers.rb new file mode 100644 index 00000000..211bc01b --- /dev/null +++ b/spec/support/acceptance/helpers/rails_migration_helpers.rb @@ -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