shakapacker 6.5.5 → 6.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +11 -7
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
  4. data/.github/workflows/ruby.yml +3 -1
  5. data/.gitignore +3 -3
  6. data/.rspec +1 -0
  7. data/CHANGELOG.md +18 -2
  8. data/CONTRIBUTING.md +11 -1
  9. data/Gemfile.development_dependencies +3 -1
  10. data/README.md +41 -8
  11. data/Rakefile +4 -5
  12. data/gemfiles/Gemfile-rails-edge +1 -1
  13. data/gemfiles/Gemfile-rails.5.2.x +1 -1
  14. data/gemfiles/Gemfile-rails.6.0.x +1 -1
  15. data/gemfiles/Gemfile-rails.6.1.x +1 -1
  16. data/gemfiles/Gemfile-rails.7.0.x +1 -1
  17. data/lib/install/template.rb +21 -16
  18. data/lib/tasks/webpacker/compile.rake +5 -10
  19. data/lib/webpacker/helper.rb +20 -9
  20. data/lib/webpacker/version.rb +1 -1
  21. data/package/rules/__tests__/__utils__/webpack.js +50 -0
  22. data/package/rules/__tests__/babel.js +63 -0
  23. data/package/rules/__tests__/esbuild.js +64 -0
  24. data/package/rules/__tests__/index.js +0 -4
  25. data/package/rules/__tests__/swc.js +64 -0
  26. data/package/rules/babel.js +3 -14
  27. data/package/rules/esbuild.js +2 -13
  28. data/package/rules/jscommon.js +26 -0
  29. data/package/rules/swc.js +2 -13
  30. data/package/utils/helpers.js +1 -1
  31. data/package.json +8 -2
  32. data/spec/command_spec.rb +114 -0
  33. data/spec/compiler_spec.rb +57 -0
  34. data/spec/compiler_strategy_spec.rb +20 -0
  35. data/spec/configuration_spec.rb +281 -0
  36. data/{test/dev_server_runner_test.rb → spec/dev_server_runner_spec.rb} +30 -40
  37. data/spec/dev_server_spec.rb +45 -0
  38. data/spec/digest_strategy_spec.rb +33 -0
  39. data/{test/engine_rake_tasks_test.rb → spec/engine_rake_tasks_spec.rb} +17 -9
  40. data/spec/env_spec.rb +21 -0
  41. data/{test → spec}/fixtures/beta_package-lock.v1.json +0 -0
  42. data/{test → spec}/fixtures/beta_package-lock.v2.json +0 -0
  43. data/{test → spec}/fixtures/beta_package.json +0 -0
  44. data/{test → spec}/fixtures/beta_yarn.v1.lock +0 -0
  45. data/{test → spec}/fixtures/beta_yarn.v2.lock +0 -0
  46. data/{test → spec}/fixtures/git_url_package-lock.v1.json +0 -0
  47. data/{test → spec}/fixtures/git_url_package-lock.v2.json +0 -0
  48. data/{test → spec}/fixtures/git_url_package.json +0 -0
  49. data/{test → spec}/fixtures/git_url_yarn.v1.lock +0 -0
  50. data/{test → spec}/fixtures/git_url_yarn.v2.lock +0 -0
  51. data/{test → spec}/fixtures/github_url_package-lock.v1.json +0 -0
  52. data/{test → spec}/fixtures/github_url_package-lock.v2.json +0 -0
  53. data/{test → spec}/fixtures/github_url_package.json +0 -0
  54. data/{test → spec}/fixtures/github_url_yarn.v1.lock +0 -0
  55. data/{test → spec}/fixtures/github_url_yarn.v2.lock +0 -0
  56. data/{test → spec}/fixtures/relative_path_package-lock.v1.json +0 -0
  57. data/{test → spec}/fixtures/relative_path_package-lock.v2.json +0 -0
  58. data/{test → spec}/fixtures/relative_path_package.json +0 -0
  59. data/{test → spec}/fixtures/relative_path_yarn.v1.lock +0 -0
  60. data/{test → spec}/fixtures/relative_path_yarn.v2.lock +0 -0
  61. data/{test → spec}/fixtures/semver_caret_package-lock.v1.json +0 -0
  62. data/{test → spec}/fixtures/semver_caret_package-lock.v2.json +0 -0
  63. data/{test → spec}/fixtures/semver_caret_package.json +0 -0
  64. data/{test → spec}/fixtures/semver_caret_yarn.v1.lock +0 -0
  65. data/{test → spec}/fixtures/semver_caret_yarn.v2.lock +0 -0
  66. data/{test → spec}/fixtures/semver_exact_package-lock.v1.json +0 -0
  67. data/{test → spec}/fixtures/semver_exact_package-lock.v2.json +0 -0
  68. data/{test → spec}/fixtures/semver_exact_package.json +0 -0
  69. data/{test → spec}/fixtures/semver_exact_yarn.v1.lock +0 -0
  70. data/{test → spec}/fixtures/semver_exact_yarn.v2.lock +0 -0
  71. data/{test → spec}/fixtures/semver_tilde_package-lock.v1.json +0 -0
  72. data/{test → spec}/fixtures/semver_tilde_package-lock.v2.json +0 -0
  73. data/{test → spec}/fixtures/semver_tilde_package.json +0 -0
  74. data/{test → spec}/fixtures/semver_tilde_yarn.v1.lock +0 -0
  75. data/{test → spec}/fixtures/semver_tilde_yarn.v2.lock +0 -0
  76. data/{test → spec}/fixtures/without_package-lock.v1.json +0 -0
  77. data/{test → spec}/fixtures/without_package-lock.v2.json +0 -0
  78. data/{test → spec}/fixtures/without_package.json +0 -0
  79. data/{test → spec}/fixtures/without_yarn.v1.lock +0 -0
  80. data/{test → spec}/fixtures/without_yarn.v2.lock +0 -0
  81. data/spec/helper_spec.rb +241 -0
  82. data/spec/manifest_spec.rb +98 -0
  83. data/{test → spec}/mounted_app/Rakefile +0 -0
  84. data/{test → spec}/mounted_app/test/dummy/Rakefile +0 -0
  85. data/{test → spec}/mounted_app/test/dummy/bin/rails +0 -0
  86. data/{test → spec}/mounted_app/test/dummy/bin/rake +0 -0
  87. data/{test → spec}/mounted_app/test/dummy/config/application.rb +0 -0
  88. data/{test → spec}/mounted_app/test/dummy/config/environment.rb +0 -0
  89. data/{test → spec}/mounted_app/test/dummy/config/webpacker.yml +0 -0
  90. data/{test → spec}/mounted_app/test/dummy/config.ru +0 -0
  91. data/{test → spec}/mounted_app/test/dummy/package.json +0 -0
  92. data/spec/mtime_strategy_spec.rb +53 -0
  93. data/spec/rake_tasks_spec.rb +32 -0
  94. data/spec/spec_helper.rb +123 -0
  95. data/{test → spec}/test_app/Rakefile +0 -0
  96. data/{test → spec}/test_app/app/packs/entrypoints/application.js +0 -0
  97. data/{test → spec}/test_app/app/packs/entrypoints/generated/something.js +0 -0
  98. data/{test → spec}/test_app/app/packs/entrypoints/multi_entry.css +0 -0
  99. data/{test → spec}/test_app/app/packs/entrypoints/multi_entry.js +0 -0
  100. data/{test → spec}/test_app/bin/webpacker +0 -0
  101. data/{test → spec}/test_app/bin/webpacker-dev-server +0 -0
  102. data/{test → spec}/test_app/config/application.rb +0 -0
  103. data/{test → spec}/test_app/config/environment.rb +0 -0
  104. data/{test → spec}/test_app/config/initializers/inspect_autoload_paths.rb +0 -0
  105. data/{test → spec}/test_app/config/webpack/webpack.config.js +0 -0
  106. data/{test → spec}/test_app/config/webpacker.yml +0 -0
  107. data/{test → spec}/test_app/config/webpacker_css_extract_ignore_order_warnings.yml +0 -0
  108. data/{test → spec}/test_app/config/webpacker_defaults_fallback.yml +0 -0
  109. data/{test → spec}/test_app/config/webpacker_manifest_path.yml +0 -0
  110. data/{test → spec}/test_app/config/webpacker_nested_entries.yml +0 -0
  111. data/{test → spec}/test_app/config/webpacker_no_precompile.yml +0 -0
  112. data/{test → spec}/test_app/config/webpacker_other_location.yml +0 -0
  113. data/{test → spec}/test_app/config/webpacker_public_root.yml +0 -0
  114. data/{test → spec}/test_app/config.ru +0 -0
  115. data/{test → spec}/test_app/package.json +0 -0
  116. data/{test → spec}/test_app/public/packs/manifest.json +8 -0
  117. data/{test → spec}/test_app/some.config.js +0 -0
  118. data/{test → spec}/test_app/yarn.lock +0 -0
  119. data/spec/version_checker_spec.rb +950 -0
  120. data/{test/webpack_runner_test.rb → spec/webpack_runner_spec.rb} +12 -15
  121. data/spec/webpacker_spec.rb +39 -0
  122. data/yarn.lock +846 -844
  123. metadata +102 -187
  124. data/.github/ISSUE_TEMPLATE/feature-request.md +0 -18
  125. data/lib/tasks/yarn.rake +0 -44
  126. data/test/command_test.rb +0 -109
  127. data/test/compiler_strategy_test.rb +0 -27
  128. data/test/compiler_test.rb +0 -60
  129. data/test/configuration_test.rb +0 -186
  130. data/test/dev_server_test.rb +0 -47
  131. data/test/digest_strategy_test.rb +0 -33
  132. data/test/env_test.rb +0 -23
  133. data/test/helper_test.rb +0 -248
  134. data/test/manifest_test.rb +0 -89
  135. data/test/mtime_strategy_test.rb +0 -42
  136. data/test/rake_tasks_test.rb +0 -37
  137. data/test/test_helper.rb +0 -33
  138. data/test/version_checker_test.rb +0 -826
  139. data/test/webpacker_test.rb +0 -49
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shakapacker
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.5.5
4
+ version: 6.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-12-28 00:00:00.000000000 Z
13
+ date: 2023-02-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -122,13 +122,14 @@ files:
122
122
  - ".eslintignore"
