2017-09-17 19:10:00 -04:00
|
|
|
# Note: All of the dependencies here were obtained by running `rails new` with
|
|
|
|
# various versions of Rails and copying lines from the generated Gemfile. It's
|
|
|
|
# best to keep the gems here in the same order as they're listed there so you
|
|
|
|
# can compare them more easily.
|
|
|
|
|
2020-01-01 15:20:50 -05:00
|
|
|
# Needed for Rails 5+ controller tests
|
|
|
|
controller_test_dependency = proc do
|
|
|
|
gem 'rails-controller-testing', '>= 1.0.1'
|
2017-09-17 19:10:00 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
shared_spring_dependencies = proc do
|
Use same assertion class as Rails, if loaded
Given this scenario:
* Using Rails 4.1
* Gemfile has `gem 'shoulda-matchers', require: false`
* spec_helper has `require 'shoulda/matchers'` following
`require 'rspec/rails'`
* Using Spring to run tests
matchers that delegate to assertions in Rails (e.g. `render_template`
and `route`) will fail in the wrong way if used. They fail because in
order to use these assertions, we expect that the assertions will
raise a specific exception, an exception that corresponds to whichever
test framework that Rails is using. For Rails versions that used
Test::Unit, this is Test::Unit::AssertionFailedError. For current Rails
versions, which now use Minitest, this exception is Minitest::Assertion.
The problem is that instead of asking Rails which exception class it's
using, we are trying to detect this exception class ourselves (for
cases in which Rails is not being used). This leads to the wrong class
being detected: when using a Rails version that uses Minitest, we choose
Test::Unit::AssertionFailedError as the class. This happens using the
exact scenario above because even though shoulda-matchers is loaded
after rspec-rails, rspec-rails itself defines
Test::Unit::AssertionFailedError.
Also add Cucumber tests that confirms this exact scenario works.
2014-06-21 23:24:22 -04:00
|
|
|
gem 'spring'
|
|
|
|
gem 'spring-commands-rspec'
|
|
|
|
end
|
|
|
|
|
2017-09-17 19:10:00 -04:00
|
|
|
shared_test_dependencies = proc do
|
2021-02-28 02:24:06 -05:00
|
|
|
gem 'rspec-rails', '~> 4.0'
|
2017-09-17 19:10:00 -04:00
|
|
|
gem 'shoulda-context', '~> 1.2.0'
|
|
|
|
end
|
|
|
|
|
|
|
|
shared_dependencies = proc do
|
|
|
|
instance_eval(&shared_spring_dependencies)
|
|
|
|
instance_eval(&shared_test_dependencies)
|
|
|
|
end
|
|
|
|
|
2019-03-21 01:47:03 -04:00
|
|
|
appraise 'rails_5_2' do
|
2018-09-03 20:57:20 -04:00
|
|
|
instance_eval(&shared_dependencies)
|
2020-01-01 15:20:50 -05:00
|
|
|
instance_eval(&controller_test_dependency)
|
2018-09-03 20:57:20 -04:00
|
|
|
|
2022-09-30 10:19:56 -04:00
|
|
|
gem 'rails', '5.2.8.1'
|
2018-09-03 20:57:20 -04:00
|
|
|
gem 'puma', '~> 3.11'
|
|
|
|
gem 'bootsnap', '>= 1.1.0', require: false
|
|
|
|
gem 'sass-rails', '~> 5.0'
|
|
|
|
gem 'turbolinks', '~> 5'
|
|
|
|
gem 'jbuilder', '~> 2.5'
|
|
|
|
gem 'bcrypt', '~> 3.1.7'
|
|
|
|
gem 'capybara', '~> 3.1.1'
|
|
|
|
gem 'selenium-webdriver'
|
|
|
|
gem 'chromedriver-helper'
|
2021-02-28 02:24:06 -05:00
|
|
|
gem 'listen', '~> 3.0.5'
|
2018-09-03 20:57:20 -04:00
|
|
|
gem 'spring-watcher-listen', '~> 2.0.0'
|
2019-03-21 01:24:02 -04:00
|
|
|
|
2020-01-01 15:20:50 -05:00
|
|
|
# Database adapters
|
|
|
|
gem 'pg', '~> 0.18'
|
2022-01-25 13:53:06 -05:00
|
|
|
gem 'sqlite3', '~> 1.4'
|
2019-03-21 01:24:02 -04:00
|
|
|
end
|
|
|
|
|
2021-02-28 02:24:06 -05:00
|
|
|
appraise 'rails_6_0' do
|
|
|
|
instance_eval(&shared_dependencies)
|
|
|
|
instance_eval(&controller_test_dependency)
|
|
|
|
|
2022-09-30 10:19:56 -04:00
|
|
|
gem 'rails', '6.0.6'
|
2021-02-28 02:24:06 -05:00
|
|
|
gem 'puma', '~> 4.1'
|
|
|
|
gem 'bootsnap', '>= 1.4.2', require: false
|
|
|
|
gem 'sass-rails', '>= 6'
|
|
|
|
gem 'turbolinks', '~> 5'
|
|
|
|
gem 'jbuilder', '~> 2.7'
|
|
|
|
gem 'bcrypt', '~> 3.1.7'
|
|
|
|
gem 'capybara', '>= 2.15'
|
2021-04-09 21:56:49 -04:00
|
|
|
gem 'listen', '~> 3.3.0'
|
2022-08-05 13:56:52 -04:00
|
|
|
gem 'psych', '~> 3.0'
|
2021-02-28 02:24:06 -05:00
|
|
|
gem 'spring-watcher-listen', '~> 2.0.0'
|
|
|
|
gem 'selenium-webdriver'
|
|
|
|
gem 'webdrivers'
|
2022-08-05 13:56:52 -04:00
|
|
|
gem 'net-smtp', require: false
|
2021-02-28 02:24:06 -05:00
|
|
|
|
|
|
|
# Database adapters
|
|
|
|
gem 'pg', '>= 0.18', '< 2.0'
|
|
|
|
gem 'sqlite3', '~> 1.4'
|
2018-09-03 20:57:20 -04:00
|
|
|
end
|
2021-06-03 16:41:27 -04:00
|
|
|
|
|
|
|
appraise 'rails_6_1' do
|
|
|
|
instance_eval(&shared_dependencies)
|
|
|
|
instance_eval(&controller_test_dependency)
|
|
|
|
|
2022-09-30 10:19:56 -04:00
|
|
|
gem 'rails', '6.1.7'
|
2021-06-03 16:41:27 -04:00
|
|
|
gem 'puma', '~> 5.0'
|
|
|
|
gem 'bootsnap', '>= 1.4.2', require: false
|
|
|
|
gem 'sass-rails', '>= 6'
|
|
|
|
gem 'turbolinks', '~> 5'
|
|
|
|
gem 'jbuilder', '~> 2.7'
|
|
|
|
gem 'bcrypt', '~> 3.1.7'
|
|
|
|
gem 'capybara', '>= 2.15'
|
|
|
|
gem 'listen', '>= 3.0.5', '< 3.6'
|
2022-08-05 13:56:52 -04:00
|
|
|
gem 'net-smtp', require: false
|
|
|
|
gem 'psych', '~> 3.0'
|
2021-06-03 16:41:27 -04:00
|
|
|
gem 'rack-mini-profiler', '~> 2.0.0'
|
|
|
|
gem 'spring-watcher-listen', '~> 2.0.0'
|
|
|
|
gem 'selenium-webdriver'
|
|
|
|
gem 'webdrivers'
|
|
|
|
|
|
|
|
# Database adapters
|
|
|
|
gem 'pg', '>= 0.18', '< 2.0'
|
|
|
|
gem 'sqlite3', '~> 1.4'
|
|
|
|
end
|
2022-09-15 17:05:15 -04:00
|
|
|
|
|
|
|
appraise 'rails_7_0' do
|
|
|
|
instance_eval(&shared_spring_dependencies)
|
|
|
|
instance_eval(&shared_test_dependencies)
|
|
|
|
|
|
|
|
gem 'rails', '~> 7.0.1'
|
|
|
|
gem 'sprockets-rails'
|
|
|
|
gem 'puma', '~> 5.0'
|
|
|
|
gem 'importmap-rails'
|
|
|
|
gem 'turbo-rails'
|
|
|
|
gem 'stimulus-rails'
|
|
|
|
gem 'jbuilder'
|
|
|
|
gem 'redis', '~> 4.0'
|
|
|
|
gem 'bootsnap', require: false
|
|
|
|
gem 'capybara'
|
|
|
|
gem 'selenium-webdriver'
|
|
|
|
gem 'webdrivers'
|
|
|
|
|
|
|
|
# other dependencies
|
|
|
|
gem 'bcrypt', '~> 3.1.7'
|
|
|
|
gem 'rails-controller-testing'
|
|
|
|
gem 'debug', platforms: %i[mri mingw x64_mingw]
|
|
|
|
|
|
|
|
# Database adapters
|
|
|
|
gem 'sqlite3', '~> 1.4'
|
|
|
|
gem 'pg', '~> 1.1'
|
|
|
|
end
|