From 5b9aa43bc8dafcc2a00eb43741c495262f5ca45e Mon Sep 17 00:00:00 2001 From: eileencodes Date: Fri, 5 Aug 2016 09:36:54 -0400 Subject: Add generators and ability to run system tests * Generates system test requirements with new Rails app * Includes required default gems in Gemfile for Rails app * Generates a single system test case * Generates a system test case with scaffold --- railties/lib/rails/generators.rb | 2 ++ railties/lib/rails/generators/app_base.rb | 3 +++ railties/lib/rails/generators/rails/app/app_generator.rb | 8 ++++++++ railties/lib/rails/generators/rails/app/templates/Gemfile | 5 +++++ .../generators/rails/app/templates/config/application.rb | 1 + .../generators/rails/plugin/templates/rails/application.rb | 1 + .../rails/generators/rails/scaffold/scaffold_generator.rb | 2 ++ railties/lib/rails/generators/rails/system_test/USAGE | 10 ++++++++++ .../generators/rails/system_test/system_test_generator.rb | 7 +++++++ .../rails/generators/test_unit/system/system_generator.rb | 13 +++++++++++++ .../generators/test_unit/system/templates/system_test.rb | 7 +++++++ railties/lib/rails/tasks/statistics.rake | 1 + railties/lib/rails/test_unit/railtie.rb | 1 + railties/lib/rails/test_unit/testing.rake | 5 +++++ 14 files changed, 66 insertions(+) create mode 100644 railties/lib/rails/generators/rails/system_test/USAGE create mode 100644 railties/lib/rails/generators/rails/system_test/system_test_generator.rb create mode 100644 railties/lib/rails/generators/test_unit/system/system_generator.rb create mode 100644 railties/lib/rails/generators/test_unit/system/templates/system_test.rb (limited to 'railties') diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index 99bda728ee..cbcbe70fdd 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -53,6 +53,7 @@ module Rails force_plural: false, helper: true, integration_tool: nil, + system_tool: nil, javascripts: true, javascript_engine: :js, orm: false, @@ -151,6 +152,7 @@ module Rails "#{test}:controller", "#{test}:helper", "#{test}:integration", + "#{test}:system", "#{test}:mailer", "#{test}:model", "#{test}:scaffold", diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index ea88afe9f4..e55da93f45 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -82,6 +82,9 @@ module Rails class_option :skip_test, type: :boolean, aliases: "-T", default: false, desc: "Skip test files" + class_option :skip_system_test, type: :boolean, default: false, + desc: "Skip system test files" + class_option :dev, type: :boolean, default: false, desc: "Setup the #{name} with Gemfile pointing to your Rails checkout" diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index 3cf923faf0..00839c5d4c 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -150,6 +150,10 @@ module Rails template "test/test_helper.rb" end + def system_test + empty_directory_with_keep_file "test/system" + end + def tmp empty_directory_with_keep_file "tmp" empty_directory "tmp/cache" @@ -262,6 +266,10 @@ module Rails build(:test) unless options[:skip_test] end + def create_system_test_files + build(:system_test) unless options[:skip_system_test] || options[:skip_test] || options[:api] + end + def create_tmp_files build(:tmp) end diff --git a/railties/lib/rails/generators/rails/app/templates/Gemfile b/railties/lib/rails/generators/rails/app/templates/Gemfile index 24d2fa1284..b082d70cba 100644 --- a/railties/lib/rails/generators/rails/app/templates/Gemfile +++ b/railties/lib/rails/generators/rails/app/templates/Gemfile @@ -32,6 +32,11 @@ end group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] + <%- unless options.skip_system_test? || options.api? -%> + # Adds support for Capybara system testing and selenium driver + gem 'capybara', '~> 2.7.0' + gem 'selenium-webdriver' + <%- end -%> end group :development do diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb b/railties/lib/rails/generators/rails/app/templates/config/application.rb index c0a0bd0a3e..2488c79da3 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/application.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb @@ -14,6 +14,7 @@ require "action_view/railtie" <%= comment_if :skip_action_cable %>require "action_cable/engine" <%= comment_if :skip_sprockets %>require "sprockets/railtie" <%= comment_if :skip_test %>require "rails/test_unit/railtie" +<%= comment_if :skip_system_test %>require "system_testing/railtie" <% end -%> # Require the gems listed in Gemfile, including any gems diff --git a/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb b/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb index d03b1be878..2dc9cc67a6 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb @@ -11,6 +11,7 @@ require "action_view/railtie" require "active_job/railtie" <%= comment_if :skip_action_cable %>require "action_cable/engine" <%= comment_if :skip_test %>require "rails/test_unit/railtie" +<%= comment_if :skip_system_test %>require "system_testing/railtie" <%= comment_if :skip_sprockets %>require "sprockets/railtie" <% end -%> diff --git a/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb index ed6bf7f7d7..bcaa424ca8 100644 --- a/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb @@ -19,6 +19,8 @@ module Rails hook_for :scaffold_controller, required: true + hook_for :system_tool, as: :system + hook_for :assets do |assets| invoke assets, [controller_name] end diff --git a/railties/lib/rails/generators/rails/system_test/USAGE b/railties/lib/rails/generators/rails/system_test/USAGE new file mode 100644 index 0000000000..f11a99e008 --- /dev/null +++ b/railties/lib/rails/generators/rails/system_test/USAGE @@ -0,0 +1,10 @@ +Description: + Stubs out a new system test. Pass the name of the test, either + CamelCased or under_scored, as an argument. + + This generator invokes the current system tool, which defaults to + TestUnit. + +Example: + `rails generate system_test GeneralStories` creates a GeneralStories + system test in test/system/general_stories_test.rb diff --git a/railties/lib/rails/generators/rails/system_test/system_test_generator.rb b/railties/lib/rails/generators/rails/system_test/system_test_generator.rb new file mode 100644 index 0000000000..35bc168898 --- /dev/null +++ b/railties/lib/rails/generators/rails/system_test/system_test_generator.rb @@ -0,0 +1,7 @@ +module Rails + module Generators + class SystemTestGenerator < NamedBase # :nodoc: + hook_for :system_tool, as: :system + end + end +end diff --git a/railties/lib/rails/generators/test_unit/system/system_generator.rb b/railties/lib/rails/generators/test_unit/system/system_generator.rb new file mode 100644 index 0000000000..4d3b37e645 --- /dev/null +++ b/railties/lib/rails/generators/test_unit/system/system_generator.rb @@ -0,0 +1,13 @@ +require 'rails/generators/test_unit' + +module TestUnit # :nodoc: + module Generators # :nodoc: + class SystemGenerator < Base # :nodoc: + check_class_collision suffix: "Test" + + def create_test_files + template "system_test.rb", File.join("test/system", class_path, "#{file_name.pluralize}_test.rb") + end + end + end +end diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb new file mode 100644 index 0000000000..75825c880d --- /dev/null +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class <%= class_name.pluralize %>Test < Rails::SystemTestCase + # test 'the truth' do + # assert true + # end +end diff --git a/railties/lib/rails/tasks/statistics.rake b/railties/lib/rails/tasks/statistics.rake index ba1697186e..cb569be58b 100644 --- a/railties/lib/rails/tasks/statistics.rake +++ b/railties/lib/rails/tasks/statistics.rake @@ -17,6 +17,7 @@ STATS_DIRECTORIES = [ %w(Mailer\ tests test/mailers), %w(Job\ tests test/jobs), %w(Integration\ tests test/integration), + %w(System\ tests test/system), ].collect do |name, dir| [ name, "#{File.dirname(Rake.application.rakefile_location)}/#{dir}" ] end.select { |name, dir| File.directory?(dir) } diff --git a/railties/lib/rails/test_unit/railtie.rb b/railties/lib/rails/test_unit/railtie.rb index 746120e6a1..d3f52e8008 100644 --- a/railties/lib/rails/test_unit/railtie.rb +++ b/railties/lib/rails/test_unit/railtie.rb @@ -11,6 +11,7 @@ module Rails fixture_replacement: nil c.integration_tool :test_unit + c.system_tool :test_unit end initializer "test_unit.line_filtering" do diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake index 4c157c1262..4dde3d3c97 100644 --- a/railties/lib/rails/test_unit/testing.rake +++ b/railties/lib/rails/test_unit/testing.rake @@ -47,4 +47,9 @@ namespace :test do $: << "test" Minitest.rake_run(["test/controllers", "test/mailers", "test/functional"]) end + + task system: "test:prepare" do + $: << "test" + Minitest.rake_run(["test/system"]) + end end -- cgit v1.2.3 From 97d8b7abfe75b6a7617966ad0b3d37ae9fc7adb8 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Fri, 5 Aug 2016 09:58:43 -0400 Subject: Add skeleton for Rails::SystemTestCase This skelton is the bare minimum to get system tests to actually run in an application. This of course doesn't yet actually run a test but it is enough for `bin/rails test:system` to attempt to run files in `test/system` that inherit from `Rails::SystemTestCase`. --- railties/lib/rails/test_help.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'railties') diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb index 0f9bf98737..468b50c0f8 100644 --- a/railties/lib/rails/test_help.rb +++ b/railties/lib/rails/test_help.rb @@ -7,6 +7,7 @@ require "active_support/test_case" require "action_controller" require "action_controller/test_case" require "action_dispatch/testing/integration" +require 'system_test_case' require "rails/generators/test_case" require "active_support/testing/autorun" @@ -44,3 +45,10 @@ class ActionDispatch::IntegrationTest super end end + +class Rails::SystemTestCase + def before_setup # :nodoc: + @routes = Rails.application.routes + super + end +end -- cgit v1.2.3 From 0dc63281da1c7075ce63d8dba62e4230d72bfc2a Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sun, 7 Aug 2016 09:01:16 -0400 Subject: Add configuration option for driver adapter This allows any application to change the driver adapter based on the config settings in the test env. --- railties/lib/rails/all.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'railties') diff --git a/railties/lib/rails/all.rb b/railties/lib/rails/all.rb index 7606ea0e46..73d6efdc9f 100644 --- a/railties/lib/rails/all.rb +++ b/railties/lib/rails/all.rb @@ -9,6 +9,7 @@ require "rails" action_cable/engine rails/test_unit/railtie sprockets/railtie + system_testing/railtie ).each do |railtie| begin require railtie -- cgit v1.2.3 From 9730b1dba6d1bb9684a54915ac3735d9c0eade26 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sat, 27 Aug 2016 16:48:24 -0400 Subject: Add tests for system testing * Adds test case test * Adds driver adapter test * Adds tests for capybara seleium driver (testing the settings not actually opening the browser to test capybara w/ selenium because that would so so so slow) * Adds tests for rack test driver * Adds tests for generators --- railties/test/generators/app_generator_test.rb | 21 ++++++++++++++++++++- railties/test/generators/scaffold_generator_test.rb | 5 +++++ .../test/generators/system_test_generator_test.rb | 12 ++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 railties/test/generators/system_test_generator_test.rb (limited to 'railties') diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index ce29d93d6e..687aed2c47 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -42,6 +42,7 @@ DEFAULT_APP_FILES = %w( test/helpers test/mailers test/integration + test/system vendor tmp tmp/cache @@ -805,8 +806,26 @@ class AppGeneratorTest < Rails::Generators::TestCase assert_equal 4, @sequence_step end - private + def test_system_tests_directory_generated + run_generator + + assert_file("test/system/.keep") + assert_directory("test/system") + end + + def test_system_tests_are_not_generated_on_system_test_skip + run_generator [destination_root, "--skip-system-test"] + + assert_no_directory("test/system") + end + + def test_system_tests_are_not_generated_on_test_skip + run_generator [destination_root, "--skip-test"] + assert_no_directory("test/system") + end + + private def stub_rails_application(root) Rails.application.config.root = root Rails.application.class.stub(:name, "Myapp") do diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb index e2b2acab0f..d523b93ac1 100644 --- a/railties/test/generators/scaffold_generator_test.rb +++ b/railties/test/generators/scaffold_generator_test.rb @@ -62,6 +62,11 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase assert_match(/patch product_line_url\(@product_line\), params: \{ product_line: \{ product_id: @product_line\.product_id, title: @product_line\.title, user_id: @product_line\.user_id \} \}/, test) end + # System tests + assert_file "test/system/product_lines_test.rb" do |test| + assert_match(/class ProductLinesTest < Rails::SystemTestCase/, test) + end + # Views assert_no_file "app/views/layouts/product_lines.html.erb" diff --git a/railties/test/generators/system_test_generator_test.rb b/railties/test/generators/system_test_generator_test.rb new file mode 100644 index 0000000000..3a9733556e --- /dev/null +++ b/railties/test/generators/system_test_generator_test.rb @@ -0,0 +1,12 @@ +require "generators/generators_test_helper" +require "rails/generators/rails/system_test/system_test_generator" + +class SystemTestGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper + arguments %w(user) + + def test_system_test_skeleton_is_created + run_generator + assert_file "test/system/users_test.rb", /class UsersTest < Rails::SystemTestCase/ + end +end -- cgit v1.2.3 From a21e18d5080a2c4808330271885f5664a725d3f3 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Tue, 4 Oct 2016 08:48:21 -0400 Subject: Appease Rubocop Rubocop / code climate don't like single quotes and prefer doubles. --- railties/lib/rails/generators/test_unit/system/system_generator.rb | 2 +- railties/lib/rails/test_help.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'railties') diff --git a/railties/lib/rails/generators/test_unit/system/system_generator.rb b/railties/lib/rails/generators/test_unit/system/system_generator.rb index 4d3b37e645..a05f0f924d 100644 --- a/railties/lib/rails/generators/test_unit/system/system_generator.rb +++ b/railties/lib/rails/generators/test_unit/system/system_generator.rb @@ -1,4 +1,4 @@ -require 'rails/generators/test_unit' +require "rails/generators/test_unit" module TestUnit # :nodoc: module Generators # :nodoc: diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb index 468b50c0f8..ab4d371b49 100644 --- a/railties/lib/rails/test_help.rb +++ b/railties/lib/rails/test_help.rb @@ -7,7 +7,7 @@ require "active_support/test_case" require "action_controller" require "action_controller/test_case" require "action_dispatch/testing/integration" -require 'system_test_case' +require "system_test_case" require "rails/generators/test_case" require "active_support/testing/autorun" -- cgit v1.2.3 From 5bf0aa6745db27c45c0778f9f6e9046f9ee9fb94 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sun, 6 Nov 2016 18:55:15 -0500 Subject: Turn system testing into it's own gem and rename Renames `Rails::SystemTestCase` to `ActionSystemTest` and moves it to a gem under the Rails name. We need to name the class `ActionSystemTestCase` because the gem expects a module but tests themselves expect a class. Adds MIT-LICENSE, CHANGELOG, and README for the future. --- railties/lib/rails/all.rb | 2 +- .../lib/rails/generators/rails/app/templates/config/application.rb | 1 - .../lib/rails/generators/rails/plugin/templates/rails/application.rb | 1 - .../lib/rails/generators/test_unit/system/templates/system_test.rb | 2 +- railties/lib/rails/test_help.rb | 4 ++-- railties/railties.gemspec | 1 + railties/test/generators/scaffold_generator_test.rb | 2 +- railties/test/generators/system_test_generator_test.rb | 2 +- 8 files changed, 7 insertions(+), 8 deletions(-) (limited to 'railties') diff --git a/railties/lib/rails/all.rb b/railties/lib/rails/all.rb index 73d6efdc9f..2cc33ceb5e 100644 --- a/railties/lib/rails/all.rb +++ b/railties/lib/rails/all.rb @@ -9,7 +9,7 @@ require "rails" action_cable/engine rails/test_unit/railtie sprockets/railtie - system_testing/railtie + action_system_test/railtie ).each do |railtie| begin require railtie diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb b/railties/lib/rails/generators/rails/app/templates/config/application.rb index 2488c79da3..c0a0bd0a3e 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/application.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb @@ -14,7 +14,6 @@ require "action_view/railtie" <%= comment_if :skip_action_cable %>require "action_cable/engine" <%= comment_if :skip_sprockets %>require "sprockets/railtie" <%= comment_if :skip_test %>require "rails/test_unit/railtie" -<%= comment_if :skip_system_test %>require "system_testing/railtie" <% end -%> # Require the gems listed in Gemfile, including any gems diff --git a/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb b/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb index 2dc9cc67a6..d03b1be878 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb @@ -11,7 +11,6 @@ require "action_view/railtie" require "active_job/railtie" <%= comment_if :skip_action_cable %>require "action_cable/engine" <%= comment_if :skip_test %>require "rails/test_unit/railtie" -<%= comment_if :skip_system_test %>require "system_testing/railtie" <%= comment_if :skip_sprockets %>require "sprockets/railtie" <% end -%> diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb index 75825c880d..a74e0bb23d 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class <%= class_name.pluralize %>Test < Rails::SystemTestCase +class <%= class_name.pluralize %>Test < ActionSystemTestCase # test 'the truth' do # assert true # end diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb index ab4d371b49..68fc317a60 100644 --- a/railties/lib/rails/test_help.rb +++ b/railties/lib/rails/test_help.rb @@ -7,7 +7,7 @@ require "active_support/test_case" require "action_controller" require "action_controller/test_case" require "action_dispatch/testing/integration" -require "system_test_case" +require "action_system_test" require "rails/generators/test_case" require "active_support/testing/autorun" @@ -46,7 +46,7 @@ class ActionDispatch::IntegrationTest end end -class Rails::SystemTestCase +class ActionSystemTestCase def before_setup # :nodoc: @routes = Rails.application.routes super diff --git a/railties/railties.gemspec b/railties/railties.gemspec index 76de2b4639..fb8e666f40 100644 --- a/railties/railties.gemspec +++ b/railties/railties.gemspec @@ -25,6 +25,7 @@ Gem::Specification.new do |s| s.add_dependency "activesupport", version s.add_dependency "actionpack", version + s.add_dependency "actionsystemtest", version s.add_dependency "rake", ">= 0.8.7" s.add_dependency "thor", ">= 0.18.1", "< 2.0" diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb index d523b93ac1..43b8ce99ed 100644 --- a/railties/test/generators/scaffold_generator_test.rb +++ b/railties/test/generators/scaffold_generator_test.rb @@ -64,7 +64,7 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase # System tests assert_file "test/system/product_lines_test.rb" do |test| - assert_match(/class ProductLinesTest < Rails::SystemTestCase/, test) + assert_match(/class ProductLinesTest < ActionSystemTestCase/, test) end # Views diff --git a/railties/test/generators/system_test_generator_test.rb b/railties/test/generators/system_test_generator_test.rb index 3a9733556e..b6cf75b586 100644 --- a/railties/test/generators/system_test_generator_test.rb +++ b/railties/test/generators/system_test_generator_test.rb @@ -7,6 +7,6 @@ class SystemTestGeneratorTest < Rails::Generators::TestCase def test_system_test_skeleton_is_created run_generator - assert_file "test/system/users_test.rb", /class UsersTest < Rails::SystemTestCase/ + assert_file "test/system/users_test.rb", /class UsersTest < ActionSystemTestCase/ end end -- cgit v1.2.3 From 1db7a5c285eeb61acc998c0c27788a61bd948d5c Mon Sep 17 00:00:00 2001 From: eileencodes Date: Mon, 7 Nov 2016 15:46:56 -0500 Subject: Don't load ActionSystemTest in production By moving to the TestUnit Railtie, and doing the file requirement inside the onload call we can avoid loading ActionSystemTest in production and load it in the test env. This is important for performance reasons - loading up unnecessary files and object is expensive, especially when they should never be used in production. --- railties/lib/rails/all.rb | 1 - railties/lib/rails/test_unit/railtie.rb | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'railties') diff --git a/railties/lib/rails/all.rb b/railties/lib/rails/all.rb index 2cc33ceb5e..7606ea0e46 100644 --- a/railties/lib/rails/all.rb +++ b/railties/lib/rails/all.rb @@ -9,7 +9,6 @@ require "rails" action_cable/engine rails/test_unit/railtie sprockets/railtie - action_system_test/railtie ).each do |railtie| begin require railtie diff --git a/railties/lib/rails/test_unit/railtie.rb b/railties/lib/rails/test_unit/railtie.rb index d3f52e8008..694c8d92b1 100644 --- a/railties/lib/rails/test_unit/railtie.rb +++ b/railties/lib/rails/test_unit/railtie.rb @@ -20,6 +20,18 @@ module Rails } end + config.system_testing = ActiveSupport::OrderedOptions.new + + initializer "system_testing.set_configs" do |app| + ActiveSupport.on_load(:active_support_test_case) do + require "action_system_test" + + options = app.config.system_testing + options.driver ||= ActionSystemTest.default_driver + options.each { |k, v| ActionSystemTest.send("#{k}=", v) } + end + end + rake_tasks do load "rails/test_unit/testing.rake" end -- cgit v1.2.3 From 84f82f0a84de0906d195b529a9f780141c43507a Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sat, 12 Nov 2016 09:49:28 -0500 Subject: Refactor config settings to use generated file Originally I had set up system testing to have one configuration option to be set in the test environment. After thinking it over I think a generated class on app creation would be best. The reason for this is Capybara has a ton of configuration options that I'm sure some folks want to use. Thinking about how we handle screenshots, database transactions, and a whole bunch of other settings it would be better for users to be able to turn all of that on and off. When an app or scaffold is generated a `test/system_test_helper.rb` test helper will be generated as well. This will contain the class for tests to inherit from `ActionSystemTestCase` which will inherit from `ActionSystemTest::Base`. Here is where users can change the test driver, remove the screenshot helper, and add their additional Capybara configuration. --- railties/lib/rails/generators.rb | 2 +- railties/lib/rails/generators/rails/app/app_generator.rb | 2 ++ .../rails/app/templates/test/system_test_helper.rb | 8 ++++++++ .../rails/plugin/templates/test/system_test_helper.rb | 8 ++++++++ .../rails/generators/rails/scaffold/scaffold_generator.rb | 4 +++- .../generators/rails/system_test/system_test_generator.rb | 2 +- .../rails/generators/test_unit/system/system_generator.rb | 6 +++++- .../generators/test_unit/system/templates/system_test.rb | 2 +- .../test_unit/system/templates/system_test_helper.rb | 8 ++++++++ railties/lib/rails/test_help.rb | 2 +- railties/lib/rails/test_unit/railtie.rb | 14 +------------- 11 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb create mode 100644 railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb create mode 100644 railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb (limited to 'railties') diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index cbcbe70fdd..85f66cc416 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -53,7 +53,6 @@ module Rails force_plural: false, helper: true, integration_tool: nil, - system_tool: nil, javascripts: true, javascript_engine: :js, orm: false, @@ -63,6 +62,7 @@ module Rails stylesheets: true, stylesheet_engine: :css, scaffold_stylesheet: true, + system_tests: nil, test_framework: false, template_engine: :erb } diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index 00839c5d4c..acdb66ca85 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -152,6 +152,8 @@ module Rails def system_test empty_directory_with_keep_file "test/system" + + template "test/system_test_helper.rb" end def tmp diff --git a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb new file mode 100644 index 0000000000..77c4738d6f --- /dev/null +++ b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb @@ -0,0 +1,8 @@ +require "test_helper" + +class ActionSystemTestCase < ActionSystemTest::Base + teardown do + take_failed_screenshot + Capybara.reset_sessions! + end +end diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb new file mode 100644 index 0000000000..77c4738d6f --- /dev/null +++ b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb @@ -0,0 +1,8 @@ +require "test_helper" + +class ActionSystemTestCase < ActionSystemTest::Base + teardown do + take_failed_screenshot + Capybara.reset_sessions! + end +end diff --git a/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb index bcaa424ca8..12d6bc85b2 100644 --- a/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb @@ -6,6 +6,7 @@ module Rails remove_hook_for :resource_controller remove_class_option :actions + class_option :api, type: :boolean class_option :stylesheets, type: :boolean, desc: "Generate Stylesheets" class_option :stylesheet_engine, desc: "Engine for Stylesheets" class_option :assets, type: :boolean @@ -15,11 +16,12 @@ module Rails def handle_skip @options = @options.merge(stylesheets: false) unless options[:assets] @options = @options.merge(stylesheet_engine: false) unless options[:stylesheets] && options[:scaffold_stylesheet] + @options = @options.merge(system_tests: false) if options[:api] end hook_for :scaffold_controller, required: true - hook_for :system_tool, as: :system + hook_for :system_tests, as: :system hook_for :assets do |assets| invoke assets, [controller_name] diff --git a/railties/lib/rails/generators/rails/system_test/system_test_generator.rb b/railties/lib/rails/generators/rails/system_test/system_test_generator.rb index 35bc168898..901120e892 100644 --- a/railties/lib/rails/generators/rails/system_test/system_test_generator.rb +++ b/railties/lib/rails/generators/rails/system_test/system_test_generator.rb @@ -1,7 +1,7 @@ module Rails module Generators class SystemTestGenerator < NamedBase # :nodoc: - hook_for :system_tool, as: :system + hook_for :system_tests, as: :system end end end diff --git a/railties/lib/rails/generators/test_unit/system/system_generator.rb b/railties/lib/rails/generators/test_unit/system/system_generator.rb index a05f0f924d..e77ccef009 100644 --- a/railties/lib/rails/generators/test_unit/system/system_generator.rb +++ b/railties/lib/rails/generators/test_unit/system/system_generator.rb @@ -6,7 +6,11 @@ module TestUnit # :nodoc: check_class_collision suffix: "Test" def create_test_files - template "system_test.rb", File.join("test/system", class_path, "#{file_name.pluralize}_test.rb") + if !File.exist?(File.join("test/system_test_helper.rb")) + template "system_test_helper.rb", File.join("test", "system_test_helper.rb") + end + + template "system_test.rb", File.join("test/system", "#{file_name.pluralize}_test.rb") end end end diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb index a74e0bb23d..bc3abd25d9 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "system_test_helper" class <%= class_name.pluralize %>Test < ActionSystemTestCase # test 'the truth' do diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb new file mode 100644 index 0000000000..77c4738d6f --- /dev/null +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb @@ -0,0 +1,8 @@ +require "test_helper" + +class ActionSystemTestCase < ActionSystemTest::Base + teardown do + take_failed_screenshot + Capybara.reset_sessions! + end +end diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb index 68fc317a60..98bfddb197 100644 --- a/railties/lib/rails/test_help.rb +++ b/railties/lib/rails/test_help.rb @@ -46,7 +46,7 @@ class ActionDispatch::IntegrationTest end end -class ActionSystemTestCase +class ActionSystemTest::Base def before_setup # :nodoc: @routes = Rails.application.routes super diff --git a/railties/lib/rails/test_unit/railtie.rb b/railties/lib/rails/test_unit/railtie.rb index 694c8d92b1..9cc3f73a9c 100644 --- a/railties/lib/rails/test_unit/railtie.rb +++ b/railties/lib/rails/test_unit/railtie.rb @@ -11,7 +11,7 @@ module Rails fixture_replacement: nil c.integration_tool :test_unit - c.system_tool :test_unit + c.system_tests :test_unit end initializer "test_unit.line_filtering" do @@ -20,18 +20,6 @@ module Rails } end - config.system_testing = ActiveSupport::OrderedOptions.new - - initializer "system_testing.set_configs" do |app| - ActiveSupport.on_load(:active_support_test_case) do - require "action_system_test" - - options = app.config.system_testing - options.driver ||= ActionSystemTest.default_driver - options.each { |k, v| ActionSystemTest.send("#{k}=", v) } - end - end - rake_tasks do load "rails/test_unit/testing.rake" end -- cgit v1.2.3 From 1a0ca84a064b07ecab798793a3d7ebe89bb6367c Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sun, 19 Feb 2017 11:50:42 -0500 Subject: Move and rename system tests * Move system tests back into Action Pack * Rename `ActionSystemTest` to `ActionDispatch::SystemTestCase` * Remove private base module and only make file for public `SystemTestCase` class, name private module `SystemTesting` * Rename `ActionSystemTestCase` to `ApplicationSystemTestCase` * Update corresponding documentation and guides * Delete old `ActionSystemTest` files --- .../generators/rails/app/templates/test/system_test_helper.rb | 2 +- .../generators/rails/plugin/templates/test/system_test_helper.rb | 2 +- .../rails/generators/test_unit/system/templates/system_test.rb | 8 +++++--- .../generators/test_unit/system/templates/system_test_helper.rb | 2 +- railties/lib/rails/test_help.rb | 4 ++-- railties/railties.gemspec | 1 - railties/test/generators/scaffold_generator_test.rb | 2 +- railties/test/generators/system_test_generator_test.rb | 2 +- 8 files changed, 12 insertions(+), 11 deletions(-) (limited to 'railties') diff --git a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb index 77c4738d6f..1d0ae787f7 100644 --- a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb +++ b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb @@ -1,6 +1,6 @@ require "test_helper" -class ActionSystemTestCase < ActionSystemTest::Base +class ApplicationSystemTestCase < ActionDispatch::SystemTestCase teardown do take_failed_screenshot Capybara.reset_sessions! diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb index 77c4738d6f..1d0ae787f7 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb @@ -1,6 +1,6 @@ require "test_helper" -class ActionSystemTestCase < ActionSystemTest::Base +class ApplicationSystemTestCase < ActionDispatch::SystemTestCase teardown do take_failed_screenshot Capybara.reset_sessions! diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb index bc3abd25d9..2afc7a4aac 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb @@ -1,7 +1,9 @@ require "system_test_helper" -class <%= class_name.pluralize %>Test < ActionSystemTestCase - # test 'the truth' do - # assert true +class <%= class_name.pluralize %>Test < ApplicationSystemTestCase + # test "visiting the index" do + # visit <%= plural_table_name %>_url + # + # assert_selector "h1", text: "<%= class_name %>" # end end diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb index 77c4738d6f..1d0ae787f7 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb @@ -1,6 +1,6 @@ require "test_helper" -class ActionSystemTestCase < ActionSystemTest::Base +class ApplicationSystemTestCase < ActionDispatch::SystemTestCase teardown do take_failed_screenshot Capybara.reset_sessions! diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb index 98bfddb197..75171f2395 100644 --- a/railties/lib/rails/test_help.rb +++ b/railties/lib/rails/test_help.rb @@ -7,7 +7,7 @@ require "active_support/test_case" require "action_controller" require "action_controller/test_case" require "action_dispatch/testing/integration" -require "action_system_test" +require "action_dispatch/system_test_case" require "rails/generators/test_case" require "active_support/testing/autorun" @@ -46,7 +46,7 @@ class ActionDispatch::IntegrationTest end end -class ActionSystemTest::Base +class ActionDispatch::SystemTestCase def before_setup # :nodoc: @routes = Rails.application.routes super diff --git a/railties/railties.gemspec b/railties/railties.gemspec index fb8e666f40..76de2b4639 100644 --- a/railties/railties.gemspec +++ b/railties/railties.gemspec @@ -25,7 +25,6 @@ Gem::Specification.new do |s| s.add_dependency "activesupport", version s.add_dependency "actionpack", version - s.add_dependency "actionsystemtest", version s.add_dependency "rake", ">= 0.8.7" s.add_dependency "thor", ">= 0.18.1", "< 2.0" diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb index 43b8ce99ed..436fbd5d73 100644 --- a/railties/test/generators/scaffold_generator_test.rb +++ b/railties/test/generators/scaffold_generator_test.rb @@ -64,7 +64,7 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase # System tests assert_file "test/system/product_lines_test.rb" do |test| - assert_match(/class ProductLinesTest < ActionSystemTestCase/, test) + assert_match(/class ProductLinesTest < ApplicationSystemTestCase/, test) end # Views diff --git a/railties/test/generators/system_test_generator_test.rb b/railties/test/generators/system_test_generator_test.rb index b6cf75b586..e8e561ec49 100644 --- a/railties/test/generators/system_test_generator_test.rb +++ b/railties/test/generators/system_test_generator_test.rb @@ -7,6 +7,6 @@ class SystemTestGeneratorTest < Rails::Generators::TestCase def test_system_test_skeleton_is_created run_generator - assert_file "test/system/users_test.rb", /class UsersTest < ActionSystemTestCase/ + assert_file "test/system/users_test.rb", /class UsersTest < ApplicationSystemTestCase/ end end -- cgit v1.2.3 From dbb60ff588f770d01b4b4ebc3905ff305c92ddd1 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sun, 19 Feb 2017 11:54:17 -0500 Subject: Add default configuration to generated system test helper This serves as self documentation so users know how to change the driver. --- .../lib/rails/generators/rails/app/templates/test/system_test_helper.rb | 2 ++ .../rails/generators/rails/plugin/templates/test/system_test_helper.rb | 2 ++ .../rails/generators/test_unit/system/templates/system_test_helper.rb | 2 ++ 3 files changed, 6 insertions(+) (limited to 'railties') diff --git a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb index 1d0ae787f7..440689b503 100644 --- a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb +++ b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb @@ -1,6 +1,8 @@ require "test_helper" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase + driven_by :selenium, using: :chrome, screen_size: [1400, 1400] + teardown do take_failed_screenshot Capybara.reset_sessions! diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb index 1d0ae787f7..440689b503 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb @@ -1,6 +1,8 @@ require "test_helper" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase + driven_by :selenium, using: :chrome, screen_size: [1400, 1400] + teardown do take_failed_screenshot Capybara.reset_sessions! diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb index 1d0ae787f7..440689b503 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb @@ -1,6 +1,8 @@ require "test_helper" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase + driven_by :selenium, using: :chrome, screen_size: [1400, 1400] + teardown do take_failed_screenshot Capybara.reset_sessions! -- cgit v1.2.3 From 161cf89e134267f9b579f493ca19b12c30d5fd36 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Sun, 19 Feb 2017 17:49:21 -0500 Subject: Fix default host in setup, move teardown to helper file * Override integration test default host Integration tests automatically set the default host to 'http://example.com'. This works fine for integration tests because they are not real browser sessions, but doesn't work fine for system tests because they are real browser sessions. We can override this by setting the `host!` in `before_setup. The `Capybara.always_include_port` will allow the test to look at `127.0.0.1:port capybara picks` and properly redirect the test. Any application can override this by setting the `host!` in their system test helper. Generally though, applications are going to be using localhost. In this commit I also moved the setup and teardown into their own module for tidiness. * Move teardown settings into system test case These configuration options can be put into the system test case file instead of the generated system tests helper file. This is an implementation detail and therefore shouldn't be generated with the template. --- .../rails/generators/rails/app/templates/test/system_test_helper.rb | 5 ----- .../generators/rails/plugin/templates/test/system_test_helper.rb | 5 ----- .../generators/test_unit/system/templates/system_test_helper.rb | 5 ----- 3 files changed, 15 deletions(-) (limited to 'railties') diff --git a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb index 440689b503..d19212abd5 100644 --- a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb +++ b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb @@ -2,9 +2,4 @@ require "test_helper" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase driven_by :selenium, using: :chrome, screen_size: [1400, 1400] - - teardown do - take_failed_screenshot - Capybara.reset_sessions! - end end diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb index 440689b503..d19212abd5 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb @@ -2,9 +2,4 @@ require "test_helper" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase driven_by :selenium, using: :chrome, screen_size: [1400, 1400] - - teardown do - take_failed_screenshot - Capybara.reset_sessions! - end end diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb index 440689b503..d19212abd5 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb @@ -2,9 +2,4 @@ require "test_helper" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase driven_by :selenium, using: :chrome, screen_size: [1400, 1400] - - teardown do - take_failed_screenshot - Capybara.reset_sessions! - end end -- cgit v1.2.3 From 2d61c5d846f8dd3a02080fedce7ab63b8d314db6 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Mon, 20 Feb 2017 14:38:46 -0500 Subject: Rename system_test_helper -> application_system_test_case This renames the system test helper file to be application system test case to match what the rest of Rails does. In the future we should consider changing the test_helper to match. --- railties/lib/rails/generators/rails/app/app_generator.rb | 2 +- .../rails/app/templates/test/application_system_test_case.rb | 5 +++++ .../rails/generators/rails/app/templates/test/system_test_helper.rb | 5 ----- .../rails/plugin/templates/test/application_system_test_case.rb | 5 +++++ .../generators/rails/plugin/templates/test/system_test_helper.rb | 5 ----- railties/lib/rails/generators/test_unit/system/system_generator.rb | 4 ++-- .../test_unit/system/templates/application_system_test_case.rb | 5 +++++ .../lib/rails/generators/test_unit/system/templates/system_test.rb | 2 +- .../generators/test_unit/system/templates/system_test_helper.rb | 5 ----- 9 files changed, 19 insertions(+), 19 deletions(-) create mode 100644 railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb delete mode 100644 railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb create mode 100644 railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb delete mode 100644 railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb create mode 100644 railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb delete mode 100644 railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb (limited to 'railties') diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index acdb66ca85..18e48c8016 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -153,7 +153,7 @@ module Rails def system_test empty_directory_with_keep_file "test/system" - template "test/system_test_helper.rb" + template "test/application_system_test_case.rb" end def tmp diff --git a/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb b/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb new file mode 100644 index 0000000000..d19212abd5 --- /dev/null +++ b/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb @@ -0,0 +1,5 @@ +require "test_helper" + +class ApplicationSystemTestCase < ActionDispatch::SystemTestCase + driven_by :selenium, using: :chrome, screen_size: [1400, 1400] +end diff --git a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb deleted file mode 100644 index d19212abd5..0000000000 --- a/railties/lib/rails/generators/rails/app/templates/test/system_test_helper.rb +++ /dev/null @@ -1,5 +0,0 @@ -require "test_helper" - -class ApplicationSystemTestCase < ActionDispatch::SystemTestCase - driven_by :selenium, using: :chrome, screen_size: [1400, 1400] -end diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb b/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb new file mode 100644 index 0000000000..d19212abd5 --- /dev/null +++ b/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb @@ -0,0 +1,5 @@ +require "test_helper" + +class ApplicationSystemTestCase < ActionDispatch::SystemTestCase + driven_by :selenium, using: :chrome, screen_size: [1400, 1400] +end diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb b/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb deleted file mode 100644 index d19212abd5..0000000000 --- a/railties/lib/rails/generators/rails/plugin/templates/test/system_test_helper.rb +++ /dev/null @@ -1,5 +0,0 @@ -require "test_helper" - -class ApplicationSystemTestCase < ActionDispatch::SystemTestCase - driven_by :selenium, using: :chrome, screen_size: [1400, 1400] -end diff --git a/railties/lib/rails/generators/test_unit/system/system_generator.rb b/railties/lib/rails/generators/test_unit/system/system_generator.rb index e77ccef009..aec415a4e5 100644 --- a/railties/lib/rails/generators/test_unit/system/system_generator.rb +++ b/railties/lib/rails/generators/test_unit/system/system_generator.rb @@ -6,8 +6,8 @@ module TestUnit # :nodoc: check_class_collision suffix: "Test" def create_test_files - if !File.exist?(File.join("test/system_test_helper.rb")) - template "system_test_helper.rb", File.join("test", "system_test_helper.rb") + if !File.exist?(File.join("test/application_system_test_case.rb")) + template "application_system_test_case.rb", File.join("test", "application_system_test_case.rb") end template "system_test.rb", File.join("test/system", "#{file_name.pluralize}_test.rb") diff --git a/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb b/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb new file mode 100644 index 0000000000..d19212abd5 --- /dev/null +++ b/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb @@ -0,0 +1,5 @@ +require "test_helper" + +class ApplicationSystemTestCase < ActionDispatch::SystemTestCase + driven_by :selenium, using: :chrome, screen_size: [1400, 1400] +end diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb index 2afc7a4aac..b5ce2ba5c8 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb @@ -1,4 +1,4 @@ -require "system_test_helper" +require "application_system_test_case" class <%= class_name.pluralize %>Test < ApplicationSystemTestCase # test "visiting the index" do diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb deleted file mode 100644 index d19212abd5..0000000000 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test_helper.rb +++ /dev/null @@ -1,5 +0,0 @@ -require "test_helper" - -class ApplicationSystemTestCase < ActionDispatch::SystemTestCase - driven_by :selenium, using: :chrome, screen_size: [1400, 1400] -end -- cgit v1.2.3