123
123
  - ".eslintrc.js"
124
124
  - ".github/ISSUE_TEMPLATE/bug_report.md"
125
- - ".github/ISSUE_TEMPLATE/feature-request.md"
125
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
126
126
  - ".github/workflows/jest.yml"
127
127
  - ".github/workflows/js-lint.yml"
128
128
  - ".github/workflows/rubocop.yml"
129
129
  - ".github/workflows/ruby.yml"
130
130
  - ".gitignore"
131
131
  - ".node-version"
132
+ - ".rspec"
132
133
  - ".rubocop.yml"
133
134
  - CHANGELOG.md
134
135
  - CONTRIBUTING.md
@@ -179,7 +180,6 @@ files:
179
180
  - lib/tasks/webpacker/verify_config.rake
180
181
  - lib/tasks/webpacker/verify_install.rake
181
182
  - lib/tasks/webpacker/yarn_install.rake
182
- - lib/tasks/yarn.rake
183
183
  - lib/webpacker.rb
184
184
  - lib/webpacker/base_strategy.rb
185
185
  - lib/webpacker/commands.rb
@@ -222,9 +222,13 @@ files:
222
222
  - package/esbuild/index.js
223
223
  - package/index.js
224
224
  - package/inliningCss.js
225
+ - package/rules/__tests__/__utils__/webpack.js
226
+ - package/rules/__tests__/babel.js
227
+ - package/rules/__tests__/esbuild.js
225
228
  - package/rules/__tests__/file.js
