class ReactOnRails::TestHelper::EnsureAssetsCompiled
def call
3. For whatever reason, the watch processes are running, but some clean script removed
2. Only webpack watch process for server bundle as we're the hot reloading setup.
1. No webpack watch processes for static assets and files are missing or out of date.
Several Scenarios:
def call # Only check this ONCE during a test run return if self.class.has_been_run # Be sure we don't do this again. self.class.has_been_run = true ReactOnRails::Locales.compile stale_gen_files = webpack_assets_status_checker.stale_generated_webpack_files # All done if no stale files! return if stale_gen_files.empty? ReactOnRails::PacksGenerator.instance.generate_packs_if_stale if ReactOnRails.configuration.auto_load_bundle # Inform the developer that we're ensuring gen assets are ready. puts_start_compile_check_message(stale_gen_files) webpack_assets_compiler.compile_assets end
def initialize(webpack_assets_status_checker: nil,
def initialize(webpack_assets_status_checker: nil, webpack_assets_compiler: nil) @webpack_assets_status_checker = webpack_assets_status_checker @webpack_assets_compiler = webpack_assets_compiler end
def puts_start_compile_check_message(stale_files)
def puts_start_compile_check_message(stale_files) puts <<~MSG Detected the following stale generated files: #{stale_files.join("\n ")} React on Rails will ensure your JavaScript generated files are up to date, using your `#{ReactOnRails::Utils.prepend_cd_node_modules_directory(ReactOnRails.configuration.build_test_command)}` command. MSG end