Update JavascriptPackageTest for Action Cable

Prior to this commit, if `app/javascript/action_cable/index.js`
contained a syntax error, `JavascriptPackageTest` would still pass
because `system "yarn build"` would simply return `false` and the
compiled output would not change.  This commit adds `exception: true` to
the `system` call so that an error will be raised if `yarn build` fails.

Also, since 4a23cb3415eac03d76623112576559a722d1f23d, Active Storage
compiles additional `app/assets/javascripts/actioncable.js` and
`app/assets/javascripts/actioncable.esm.js` files (with
`app/assets/javascripts/action_cable.js` being deprecated).  This commit
adds assertions for those files as well.
This commit is contained in:
Jonathan Hefner 2023-11-05 11:58:03 -06:00
parent 859cab5607
commit 8e213f72dd

@ -4,10 +4,16 @@
class JavascriptPackageTest < ActiveSupport::TestCase
def test_compiled_code_is_in_sync_with_source_code
compiled_file = File.expand_path("../app/assets/javascripts/action_cable.js", __dir__)
compiled_files = %w[
app/assets/javascripts/actioncable.js
app/assets/javascripts/actioncable.esm.js
app/assets/javascripts/action_cable.js
].map do |file|
Pathname(file).expand_path("#{__dir__}/..")
end
assert_no_changes -> { File.read(compiled_file) } do
system "yarn build"
assert_no_changes -> { compiled_files.map(&:read) } do
system "yarn build", exception: true
end
end
end