diff options
| author | Rafael França <rafaelmfranca@gmail.com> | 2017-08-10 13:14:40 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-10 13:14:40 -0400 | 
| commit | 3ffc77a9fb7902acacc600a897fda3107f2ff303 (patch) | |
| tree | 58e34fbfd0ed0a6d734a9070f568d4845c423169 | |
| parent | 0e109b18887403c4285cba70e3b4d38903393464 (diff) | |
| parent | 8cc5a6e180f141d9ef3db3dddcad969f1bca9ec7 (diff) | |
| download | rails-3ffc77a9fb7902acacc600a897fda3107f2ff303.tar.gz rails-3ffc77a9fb7902acacc600a897fda3107f2ff303.tar.bz2 rails-3ffc77a9fb7902acacc600a897fda3107f2ff303.zip  | |
Merge pull request #30164 from bogdanvlviv/improve-railties-generators-tests
Improve railties generators tests
| -rw-r--r-- | railties/CHANGELOG.md | 4 | ||||
| -rw-r--r-- | railties/lib/rails/generators/rails/plugin/plugin_generator.rb | 2 | ||||
| -rw-r--r-- | railties/test/generators/app_generator_test.rb | 62 | ||||
| -rw-r--r-- | railties/test/generators/plugin_generator_test.rb | 62 | 
4 files changed, 85 insertions, 45 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 73793be78c..f9d6258b22 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -1,3 +1,7 @@ +*   Add `--skip-action-cable` option to the plugin generator. + +    *bogdanvlviv* +  *   Deprecate support of use `Rails::Application` subclass to start Rails server.      *Yuji Yaginuma* diff --git a/railties/lib/rails/generators/rails/plugin/plugin_generator.rb b/railties/lib/rails/generators/rails/plugin/plugin_generator.rb index 61c54b4222..dc1492a2d7 100644 --- a/railties/lib/rails/generators/rails/plugin/plugin_generator.rb +++ b/railties/lib/rails/generators/rails/plugin/plugin_generator.rb @@ -86,7 +86,7 @@ task default: :test      end      PASSTHROUGH_OPTIONS = [ -      :skip_active_record, :skip_action_mailer, :skip_javascript, :skip_sprockets, :database, +      :skip_active_record, :skip_action_mailer, :skip_javascript, :skip_action_cable, :skip_sprockets, :database,        :javascript, :quiet, :pretend, :force, :skip      ] diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 44c4688aa4..0070527c7b 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -394,6 +394,15 @@ class AppGeneratorTest < Rails::Generators::TestCase      end    end +  def test_default_frameworks_are_required_when_others_are_removed +    run_generator [destination_root, "--skip-active-record", "--skip-action-mailer", "--skip-action-cable", "--skip-sprockets"] +    assert_file "config/application.rb", /require\s+["']rails["']/ +    assert_file "config/application.rb", /require\s+["']active_model\/railtie["']/ +    assert_file "config/application.rb", /require\s+["']active_job\/railtie["']/ +    assert_file "config/application.rb", /require\s+["']action_controller\/railtie["']/ +    assert_file "config/application.rb", /require\s+["']action_view\/railtie["']/ +  end +    def test_generator_defaults_to_puma_version      run_generator [destination_root]      assert_gem "puma", "'~> 3.7'" @@ -449,22 +458,26 @@ class AppGeneratorTest < Rails::Generators::TestCase    def test_generator_if_skip_sprockets_is_given      run_generator [destination_root, "--skip-sprockets"] +      assert_no_file "config/initializers/assets.rb" -    assert_file "config/application.rb" do |content| -      assert_match(/#\s+require\s+["']sprockets\/railtie["']/, content) -    end + +    assert_file "config/application.rb", /#\s+require\s+["']sprockets\/railtie["']/ +      assert_file "Gemfile" do |content|        assert_no_match(/sass-rails/, content)        assert_no_match(/uglifier/, content)        assert_no_match(/coffee-rails/, content)      end +      assert_file "config/environments/development.rb" do |content| -      assert_no_match(/config\.assets\.debug = true/, content) +      assert_no_match(/config\.assets\.debug/, content)      end +      assert_file "config/environments/production.rb" do |content| -      assert_no_match(/config\.assets\.digest = true/, content) -      assert_no_match(/config\.assets\.js_compressor = :uglifier/, content) -      assert_no_match(/config\.assets\.css_compressor = :sass/, content) +      assert_no_match(/config\.assets\.digest/, content) +      assert_no_match(/config\.assets\.js_compressor/, content) +      assert_no_match(/config\.assets\.css_compressor/, content) +      assert_no_match(/config\.assets\.compile/, content)      end    end @@ -473,7 +486,7 @@ class AppGeneratorTest < Rails::Generators::TestCase      assert_file "config/application.rb", /#\s+require\s+["']action_cable\/engine["']/      assert_no_file "config/cable.yml"      assert_no_file "app/assets/javascripts/cable.js" -    assert_no_file "app/channels" +    assert_no_directory "app/channels"      assert_file "Gemfile" do |content|        assert_no_match(/redis/, content)      end @@ -486,10 +499,15 @@ class AppGeneratorTest < Rails::Generators::TestCase    def test_generator_if_skip_test_is_given      run_generator [destination_root, "--skip-test"] + +    assert_file "config/application.rb", /#\s+require\s+["']rails\/test_unit\/railtie["']/ +      assert_file "Gemfile" do |content|        assert_no_match(/capybara/, content)        assert_no_match(/selenium-webdriver/, content)      end + +    assert_no_directory("test")    end    def test_generator_if_skip_system_test_is_given @@ -498,6 +516,10 @@ class AppGeneratorTest < Rails::Generators::TestCase        assert_no_match(/capybara/, content)        assert_no_match(/selenium-webdriver/, content)      end + +    assert_directory("test") + +    assert_no_directory("test/system")    end    def test_does_not_generate_system_test_files_if_skip_system_test_is_given @@ -654,18 +676,6 @@ class AppGeneratorTest < Rails::Generators::TestCase      assert_file "lib/test_file.rb", "heres test data"    end -  def test_tests_are_removed_from_frameworks_if_skip_test_is_given -    run_generator [destination_root, "--skip-test"] -    assert_file "config/application.rb", /#\s+require\s+["']rails\/test_unit\/railtie["']/ -  end - -  def test_no_active_record_or_tests_if_skips_given -    run_generator [destination_root, "--skip-test", "--skip-active-record"] -    assert_file "config/application.rb", /#\s+require\s+["']rails\/test_unit\/railtie["']/ -    assert_file "config/application.rb", /#\s+require\s+["']active_record\/railtie["']/ -    assert_file "config/application.rb", /\s+require\s+["']active_job\/railtie["']/ -  end -    def test_pretend_option      output = run_generator [File.join(destination_root, "myapp"), "--pretend"]      assert_no_match(/run  bundle install/, output) @@ -896,18 +906,6 @@ class AppGeneratorTest < Rails::Generators::TestCase      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 diff --git a/railties/test/generators/plugin_generator_test.rb b/railties/test/generators/plugin_generator_test.rb index be761e9f65..cf581ce891 100644 --- a/railties/test/generators/plugin_generator_test.rb +++ b/railties/test/generators/plugin_generator_test.rb @@ -97,7 +97,7 @@ class PluginGeneratorTest < Rails::Generators::TestCase      run_generator [destination_root, "-T", "--full"]      assert_no_directory "test/integration/" -    assert_no_file "test" +    assert_no_directory "test"      assert_file "Rakefile" do |contents|        assert_no_match(/APP_RAKEFILE/, contents)      end @@ -106,11 +106,28 @@ class PluginGeneratorTest < Rails::Generators::TestCase      end    end -  def test_generating_adds_dummy_app_in_full_mode_without_sprockets -    run_generator [destination_root, "-S", "--full"] +  def test_generating_adds_dummy_app_without_sprockets +    run_generator [destination_root, "--skip-sprockets"] -    assert_file "test/dummy/config/environments/production.rb" do |contents| -      assert_no_match(/config\.assets/, contents) +    assert_no_file "test/dummy/config/initializers/assets.rb" + +    assert_file "test/dummy/config/application.rb", /#\s+require\s+["']sprockets\/railtie["']/ + +    assert_file "Gemfile" do |content| +      assert_no_match(/sass-rails/, content) +      assert_no_match(/uglifier/, content) +      assert_no_match(/coffee-rails/, content) +    end + +    assert_file "test/dummy/config/environments/development.rb" do |content| +      assert_no_match(/config\.assets\.debug/, content) +    end + +    assert_file "test/dummy/config/environments/production.rb" do |content| +      assert_no_match(/config\.assets\.digest/, content) +      assert_no_match(/config\.assets\.js_compressor/, content) +      assert_no_match(/config\.assets\.css_compressor/, content) +      assert_no_match(/config\.assets\.compile/, content)      end    end @@ -138,8 +155,8 @@ class PluginGeneratorTest < Rails::Generators::TestCase    def test_ensure_that_test_dummy_can_be_generated_from_a_template      FileUtils.cd(Rails.root)      run_generator([destination_root, "-m", "lib/create_test_dummy_template.rb", "--skip-test"]) -    assert_file "spec/dummy" -    assert_no_file "test" +    assert_directory "spec/dummy" +    assert_no_directory "test"    end    def test_database_entry_is_generated_for_sqlite3_by_default_in_full_mode @@ -173,9 +190,19 @@ class PluginGeneratorTest < Rails::Generators::TestCase      end      assert_file "test/dummy/config/environments/production.rb" do |content|        assert_match(/# config\.action_mailer\.raise_delivery_errors = false/, content) +      assert_match(/^  config\.read_encrypted_secrets = true/, content)      end    end +  def test_default_frameworks_are_required_when_others_are_removed +    run_generator [destination_root, "--skip-active-record", "--skip-action-mailer", "--skip-action-cable", "--skip-sprockets"] +    assert_file "test/dummy/config/application.rb", /require\s+["']rails["']/ +    assert_file "test/dummy/config/application.rb", /require\s+["']active_model\/railtie["']/ +    assert_file "test/dummy/config/application.rb", /require\s+["']active_job\/railtie["']/ +    assert_file "test/dummy/config/application.rb", /require\s+["']action_controller\/railtie["']/ +    assert_file "test/dummy/config/application.rb", /require\s+["']action_view\/railtie["']/ +  end +    def test_active_record_is_removed_from_frameworks_if_skip_active_record_is_given      run_generator [destination_root, "--skip-active-record"]      assert_file "test/dummy/config/application.rb", /#\s+require\s+["']active_record\/railtie["']/ @@ -201,6 +228,18 @@ class PluginGeneratorTest < Rails::Generators::TestCase      assert_file "test/dummy/config/environments/production.rb" do |content|        assert_no_match(/config\.action_mailer/, content)      end +    assert_no_directory "test/dummy/app/mailers" +  end + +  def test_action_cable_is_removed_from_frameworks_if_skip_action_cable_is_given +    run_generator [destination_root, "--skip-action-cable"] +    assert_file "test/dummy/config/application.rb", /#\s+require\s+["']action_cable\/engine["']/ +    assert_no_file "test/dummy/config/cable.yml" +    assert_no_file "test/dummy/app/assets/javascripts/cable.js" +    assert_no_directory "test/dummy/app/channels" +    assert_file "Gemfile" do |content| +      assert_no_match(/redis/, content) +    end    end    def test_ensure_that_database_option_is_passed_to_app_generator @@ -463,10 +502,9 @@ class PluginGeneratorTest < Rails::Generators::TestCase    def test_creating_dummy_without_tests_but_with_dummy_path      run_generator [destination_root, "--dummy_path", "spec/dummy", "--skip-test"] -    assert_file "spec/dummy" -    assert_file "spec/dummy/config/application.rb" -    assert_no_file "test" -    assert_no_file "test/test_helper.rb" +    assert_directory "spec/dummy" +    assert_file "spec/dummy/config/application.rb", /#\s+require\s+["']rails\/test_unit\/railtie["']/ +    assert_no_directory "test"      assert_file ".gitignore" do |contents|        assert_match(/spec\/dummy/, contents)      end @@ -503,7 +541,7 @@ class PluginGeneratorTest < Rails::Generators::TestCase    def test_skipping_test_files      run_generator [destination_root, "--skip-test"] -    assert_no_file "test" +    assert_no_directory "test"      assert_file ".gitignore" do |contents|        assert_no_match(/test\/dummy/, contents)      end  | 