226
229
  - package/rules/__tests__/index.js
227
230
  - package/rules/__tests__/raw.js
231
+ - package/rules/__tests__/swc.js
228
232
  - package/rules/babel.js
229
233
  - package/rules/coffee.js
230
234
  - package/rules/css.js
@@ -232,6 +236,7 @@ files:
232
236
  - package/rules/esbuild.js
233
237
  - package/rules/file.js
234
238
  - package/rules/index.js
239
+ - package/rules/jscommon.js
235
240
  - package/rules/less.js
236
241
  - package/rules/raw.js
237
242
  - package/rules/sass.js
@@ -241,103 +246,103 @@ files:
241
246
  - package/utils/get_style_rule.js
242
247
  - package/utils/helpers.js
243
248
  - rakelib/release.rake
244
- - test/command_test.rb
245
- - test/compiler_strategy_test.rb
246
- - test/compiler_test.rb
247
- - test/configuration_test.rb
248
- - test/dev_server_runner_test.rb
249
- - test/dev_server_test.rb
250
- - test/digest_strategy_test.rb
251
- - test/engine_rake_tasks_test.rb
252
- - test/env_test.rb
253
- - test/fixtures/beta_package-lock.v1.json
254
- - test/fixtures/beta_package-lock.v2.json
255
- - test/fixtures/beta_package.json
256
- - test/fixtures/beta_yarn.v1.lock
257
- - test/fixtures/beta_yarn.v2.lock
258
- - test/fixtures/git_url_package-lock.v1.json
259
- - test/fixtures/git_url_package-lock.v2.json
260
- - test/fixtures/git_url_package.json
261
- - test/fixtures/git_url_yarn.v1.lock
262
- - test/fixtures/git_url_yarn.v2.lock
263
- - test/fixtures/github_url_package-lock.v1.json
264
- - test/fixtures/github_url_package-lock.v2.json
265
- - test/fixtures/github_url_package.json
266
- - test/fixtures/github_url_yarn.v1.lock
267
- - test/fixtures/github_url_yarn.v2.lock
268
- - test/fixtures/relative_path_package-lock.v1.json
269
- - test/fixtures/relative_path_package-lock.v2.json
270
- - test/fixtures/relative_path_package.json
271
- - test/fixtures/relative_path_yarn.v1.lock
272
- - test/fixtures/relative_path_yarn.v2.lock
273
- - test/fixtures/semver_caret_package-lock.v1.json
274
- - test/fixtures/semver_caret_package-lock.v2.json
275
- - test/fixtures/semver_caret_package.json
276
- - test/fixtures/semver_caret_yarn.v1.lock
277
- - test/fixtures/semver_caret_yarn.v2.lock
278
- - test/fixtures/semver_exact_package-lock.v1.json
279
- - test/fixtures/semver_exact_package-lock.v2.json
280
- - test/fixtures/semver_exact_package.json
281
- - test/fixtures/semver_exact_yarn.v1.lock
282
- - test/fixtures/semver_exact_yarn.v2.lock
283
- - test/fixtures/semver_tilde_package-lock.v1.json
284
- - test/fixtures/semver_tilde_package-lock.v2.json
285
- - test/fixtures/semver_tilde_package.json
286
- - test/fixtures/semver_tilde_yarn.v1.lock
287
- - test/fixtures/semver_tilde_yarn.v2.lock
288
- - test/fixtures/without_package-lock.v1.json
289
- - test/fixtures/without_package-lock.v2.json
290
- - test/fixtures/without_package.json
291
- - test/fixtures/without_yarn.v1.lock
292
- - test/fixtures/without_yarn.v2.lock
293
- - test/helper_test.rb
294
- - test/manifest_test.rb
295
- - test/mounted_app/Rakefile
296
- - test/mounted_app/test/dummy/Rakefile
297
- - test/mounted_app/test/dummy/bin/rails
298
- - test/mounted_app/test/dummy/bin/rake
299
- - test/mounted_app/test/dummy/config.ru
300
- - test/mounted_app/test/dummy/config/application.rb
301
- - test/mounted_app/test/dummy/config/environment.rb
302
- - test/mounted_app/test/dummy/config/webpacker.yml
303
- - test/mounted_app/test/dummy/package.json
304
- - test/mtime_strategy_test.rb
305
- - test/rake_tasks_test.rb
306
- - test/test_app/Rakefile
307
- - test/test_app/app/packs/entrypoints/application.js
308
- - test/test_app/app/packs/entrypoints/generated/something.js
309
- - test/test_app/app/packs/entrypoints/multi_entry.css
310
- - test/test_app/app/packs/entrypoints/multi_entry.js
311
- - test/test_app/bin/webpacker
312
- - test/test_app/bin/webpacker-dev-server
313
- - test/test_app/config.ru
314
- - test/test_app/config/application.rb
315
- - test/test_app/config/environment.rb
316
- - test/test_app/config/initializers/inspect_autoload_paths.rb
317
- - test/test_app/config/webpack/webpack.config.js
318
- - test/test_app/config/webpacker.yml
319
- - test/test_app/config/webpacker_css_extract_ignore_order_warnings.yml
320
- - test/test_app/config/webpacker_defaults_fallback.yml
321
- - test/test_app/config/webpacker_manifest_path.yml
322
- - test/test_app/config/webpacker_nested_entries.yml
323
- - test/test_app/config/webpacker_no_precompile.yml
324
- - test/test_app/config/webpacker_other_location.yml
325
- - test/test_app/config/webpacker_public_root.yml
326
- - test/test_app/package.json
327
- - test/test_app/public/packs/manifest.json
328
- - test/test_app/some.config.js
329
- - test/test_app/yarn.lock
330
- - test/test_helper.rb
331
- - test/version_checker_test.rb
332
- - test/webpack_runner_test.rb
333
- - test/webpacker_test.rb
249
+ - spec/command_spec.rb
250
+ - spec/compiler_spec.rb
251
+ - spec/compiler_strategy_spec.rb
252
+ - spec/configuration_spec.rb
253
+ - spec/dev_server_runner_spec.rb
254
+ - spec/dev_server_spec.rb
255
+ - spec/digest_strategy_spec.rb
256
+ - spec/engine_rake_tasks_spec.rb
257
+ - spec/env_spec.rb
258
+ - spec/fixtures/beta_package-lock.v1.json
259
+ - spec/fixtures/beta_package-lock.v2.json
260
+ - spec/fixtures/beta_package.json
261
+ - spec/fixtures/beta_yarn.v1.lock
262
+ - spec/fixtures/beta_yarn.v2.lock
263
+ - spec/fixtures/git_url_package-lock.v1.json
264
+ - spec/fixtures/git_url_package-lock.v2.json
265
+ - spec/fixtures/git_url_package.json
266
+ - spec/fixtures/git_url_yarn.v1.lock
267
+ - spec/fixtures/git_url_yarn.v2.lock
268
+ - spec/fixtures/github_url_package-lock.v1.json
269
+ - spec/fixtures/github_url_package-lock.v2.json
270
+ - spec/fixtures/github_url_package.json
271
+ - spec/fixtures/github_url_yarn.v1.lock
272
+ - spec/fixtures/github_url_yarn.v2.lock
273
+ - spec/fixtures/relative_path_package-lock.v1.json
274
+ - spec/fixtures/relative_path_package-lock.v2.json
275
+ - spec/fixtures/relative_path_package.json
276
+ - spec/fixtures/relative_path_yarn.v1.lock
277
+ - spec/fixtures/relative_path_yarn.v2.lock
278
+ - spec/fixtures/semver_caret_package-lock.v1.json
279
+ - spec/fixtures/semver_caret_package-lock.v2.json
280
+ - spec/fixtures/semver_caret_package.json
281
+ - spec/fixtures/semver_caret_yarn.v1.lock
282
+ - spec/fixtures/semver_caret_yarn.v2.lock
283
+ - spec/fixtures/semver_exact_package-lock.v1.json
284
+ - spec/fixtures/semver_exact_package-lock.v2.json
285
+ - spec/fixtures/semver_exact_package.json
286
+ - spec/fixtures/semver_exact_yarn.v1.lock
287
+ - spec/fixtures/semver_exact_yarn.v2.lock
288
+ - spec/fixtures/semver_tilde_package-lock.v1.json
289
+ - spec/fixtures/semver_tilde_package-lock.v2.json
290
+ - spec/fixtures/semver_tilde_package.json
291
+ - spec/fixtures/semver_tilde_yarn.v1.lock
292
+ - spec/fixtures/semver_tilde_yarn.v2.lock
293
+ - spec/fixtures/without_package-lock.v1.json
294
+ - spec/fixtures/without_package-lock.v2.json
295
+ - spec/fixtures/without_package.json
296
+ - spec/fixtures/without_yarn.v1.lock
297
+ - spec/fixtures/without_yarn.v2.lock
298
+ - spec/helper_spec.rb
299
+ - spec/manifest_spec.rb
300
+ - spec/mounted_app/Rakefile
301
+ - spec/mounted_app/test/dummy/Rakefile
302
+ - spec/mounted_app/test/dummy/bin/rails
303
+ - spec/mounted_app/test/dummy/bin/rake
304
+ - spec/mounted_app/test/dummy/config.ru
305
+ - spec/mounted_app/test/dummy/config/application.rb
306
+ - spec/mounted_app/test/dummy/config/environment.rb
307
+ - spec/mounted_app/test/dummy/config/webpacker.yml
308
+ - spec/mounted_app/test/dummy/package.json
309
+ - spec/mtime_strategy_spec.rb
310
+ - spec/rake_tasks_spec.rb
311
+ - spec/spec_helper.rb
312
+ - spec/test_app/Rakefile
313
+ - spec/test_app/app/packs/entrypoints/application.js
314
+ - spec/test_app/app/packs/entrypoints/generated/something.js
315
+ - spec/test_app/app/packs/entrypoints/multi_entry.css
316
+ - spec/test_app/app/packs/entrypoints/multi_entry.js
317
+ - spec/test_app/bin/webpacker
318
+ - spec/test_app/bin/webpacker-dev-server
319
+ - spec/test_app/config.ru
320
+ - spec/test_app/config/application.rb
321
+ - spec/test_app/config/environment.rb
322
+ - spec/test_app/config/initializers/inspect_autoload_paths.rb
323
+ - spec/test_app/config/webpack/webpack.config.js
324
+ - spec/test_app/config/webpacker.yml
325
+ - spec/test_app/config/webpacker_css_extract_ignore_order_warnings.yml
326
+ - spec/test_app/config/webpacker_defaults_fallback.yml
327
+ - spec/test_app/config/webpacker_manifest_path.yml
328
+ - spec/test_app/config/webpacker_nested_entries.yml
329
+ - spec/test_app/config/webpacker_no_precompile.yml
330
+ - spec/test_app/config/webpacker_other_location.yml
331
+ - spec/test_app/config/webpacker_public_root.yml
332
+ - spec/test_app/package.json
333
+ - spec/test_app/public/packs/manifest.json
334
+ - spec/test_app/some.config.js
335
+ - spec/test_app/yarn.lock
336
+ - spec/version_checker_spec.rb
337
+ - spec/webpack_runner_spec.rb
338
+ - spec/webpacker_spec.rb
334
339
  - webpacker.gemspec
