From c744439631f6ed02e17e3f53c27cd64b22a65256 Mon Sep 17 00:00:00 2001 From: Breno Gazzola Date: Fri, 4 Mar 2022 14:43:29 -0300 Subject: [PATCH] Do not remove assets initializer when using propshaft --- railties/lib/rails/generators/app_base.rb | 4 ++++ .../rails/generators/rails/app/app_generator.rb | 9 ++++++--- railties/test/generators/app_generator_test.rb | 16 +++++++++++++++- .../test/generators/plugin_generator_test.rb | 2 +- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index f65d4b3960..78653fb50d 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -239,6 +239,10 @@ def skip_sprockets? options[:skip_asset_pipeline] || options[:asset_pipeline] != "sprockets" end + def skip_propshaft? + options[:skip_asset_pipeline] || options[:asset_pipeline] != "propshaft" + end + class GemfileEntry < Struct.new(:name, :version, :comment, :options, :commented_out) def initialize(name, version, comment, options = {}, commented_out = false) diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index abc4afb946..0a6d3e5647 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -135,7 +135,7 @@ def config_when_updating template "config/storage.yml" end - if skip_sprockets? && !assets_config_exist + if skip_sprockets? && skip_propshaft? && !assets_config_exist remove_file "config/initializers/assets.rb" end @@ -436,9 +436,12 @@ def delete_public_files_if_api_option end end - def delete_assets_initializer_skipping_sprockets - if skip_sprockets? + def delete_assets_initializer_skipping_sprockets_and_propshaft + if skip_sprockets? && skip_propshaft? remove_file "config/initializers/assets.rb" + end + + if skip_sprockets? remove_file "app/assets/config/manifest.js" remove_dir "app/assets/config" remove_file "app/assets/stylesheets/application.css" diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 257b1c1dca..61d2108f26 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -230,7 +230,7 @@ def test_app_update_does_not_remove_rack_cors_if_already_present end end - def test_app_update_does_not_generate_assets_initializer_when_sprockets_is_not_used + def test_app_update_does_not_generate_assets_initializer_when_sprockets_and_propshaft_are_not_used app_root = File.join(destination_root, "myapp") run_generator [app_root, "-a", "none"] @@ -244,6 +244,20 @@ def test_app_update_does_not_generate_assets_initializer_when_sprockets_is_not_u end end + def test_app_update_does_not_generate_manifest_config_when_propshaft_is_used + app_root = File.join(destination_root, "myapp") + run_generator [app_root, "-a", "propshaft"] + + stub_rails_application(app_root) do + generator = Rails::Generators::AppGenerator.new ["rails"], { update: true, asset_pipeline: "propshaft" }, { destination_root: app_root, shell: @shell } + generator.send(:app_const) + quietly { generator.update_config_files } + + assert_file "#{app_root}/config/initializers/assets.rb" + assert_no_file "#{app_root}/app/assets/config/manifest.js" + end + end + def test_app_update_does_not_generate_action_cable_contents_when_skip_action_cable_is_given app_root = File.join(destination_root, "myapp") run_generator [app_root, "--skip-action-cable"] diff --git a/railties/test/generators/plugin_generator_test.rb b/railties/test/generators/plugin_generator_test.rb index 18dbf0f2f9..8f937275af 100644 --- a/railties/test/generators/plugin_generator_test.rb +++ b/railties/test/generators/plugin_generator_test.rb @@ -666,7 +666,7 @@ def test_dummy_application_respects_asset_pipeline_gem_choice assert_gem "propshaft" assert_no_gem "sprockets-rails" - assert_no_file "test/dummy/config/initializers/assets.rb" + assert_file "test/dummy/config/initializers/assets.rb" assert_file "test/dummy/config/environments/development.rb" do |content| assert_no_match "config.assets", content end