mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
af7428c4ac
* Turbolinks is being replaced with Hotwire * Make --webpack opt-in * Don't use specific webpacker installers any more in preparation for next Webpacker * Update railties/lib/rails/app_updater.rb Co-authored-by: Alex Ghiculescu <alex@tanda.co> * Trailing whitespace * Convert to Turbo data attribute for tracking * Default is no webpack, no hotwire * Swap out turbolinks references for hotwire * Drop explicit return * Only generate package.json if using webpack * Only create package.json in webpack mode * Only create app/javascript in webpack mode * Generate correct style/js links based on js mode * Fix tests from changed output format Not sure why these are showing up in this PR, though. * Rubocopping * Stick with webpack for the test app for now * Adjust tests * Replace minitest-reporters with minitest-ci (#43016) minitest-reporters is used to create junit xml reports on CI. But when it loads before rails minitest plugin makes `Rails::TestUnitReporter` not being added as a reporter. minitest-ci is now only loaded at ci and does not interferes with rails minitest plugins. And keeps junit reports workings * Too heavy handed to actually run bundle Just like we don't auto-migrate * Pin js frameworks in importmap Instead of having importmap preconfigure it. * Match updated app/javascript path * No need for the explaining comment * Fixes test cases for replace webpack with importmapped Hotwire as default js (#42999) * Fix rubocop issues * Fix more railities test cases * Fix plugin generator railties shared test cases * Fix Action Text install generator asset pipeline spec * They're modules, not files * Let dev use the latest release as well So we don't have to replace unexisting dev releases with latest release * Make Webpack responsible for generating all the JS files it needs Webpacker 6 has already moved from app/javascript to app/packs. * Don't add rails/ujs by default any longer All the ajax/form functionality has been superseded by Turbo. The rest lives in a weird inbetween land we need to address through other means. * Use new importmap location * Switch to using turbo-rails and stimulus-rails directly The hotwire-rails gem does not offer enough value for its indirection * Use latest Webpacker * Prevent version resolution requests from getting swallowed * Use ESM syntax for imports * Move management of yarn, package.json, etc to Webpacker 6 * Update for Webpacker 6 * Move bin/setup addition to Webpacker as well * Remove dead tests * Bump to Webpacker 6.0.0.rc.2 * No longer relevant given the new default is no webpacker * Rely on Webpacker 6 * No longer relevant * No longer relevant * Make cable channel generator work for both webpacker and importmap setups * Fix tests * For tests testing importmap way * Use Webpacker 6 dummy * RuboCopping * One more bump to fix webpack-dev-server * Another bump. Hopefully the last one! * Also enough to not want turbo tracking on * Fix tests * Latest * Fix tests * Fix more tests * Fix tests Co-authored-by: Alex Ghiculescu <alex@tanda.co> Co-authored-by: André Luis Leal Cardoso Junior <andrehjr@gmail.com> Co-authored-by: Abhay Nikam <nikam.abhay1@gmail.com> Co-authored-by: Guillermo Iguaran <guilleiguaran@gmail.com>
66 lines
2.1 KiB
Ruby
66 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "isolation/abstract_unit"
|
|
|
|
module ApplicationTests
|
|
class BinSetupTest < ActiveSupport::TestCase
|
|
include ActiveSupport::Testing::Isolation
|
|
|
|
setup :build_app
|
|
teardown :teardown_app
|
|
|
|
def test_bin_setup
|
|
Dir.chdir(app_path) do
|
|
rails "generate", "model", "article"
|
|
|
|
list_tables = lambda { rails("runner", "p ActiveRecord::Base.connection.tables").strip }
|
|
File.write("log/test.log", "zomg!")
|
|
|
|
assert_equal "[]", list_tables.call
|
|
assert_equal 5, File.size("log/test.log")
|
|
assert_not File.exist?("tmp/restart.txt")
|
|
|
|
`bin/setup 2>&1`
|
|
assert_equal 0, File.size("log/test.log")
|
|
assert_equal '["schema_migrations", "ar_internal_metadata", "articles"]', list_tables.call
|
|
assert File.exist?("tmp/restart.txt")
|
|
end
|
|
end
|
|
|
|
def test_bin_setup_output
|
|
Dir.chdir(app_path) do
|
|
# SQLite3 seems to auto-create the database on first checkout.
|
|
rails "db:system:change", "--to=postgresql"
|
|
rails "db:drop", allow_failure: true
|
|
|
|
app_file "db/schema.rb", ""
|
|
|
|
output = `bin/setup 2>&1`
|
|
|
|
# Ignore line that's only output by Bundler < 1.14
|
|
output.sub!(/^Resolving dependencies\.\.\.\n/, "")
|
|
# Suppress Bundler platform warnings from output
|
|
output.gsub!(/^The dependency .* will be unused .*\.\n/, "")
|
|
# Ignores dynamic data by yarn
|
|
output.sub!(/^yarn install v.*?$/, "yarn install")
|
|
output.sub!(/^\[.*?\] Resolving packages\.\.\.$/, "[1/4] Resolving packages...")
|
|
output.sub!(/^Done in \d+\.\d+s\.\n/, "Done in 0.00s.\n")
|
|
# Ignore warnings such as `Psych.safe_load is deprecated`
|
|
output.gsub!(/^warning:\s.*\n/, "")
|
|
|
|
assert_equal(<<~OUTPUT, output)
|
|
== Installing dependencies ==
|
|
The Gemfile's dependencies are satisfied
|
|
|
|
== Preparing database ==
|
|
Created database 'app_development'
|
|
Created database 'app_test'
|
|
|
|
== Removing old logs and tempfiles ==
|
|
|
|
== Restarting application server ==
|
|
OUTPUT
|
|
end
|
|
end
|
|
end
|
|
end
|