rails/railties/test/application
David Heinemeier Hansson 4838c1716a
Make Webpacker the default JavaScript compiler for Rails 6 (#33079)
* Use Webpacker by default on new apps

* Stop including coffee-rails by default

* Drop using a js_compressor by default

* Drop extra test for coffeescript inclusion by default

* Stick with skip_javascript to signify skipping webpack

* Don't install a JS runtime by default any more

* app/javascript will be the new default directory for JS

* Make it clear that this is just for configuring the default Webpack framework setup now

* Start using the Webpack tag in the default layout

* Irrelevant test

* jQuery is long gone

* Stop having asset pipeline compile default application.js

* Add rails-ujs by default to the Webpack setup

* Add Active Storage JavaScript to application.js pack by default

* Consistent quoting

* Add Turbolinks to default pack

* Add Action Cable to default pack

Need some work on how to set the global consumer that channels will
work with. @javan?

* Require all channels by default and use a separate consumer stub

* Channel generator now targets Webpack style

* Update task docs to match new generator style

* Use uniform import style

* Drop the JS assets generator

It was barely helpful as it was. It’s no longer helpful in a Webpacked
world. Sayonara!

* Add app/javascript to the stats directories

* Simpler import style

Which match the other imports.

* Address test failures from dropping JS compilation (and compression)

* webpacker-default: Modify `AssetsGeneratorTest`

Before:

```
$ bin/test test/generators/assets_generator_test.rb
Run options: --seed 46201

F

Failure:
AssetsGeneratorTest#test_assets [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/assets_generator_test.rb:12]:
Expected file "app/assets/javascripts/posts.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/assets_generator_test.rb:10

.

Finished in 0.031343s, 63.8101 runs/s, 95.7152 assertions/s.
2 runs, 3 assertions, 1 failures, 0 errors, 0 skips
```

After:

```
$ bin/test test/generators/assets_generator_test.rb
Run options: --seed 43571

..

Finished in 0.030370s, 65.8545 runs/s, 65.8545 assertions/s.
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
```

* webpacker-default: Modify `ChannelGeneratorTest`

Before:

```
$ bin/test test/generators/channel_generator_test.rb
Run options: --seed 8986

.F

Failure:
ChannelGeneratorTest#test_channel_with_multiple_actions_is_created [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:43]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:34

.F

Failure:
ChannelGeneratorTest#test_channel_is_created [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:29]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:22

E

Error:
ChannelGeneratorTest#test_cable_js_is_created_if_not_present_already:
Errno::ENOENT: No such file or directory @ apply2files - /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/fixtures/tmp/app/assets/javascripts/cable.js

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:60

F

Failure:
ChannelGeneratorTest#test_channel_suffix_is_not_duplicated [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:87]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:80

F

Failure:
ChannelGeneratorTest#test_channel_on_revoke [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:77]:
Expected file "app/assets/javascripts/cable.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:68

Finished in 0.064384s, 108.7227 runs/s, 481.4861 assertions/s.
7 runs, 31 assertions, 4 failures, 1 errors, 0 skips
```

After:

```
$ bin/test test/generators/channel_generator_test.rb
Run options: --seed 44857

.......

Finished in 0.060243s, 116.1961 runs/s, 697.1764 assertions/s.
7 runs, 42 assertions, 0 failures, 0 errors, 0 skips
```

* Fix shared generator tests.

* webpacker-default: Modify `ControllerGeneratorTest`

The JS assets generator was dropped. ref. 46215b1794

* Revert "Simpler import style". It's currently failing with an error of "TypeError: undefined is not an object (evaluating '__WEBPACK_IMPORTED_MODULE_2_activestorage___default.a.start')". Waiting for @javan to have a look.

This reverts commit 5d3ebb71059f635d3756cbda4ab9752027e09256.

* require webpacker in test app

* Add webpacker without making the build hang/timeout. (#33640)

* use yarn workspaces to allow for installing unreleased packages and only generate js/bootsnap when required

* no longer need to have webpacker in env templates as webpacker moved this config to yml file

* Fix rubocop violation

* Got the test passing for the running scaffold

* update expected lines of code

* update middleware tests to account for webpacker

* disable js in plugins be default to get the tests passing (#34009)

* clear codeclimate report issues

* Anything newer than currently released is good

* Use Webpacker development version during development of Rails

* Edge should get development webpacker as well

* Add changelog entry for Webpacker change
2018-09-30 22:31:21 -07:00
..
configuration Use respond_to test helpers 2018-01-25 23:32:58 -05:00
initializers Replace assert ! with assert_not 2018-04-19 08:11:33 -04:00
middleware Purpose Metadata For Signed And Encrypted Cookies 2018-08-12 21:50:35 +05:30
rack Log the remote IP addr of clients behind a proxy 2018-07-31 20:45:37 +05:30
rake Make sure this test check the issue solved in #31135 2018-09-22 00:46:44 -04:00
asset_debugging_test.rb Pass the skip_pipeline option in image_submit_tag 2018-03-14 11:18:06 +00:00
assets_test.rb Make Webpacker the default JavaScript compiler for Rails 6 (#33079) 2018-09-30 22:31:21 -07:00
bin_setup_test.rb Remove unnecessary migration deletion 2017-11-08 13:24:16 +09:00
configuration_test.rb Eagerly define attribute methods in production 2018-09-24 03:20:35 +01:00
console_test.rb Remove all references to slave in the codebase 2018-09-10 16:31:32 -04:00
content_security_policy_test.rb Remove trailing semi-colon from CSP 2018-02-19 12:20:43 +00:00
current_attributes_integration_test.rb Don't need the layout here 2017-09-04 05:44:45 +09:30
dbconsole_test.rb Use correct variable 2018-09-11 07:06:30 +09:00
generators_test.rb Do not show credentials in generators help 2017-11-09 20:59:16 +09:00
help_test.rb Run in-app rails commands via fork+load where possible 2017-09-04 20:19:39 +09:30
integration_test_case_test.rb rails new runs rails active_storage:install 2017-11-06 21:29:14 +00:00
loading_test.rb Add a test that exercice better the behavior we expect in the query cache 2018-09-12 20:57:52 -04:00
mailer_previews_test.rb Use assert_predicate and assert_not_predicate 2018-01-25 23:32:59 -05:00
middleware_test.rb Make Webpacker the default JavaScript compiler for Rails 6 (#33079) 2018-09-30 22:31:21 -07:00
multiple_applications_test.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
paths_test.rb Fix CustomCops/AssertNot to allow it to have failure message 2018-05-13 11:32:47 +09:00
per_request_digest_cache_test.rb Include ActiveSupport::Testing::MethodCallAssertions in railties/test/isolation/abstract_unit.rb 2018-06-09 00:00:28 +03:00
rackup_test.rb Remove unnecessary migration deletion 2017-11-08 13:24:16 +09:00
rake_test.rb Make Webpacker the default JavaScript compiler for Rails 6 (#33079) 2018-09-30 22:31:21 -07:00
rendering_test.rb Fix RenderingTest in railtie 2018-04-04 06:12:24 +09:00
routing_test.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
runner_test.rb Use assert_predicate and assert_not_predicate 2018-01-25 23:32:59 -05:00
server_test.rb Remove all references to slave in the codebase 2018-09-10 16:31:32 -04:00
test_runner_test.rb Ensure that running tests in parallel doesn't display schema load output 2018-08-08 16:20:38 +03:00
test_test.rb Add test parallelization to Rails 2018-02-15 19:21:24 -05:00
url_generation_test.rb Add credentials using a generic EncryptedConfiguration class (#30067) 2017-09-11 20:21:20 +02:00
version_test.rb Run in-app rails commands via fork+load where possible 2017-09-04 20:19:39 +09:30