335
340
  - yarn.lock
336
341
  homepage: https://github.com/shakacode/shakapacker
337
342
  licenses:
338
343
  - MIT
339
344
  metadata:
340
- source_code_uri: https://github.com/shakacode/shakapacker/tree/v6.5.5
345
+ source_code_uri: https://github.com/shakacode/shakapacker/tree/v6.5.6
341
346
  post_install_message:
342
347
  rdoc_options: []
343
348
  require_paths:
@@ -353,98 +358,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
353
358
  - !ruby/object:Gem::Version
354
359
  version: '0'
355
360
  requirements: []
356
- rubygems_version: 3.2.32
361
+ rubygems_version: 3.4.6
357
362
  signing_key:
358
363
  specification_version: 4
359
364
  summary: Use webpack to manage app-like JavaScript modules in Rails
360
- test_files:
361
- - test/command_test.rb
362
- - test/compiler_strategy_test.rb
363
- - test/compiler_test.rb
364
- - test/configuration_test.rb
365
- - test/dev_server_runner_test.rb
366
- - test/dev_server_test.rb
367
- - test/digest_strategy_test.rb
368
- - test/engine_rake_tasks_test.rb
369
- - test/env_test.rb
370
- - test/fixtures/beta_package-lock.v1.json
371
- - test/fixtures/beta_package-lock.v2.json
372
- - test/fixtures/beta_package.json
373
- - test/fixtures/beta_yarn.v1.lock
374
- - test/fixtures/beta_yarn.v2.lock
375
- - test/fixtures/git_url_package-lock.v1.json
376
- - test/fixtures/git_url_package-lock.v2.json
377
- - test/fixtures/git_url_package.json
378
- - test/fixtures/git_url_yarn.v1.lock
379
- - test/fixtures/git_url_yarn.v2.lock
380
- - test/fixtures/github_url_package-lock.v1.json
381
- - test/fixtures/github_url_package-lock.v2.json
382
- - test/fixtures/github_url_package.json
383
- - test/fixtures/github_url_yarn.v1.lock
384
- - test/fixtures/github_url_yarn.v2.lock
385
- - test/fixtures/relative_path_package-lock.v1.json
386
- - test/fixtures/relative_path_package-lock.v2.json
387
- - test/fixtures/relative_path_package.json
388
- - test/fixtures/relative_path_yarn.v1.lock
389
- - test/fixtures/relative_path_yarn.v2.lock
390
- - test/fixtures/semver_caret_package-lock.v1.json
391
- - test/fixtures/semver_caret_package-lock.v2.json
392
- - test/fixtures/semver_caret_package.json
393
- - test/fixtures/semver_caret_yarn.v1.lock
394
- - test/fixtures/semver_caret_yarn.v2.lock
395
- - test/fixtures/semver_exact_package-lock.v1.json
396
- - test/fixtures/semver_exact_package-lock.v2.json
397
- - test/fixtures/semver_exact_package.json
398
- - test/fixtures/semver_exact_yarn.v1.lock
399
- - test/fixtures/semver_exact_yarn.v2.lock
400
- - test/fixtures/semver_tilde_package-lock.v1.json
401
- - test/fixtures/semver_tilde_package-lock.v2.json
402
- - test/fixtures/semver_tilde_package.json
403
- - test/fixtures/semver_tilde_yarn.v1.lock
404
- - test/fixtures/semver_tilde_yarn.v2.lock
405
- - test/fixtures/without_package-lock.v1.json
406
- - test/fixtures/without_package-lock.v2.json
407
- - test/fixtures/without_package.json
408
- - test/fixtures/without_yarn.v1.lock
409
- - test/fixtures/without_yarn.v2.lock
410
- - test/helper_test.rb
411
- - test/manifest_test.rb
412
- - test/mounted_app/Rakefile
413
- - test/mounted_app/test/dummy/Rakefile
414
- - test/mounted_app/test/dummy/bin/rails
415
- - test/mounted_app/test/dummy/bin/rake
416
- - test/mounted_app/test/dummy/config.ru
417
- - test/mounted_app/test/dummy/config/application.rb
418
- - test/mounted_app/test/dummy/config/environment.rb
419
- - test/mounted_app/test/dummy/config/webpacker.yml
420
- - test/mounted_app/test/dummy/package.json
421
- - test/mtime_strategy_test.rb
422
- - test/rake_tasks_test.rb
423
- - test/test_app/Rakefile
424
- - test/test_app/app/packs/entrypoints/application.js
425
- - test/test_app/app/packs/entrypoints/generated/something.js
426
- - test/test_app/app/packs/entrypoints/multi_entry.css
427
- - test/test_app/app/packs/entrypoints/multi_entry.js
428
- - test/test_app/bin/webpacker
429
- - test/test_app/bin/webpacker-dev-server
430
- - test/test_app/config.ru
431
- - test/test_app/config/application.rb
432
- - test/test_app/config/environment.rb
433
- - test/test_app/config/initializers/inspect_autoload_paths.rb
434
- - test/test_app/config/webpack/webpack.config.js
435
- - test/test_app/config/webpacker.yml
436
- - test/test_app/config/webpacker_css_extract_ignore_order_warnings.yml
437
- - test/test_app/config/webpacker_defaults_fallback.yml
438
- - test/test_app/config/webpacker_manifest_path.yml
439
- - test/test_app/config/webpacker_nested_entries.yml
440
- - test/test_app/config/webpacker_no_precompile.yml
441
- - test/test_app/config/webpacker_other_location.yml
442
- - test/test_app/config/webpacker_public_root.yml
443
- - test/test_app/package.json
444
- - test/test_app/public/packs/manifest.json
445
- - test/test_app/some.config.js
446
- - test/test_app/yarn.lock
447
- - test/test_helper.rb
448
- - test/version_checker_test.rb
449
- - test/webpack_runner_test.rb
450
- - test/webpacker_test.rb
365
+ test_files: []
@@ -1,18 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Create a request for new functionality
4
- title: ''
5
- labels: enhancement
6
- assignees: ''
7
-
8
- ---
9
-
10
- A feature request describes a suggested improvement. If you have a debugging or troubleshooting question, please open a discussion on the [Discussions tab](https://github.com/shakacode/shakapacker/discussions).
11
-
12
- Ruby version:
13
- Rails version:
14
- Shakapacker version:
15
-
16
- Desired behavior:
17
-
18
- Actual behavior:
data/lib/tasks/yarn.rake DELETED
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Duplicate of the yarn tasks still present in Rails until Webpacker <5 have been deprecated
4
-
5
- namespace :yarn do
6
- desc "Install all JavaScript dependencies as specified via Yarn"
7
- task :install do
8
- warn <<~MSG.strip
9
- Shakapacker - Automatic installation of yarn packages is deprecated
10
- Automatic installation of yarn packages when assets are precompiled is deprecated and will be removed in Shakapacker v7.
11
- Please ensure you are installing yarn packages explicitly before the asset compilation.
12
- MSG
13
-
14
- begin
15
- # Install only production deps when for not usual envs.
16
- valid_node_envs = %w[test development production]
17
- node_env = ENV.fetch("NODE_ENV") do
18
- valid_node_envs.include?(Rails.env) ? Rails.env : "production"
19
- end
20
-
21
- yarn_flags =
22
- if `#{RbConfig.ruby} "#{Rails.root}/bin/yarn" --version`.start_with?("1")
23
- "--no-progress --frozen-lockfile"
24
- else
25
- "--immutable"
26
- end
27
-
28
- system(
29
- { "NODE_ENV" => node_env },
30
- "#{RbConfig.ruby} \"#{Rails.root}/bin/yarn\" install #{yarn_flags}",
31
- exception: true
32
- )
33
- rescue Errno::ENOENT
34
- $stderr.puts "bin/yarn was not found."
35
- $stderr.puts "Please run `bundle exec rails app:update:bin` to create it."
36
- exit 1
37
- end
38
- end
39
- end
40
-
41
- # Run Yarn prior to Sprockets assets precompilation, so dependencies are available for use.
42
- if Rake::Task.task_defined?("assets:precompile") && File.exist?(Rails.root.join("bin", "yarn"))
43
- Rake::Task["assets:precompile"].enhance [ "yarn:install" ]
44
- end
data/test/command_test.rb DELETED
@@ -1,109 +0,0 @@
1
- require "test_helper"
2
-
3
- class CommandTest < Minitest::Test
4
- def test_compile_command_returns_success_status_when_stale
5
- Webpacker.compiler.stub :stale?, true do
6
- Webpacker.compiler.stub :run_webpack, true do
7
- assert_equal true, Webpacker.commands.compile
8
- end
9
- end
10
- end
11
-
12
- def test_compile_command_returns_success_status_when_fresh
13
- Webpacker.compiler.stub :stale?, false do
14
- Webpacker.compiler.stub :run_webpack, true do
15
- assert_equal true, Webpacker.commands.compile
16
- end
17
- end
18
- end
19
-
20
- def test_compile_command_returns_failure_status_when_stale
21
- Webpacker.compiler.stub :stale?, true do
22
- Webpacker.compiler.stub :run_webpack, false do
23
- assert_equal false, Webpacker.commands.compile
24
- end
25
- end
26
- end
27
-
28
- def test_clean_command_works_with_nested_hashes_and_without_any_compiled_files
29
- File.stub :delete, true do
30
- assert Webpacker.commands.clean
31
- end
32
- end
33
- end
34
-
35
- class ClearCommandVersioningTest < Minitest::Test
36
- def setup
37
- @now = Time.parse("2021-01-01 12:34:56 UTC")
38
- # Test assets to be kept and deleted, path and mtime
39
- @prev_files = {
40
- # recent versions to be kept with Webpacker.commands.clean(count = 2)
41
- "js/application-deadbeef.js" => @now - 4000,
42
- "js/common-deadbeee.js" => @now - 4002,
43
- "css/common-deadbeed.css" => @now - 4004,
44
- "media/images/logo-deadbeeb.css" => @now - 4006,
45
- "js/application-1eadbeef.js" => @now - 8000,
46
- "js/common-1eadbeee.js" => @now - 8002,
47
- "css/common-1eadbeed.css" => @now - 8004,
48
- "media/images/logo-1eadbeeb.css" => @now - 8006,
49
- # new files to be kept with Webpacker.commands.clean(age = 3600)
50
- "js/brandnew-0001.js" => @now,
51
- "js/brandnew-0002.js" => @now - 10,
52
- "js/brandnew-0003.js" => @now - 20,
53
- "js/brandnew-0004.js" => @now - 40,
54
- }.transform_keys { |path| "#{Webpacker.config.public_output_path}/#{path}" }
55
- @expired_files = {
56
- # old files that are outside count = 2 or age = 3600 and to be deleted
57
- "js/application-0eadbeef.js" => @now - 9000,
58
- "js/common-0eadbeee.js" => @now - 9002,
59
- "css/common-0eadbeed.css" => @now - 9004,
60
- "js/brandnew-0005.js" => @now - 3640,
61
- }.transform_keys { |path| "#{Webpacker.config.public_output_path}/#{path}" }
62
- @all_files = @prev_files.merge(@expired_files)
63
- @dir_glob_stub = Proc.new { |arg|
64
- case arg
65
- when "#{Webpacker.config.public_output_path}/**/*"
66
- @all_files.keys
67
- else
68
- []
69
- end
70
- }
71
- @file_mtime_stub = Proc.new { |longpath|
72
- @all_files[longpath]
73
- }
74
- @file_delete_mock = Minitest::Mock.new
75
- @expired_files.keys.each do |longpath|
76
- @file_delete_mock.expect(:delete, 1, [longpath])
77
- end
78
- @file_delete_stub = Proc.new { |longpath|
79
- if @prev_files.has_key?(longpath)
80
- flunk "#{longpath} should not be deleted"
81
- else
82
- @file_delete_mock.delete(longpath)
83
- end
84
- }
85
- end
86
-
87
- def time_and_files_stub(&proc)
88
- Time.stub :now, @now do
89
- Dir.stub :glob, @dir_glob_stub do
90
- File.stub :directory?, false do
91
- File.stub :file?, true do
92
- File.stub :mtime, @file_mtime_stub do
93
- File.stub :delete, @file_delete_stub do
94
- yield proc
95
- end
96
- end
97
- end
98
- end
99
- end
100
- end
101
- @file_delete_mock.verify
102
- end
103
-
104
- def test_clean_command_with_versioned_files
105
- time_and_files_stub do
106
- assert Webpacker.commands.clean
107
- end
108
- end
109
- end
@@ -1,27 +0,0 @@
1
- require "test_helper"
2
-
3
- class CompilerStrategyTest < Minitest::Test
4
- def test_mtime_strategy_returned
5
- Webpacker.config.stub :compiler_strategy, "mtime" do
6
- assert_instance_of Webpacker::MtimeStrategy, Webpacker::CompilerStrategy.from_config
7
- end
8
- end
9
-
10
- def test_digest_strategy_returned
11
- Webpacker.config.stub :compiler_strategy, "digest" do
12
- assert_instance_of Webpacker::DigestStrategy, Webpacker::CompilerStrategy.from_config
13
- end
14
- end
15
-
16
- def test_raise_on_unknown_strategy
17
- Webpacker.config.stub :compiler_strategy, "other" do
18
- error = assert_raises do
19
- Webpacker::CompilerStrategy.from_config
20
- end
21
-
22
- assert_equal \
23
- "Unknown strategy 'other'. Available options are 'mtime' and 'digest'.",
24
- error.message
25
- end
26
- end
27
- end
@@ -1,60 +0,0 @@
1
- require "test_helper"
2
-
3
- class CompilerTest < Minitest::Test
4
- def test_custom_environment_variables
5
- assert_nil Webpacker.compiler.send(:webpack_env)["FOO"]
6
- Webpacker.compiler.env["FOO"] = "BAR"
7
- assert Webpacker.compiler.send(:webpack_env)["FOO"] == "BAR"
8
- ensure
9
- Webpacker.compiler.env = {}
10
- end
11
-
12
- def test_compile_true_when_fresh
13
- mock = Minitest::Mock.new
14
- mock.expect(:stale?, false)
15
- Webpacker.compiler.stub(:strategy, mock) do
16
- assert Webpacker.compiler.compile
17
- end
18
- assert_mock mock
19
- end
20
-
21
- def test_after_compile_hook_called_on_success
22
- mock = Minitest::Mock.new
23
- mock.expect(:stale?, true)
24
- mock.expect(:after_compile_hook, nil)
25
-
26
- status = OpenStruct.new(success?: true)
27
-
28
- Webpacker.compiler.stub(:strategy, mock) do
29
- Open3.stub :capture3, [:sterr, :stdout, status] do
30
- Webpacker.compiler.compile
31
- end
32
- end
33
- assert_mock mock
34
- end
35
-
36
- def test_after_compile_hook_called_on_failure
37
- mock = Minitest::Mock.new
38
- mock.expect(:stale?, true)
39
- mock.expect(:after_compile_hook, nil)
40
-
41
- status = OpenStruct.new(success?: false)
42
-
43
- Webpacker.compiler.stub(:strategy, mock) do
44
- Open3.stub :capture3, [:sterr, :stdout, status] do
45
- Webpacker.compiler.compile
46
- end
47
- end
48
- assert_mock mock
49
- end
50
-
51
- def test_external_env_variables
52
- assert_nil Webpacker.compiler.send(:webpack_env)["WEBPACKER_ASSET_HOST"]
53
- assert_nil Webpacker.compiler.send(:webpack_env)["WEBPACKER_RELATIVE_URL_ROOT"]
54
-
55
- ENV["WEBPACKER_ASSET_HOST"] = "foo.bar"
56
- ENV["WEBPACKER_RELATIVE_URL_ROOT"] = "/baz"
57
- assert_equal Webpacker.compiler.send(:webpack_env)["WEBPACKER_ASSET_HOST"], "foo.bar"
58
- assert_equal Webpacker.compiler.send(:webpack_env)["WEBPACKER_RELATIVE_URL_ROOT"], "/baz"
59
- end
60
- end