shakapacker 8.0.0 → 8.0.1

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 (249) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/dummy.yml +1 -1
  3. data/.github/workflows/generator.yml +5 -1
  4. data/.github/workflows/node.yml +1 -1
  5. data/.github/workflows/ruby.yml +8 -2
  6. data/.gitignore +0 -1
  7. data/.node-version +1 -1
  8. data/CHANGELOG.md +21 -12
  9. data/Gemfile.lock +257 -0
  10. data/README.md +11 -12
  11. data/docs/customizing_babel_config.md +32 -4
  12. data/docs/react.md +3 -2
  13. data/docs/troubleshooting.md +1 -1
  14. data/docs/v8_upgrade.md +2 -2
  15. data/lib/shakapacker/version.rb +1 -1
  16. data/package.json +2 -2
  17. data/shakapacker.gemspec +5 -2
  18. metadata +5 -235
  19. data/lib/install/bin/yarn +0 -18
  20. data/rakelib/release.rake +0 -65
  21. data/spec/dummy/.browserslistrc +0 -1
  22. data/spec/dummy/.gitignore +0 -20
  23. data/spec/dummy/.prettierrc.yaml +0 -4
  24. data/spec/dummy/Gemfile +0 -61
  25. data/spec/dummy/Procfile.dev +0 -5
  26. data/spec/dummy/Procfile.dev-static +0 -9
  27. data/spec/dummy/README.md +0 -1
  28. data/spec/dummy/Rakefile +0 -6
  29. data/spec/dummy/app/assets/config/manifest.js +0 -2
  30. data/spec/dummy/app/assets/images/.keep +0 -0
  31. data/spec/dummy/app/assets/stylesheets/application.css +0 -15
  32. data/spec/dummy/app/channels/application_cable/channel.rb +0 -4
  33. data/spec/dummy/app/channels/application_cable/connection.rb +0 -4
  34. data/spec/dummy/app/controllers/application_controller.rb +0 -2
  35. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  36. data/spec/dummy/app/controllers/hello_world_controller.rb +0 -9
  37. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  38. data/spec/dummy/app/javascript/Globals.d.ts +0 -3
  39. data/spec/dummy/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css +0 -25
  40. data/spec/dummy/app/javascript/bundles/HelloWorld/components/HelloWorld.tsx +0 -47
  41. data/spec/dummy/app/javascript/bundles/HelloWorld/components/HelloWorldServer.tsx +0 -5
  42. data/spec/dummy/app/javascript/bundles/HelloWorld/components/logo.svg +0 -7
  43. data/spec/dummy/app/javascript/packs/application.js +0 -17
  44. data/spec/dummy/app/javascript/packs/hello-world-bundle.ts +0 -8
  45. data/spec/dummy/app/javascript/packs/server-bundle.ts +0 -8
  46. data/spec/dummy/app/jobs/application_job.rb +0 -7
  47. data/spec/dummy/app/mailers/application_mailer.rb +0 -4
  48. data/spec/dummy/app/models/application_record.rb +0 -3
  49. data/spec/dummy/app/models/concerns/.keep +0 -0
  50. data/spec/dummy/app/views/hello_world/index.html.erb +0 -2
  51. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  52. data/spec/dummy/app/views/layouts/hello_world.html.erb +0 -13
  53. data/spec/dummy/app/views/layouts/mailer.html.erb +0 -13
  54. data/spec/dummy/app/views/layouts/mailer.text.erb +0 -1
  55. data/spec/dummy/babel.config.js +0 -30
  56. data/spec/dummy/bin/bundle +0 -114
  57. data/spec/dummy/bin/dev +0 -30
  58. data/spec/dummy/bin/dev-static +0 -30
  59. data/spec/dummy/bin/rails +0 -9
  60. data/spec/dummy/bin/rake +0 -9
  61. data/spec/dummy/bin/setup +0 -33
  62. data/spec/dummy/bin/shakapacker +0 -13
  63. data/spec/dummy/bin/shakapacker-dev-server +0 -13
  64. data/spec/dummy/bin/spring +0 -17
  65. data/spec/dummy/bin/yarn +0 -18
  66. data/spec/dummy/config/application.rb +0 -35
  67. data/spec/dummy/config/boot.rb +0 -4
  68. data/spec/dummy/config/cable.yml +0 -10
  69. data/spec/dummy/config/credentials.yml.enc +0 -1
  70. data/spec/dummy/config/database.yml +0 -25
  71. data/spec/dummy/config/environment.rb +0 -5
  72. data/spec/dummy/config/environments/development.rb +0 -54
  73. data/spec/dummy/config/environments/production.rb +0 -106
  74. data/spec/dummy/config/environments/test.rb +0 -49
  75. data/spec/dummy/config/initializers/application_controller_renderer.rb +0 -8
  76. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  77. data/spec/dummy/config/initializers/content_security_policy.rb +0 -28
  78. data/spec/dummy/config/initializers/cookies_serializer.rb +0 -5
  79. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  80. data/spec/dummy/config/initializers/inflections.rb +0 -16
  81. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  82. data/spec/dummy/config/initializers/react_on_rails.rb +0 -58
  83. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  84. data/spec/dummy/config/locales/en.yml +0 -33
  85. data/spec/dummy/config/puma.rb +0 -38
  86. data/spec/dummy/config/routes.rb +0 -6
  87. data/spec/dummy/config/shakapacker.yml +0 -61
  88. data/spec/dummy/config/spring.rb +0 -6
  89. data/spec/dummy/config/storage.yml +0 -34
  90. data/spec/dummy/config/webpack/ServerClientOrBoth.js +0 -34
  91. data/spec/dummy/config/webpack/clientWebpackConfig.js +0 -15
  92. data/spec/dummy/config/webpack/commonWebpackConfig.js +0 -17
  93. data/spec/dummy/config/webpack/development.js +0 -32
  94. data/spec/dummy/config/webpack/production.js +0 -9
  95. data/spec/dummy/config/webpack/serverWebpackConfig.js +0 -116
  96. data/spec/dummy/config/webpack/test.js +0 -7
  97. data/spec/dummy/config/webpack/webpack.config.js +0 -24
  98. data/spec/dummy/config.ru +0 -5
  99. data/spec/dummy/db/seeds.rb +0 -7
  100. data/spec/dummy/lib/assets/.keep +0 -0
  101. data/spec/dummy/lib/tasks/.keep +0 -0
  102. data/spec/dummy/package.json +0 -44
  103. data/spec/dummy/postcss.config.js +0 -12
  104. data/spec/dummy/public/404.html +0 -67
  105. data/spec/dummy/public/422.html +0 -67
  106. data/spec/dummy/public/500.html +0 -66
  107. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  108. data/spec/dummy/public/apple-touch-icon.png +0 -0
  109. data/spec/dummy/public/favicon.ico +0 -0
  110. data/spec/dummy/public/robots.txt +0 -1
  111. data/spec/dummy/spec/rails_helper.rb +0 -118
  112. data/spec/dummy/spec/spec_helper.rb +0 -96
  113. data/spec/dummy/spec/system/hello_world_spec.rb +0 -19
  114. data/spec/dummy/tsconfig.json +0 -21
  115. data/spec/dummy/vendor/.keep +0 -0
  116. data/spec/dummy/yarn.lock +0 -4696
  117. data/spec/fixtures/beta_package-lock.v1.json +0 -119
  118. data/spec/fixtures/beta_package-lock.v2.json +0 -6777
  119. data/spec/fixtures/beta_package.json +0 -13
  120. data/spec/fixtures/beta_pnpm-lock.v7.yaml +0 -116
  121. data/spec/fixtures/beta_pnpm-lock.v8.yaml +0 -2537
  122. data/spec/fixtures/beta_pnpm-lock.v9.yaml +0 -2885
  123. data/spec/fixtures/beta_yarn.v1.lock +0 -106
  124. data/spec/fixtures/beta_yarn.v2.lock +0 -164
  125. data/spec/fixtures/git_url_package-lock.v1.json +0 -118
  126. data/spec/fixtures/git_url_package-lock.v2.json +0 -10263
  127. data/spec/fixtures/git_url_package.json +0 -13
  128. data/spec/fixtures/git_url_pnpm-lock.v7.yaml +0 -126
  129. data/spec/fixtures/git_url_pnpm-lock.v8.yaml +0 -3728
  130. data/spec/fixtures/git_url_pnpm-lock.v9.yaml +0 -4544
  131. data/spec/fixtures/git_url_yarn.v1.lock +0 -106
  132. data/spec/fixtures/git_url_yarn.v2.lock +0 -165
  133. data/spec/fixtures/github_url_package-lock.v1.json +0 -118
  134. data/spec/fixtures/github_url_package-lock.v2.json +0 -10263
  135. data/spec/fixtures/github_url_package.json +0 -13
  136. data/spec/fixtures/github_url_pnpm-lock.v7.yaml +0 -126
  137. data/spec/fixtures/github_url_pnpm-lock.v8.yaml +0 -3728
  138. data/spec/fixtures/github_url_pnpm-lock.v9.yaml +0 -4544
  139. data/spec/fixtures/github_url_yarn.v1.lock +0 -105
  140. data/spec/fixtures/github_url_yarn.v2.lock +0 -165
  141. data/spec/fixtures/relative_path_package-lock.v1.json +0 -3468
  142. data/spec/fixtures/relative_path_package-lock.v2.json +0 -105
  143. data/spec/fixtures/relative_path_package.json +0 -13
  144. data/spec/fixtures/relative_path_pnpm-lock.v7.yaml +0 -18
  145. data/spec/fixtures/relative_path_pnpm-lock.v8.yaml +0 -22
  146. data/spec/fixtures/relative_path_pnpm-lock.v9.yaml +0 -28
  147. data/spec/fixtures/relative_path_yarn.v1.lock +0 -104
  148. data/spec/fixtures/relative_path_yarn.v2.lock +0 -165
  149. data/spec/fixtures/semver_caret_package-lock.v1.json +0 -119
  150. data/spec/fixtures/semver_caret_package-lock.v2.json +0 -10264
  151. data/spec/fixtures/semver_caret_package.json +0 -13
  152. data/spec/fixtures/semver_caret_pnpm-lock.v7.yaml +0 -117
  153. data/spec/fixtures/semver_caret_pnpm-lock.v8.yaml +0 -2558
  154. data/spec/fixtures/semver_caret_pnpm-lock.v9.yaml +0 -4285
  155. data/spec/fixtures/semver_caret_yarn.v1.lock +0 -106
  156. data/spec/fixtures/semver_caret_yarn.v2.lock +0 -165
  157. data/spec/fixtures/semver_exact_package-lock.v1.json +0 -119
  158. data/spec/fixtures/semver_exact_package-lock.v2.json +0 -6819
  159. data/spec/fixtures/semver_exact_package.json +0 -13
  160. data/spec/fixtures/semver_exact_pnpm-lock.v7.yaml +0 -117
  161. data/spec/fixtures/semver_exact_pnpm-lock.v8.yaml +0 -2558
  162. data/spec/fixtures/semver_exact_pnpm-lock.v9.yaml +0 -2908
  163. data/spec/fixtures/semver_exact_yarn.v1.lock +0 -106
  164. data/spec/fixtures/semver_exact_yarn.v2.lock +0 -165
  165. data/spec/fixtures/semver_tilde_package-lock.v1.json +0 -119
  166. data/spec/fixtures/semver_tilde_package-lock.v2.json +0 -6777
  167. data/spec/fixtures/semver_tilde_package.json +0 -13
  168. data/spec/fixtures/semver_tilde_pnpm-lock.v7.yaml +0 -116
  169. data/spec/fixtures/semver_tilde_pnpm-lock.v8.yaml +0 -2558
  170. data/spec/fixtures/semver_tilde_pnpm-lock.v9.yaml +0 -2885
  171. data/spec/fixtures/semver_tilde_yarn.v1.lock +0 -106
  172. data/spec/fixtures/semver_tilde_yarn.v2.lock +0 -164
  173. data/spec/fixtures/without_package-lock.v1.json +0 -19
  174. data/spec/fixtures/without_package-lock.v2.json +0 -47
  175. data/spec/fixtures/without_package.json +0 -13
  176. data/spec/fixtures/without_pnpm-lock.v7.yaml +0 -23
  177. data/spec/fixtures/without_pnpm-lock.v8.yaml +0 -27
  178. data/spec/fixtures/without_pnpm-lock.v9.yaml +0 -34
  179. data/spec/fixtures/without_yarn.v1.lock +0 -13
  180. data/spec/fixtures/without_yarn.v2.lock +0 -29
  181. data/spec/generator_specs/e2e_template/files/app/controllers/home_controller.rb +0 -4
  182. data/spec/generator_specs/e2e_template/files/app/javascript/components/App.js +0 -12
  183. data/spec/generator_specs/e2e_template/files/app/javascript/packs/application.js +0 -10
  184. data/spec/generator_specs/e2e_template/files/app/views/home/index.html.erb +0 -2
  185. data/spec/generator_specs/e2e_template/files/app/views/layouts/application.html.erb +0 -17
  186. data/spec/generator_specs/e2e_template/files/config/routes.rb +0 -3
  187. data/spec/generator_specs/e2e_template/files/spec/system/test_react_component_renders_spec.rb +0 -13
  188. data/spec/generator_specs/e2e_template/template.rb +0 -29
  189. data/spec/generator_specs/fake-bin/bun +0 -10
  190. data/spec/generator_specs/fake-bin/npm +0 -10
  191. data/spec/generator_specs/fake-bin/pnpm +0 -10
  192. data/spec/generator_specs/fake-bin/yarn +0 -10
  193. data/spec/generator_specs/generator_spec.rb +0 -193
  194. data/spec/mounted_app/Rakefile +0 -4
  195. data/spec/mounted_app/package.json +0 -1
  196. data/spec/mounted_app/test/dummy/Rakefile +0 -3
  197. data/spec/mounted_app/test/dummy/bin/rails +0 -3
  198. data/spec/mounted_app/test/dummy/bin/rake +0 -3
  199. data/spec/mounted_app/test/dummy/config/application.rb +0 -10
  200. data/spec/mounted_app/test/dummy/config/environment.rb +0 -3
  201. data/spec/mounted_app/test/dummy/config/webpacker.yml +0 -81
  202. data/spec/mounted_app/test/dummy/config.ru +0 -5
  203. data/spec/mounted_app/test/dummy/package.json +0 -7
  204. data/spec/shakapacker/command_spec.rb +0 -134
  205. data/spec/shakapacker/compiler_spec.rb +0 -57
  206. data/spec/shakapacker/compiler_strategy_spec.rb +0 -24
  207. data/spec/shakapacker/configuration_spec.rb +0 -377
  208. data/spec/shakapacker/dev_server_runner_spec.rb +0 -136
  209. data/spec/shakapacker/dev_server_spec.rb +0 -118
  210. data/spec/shakapacker/digest_strategy_spec.rb +0 -59
  211. data/spec/shakapacker/engine_rake_tasks_spec.rb +0 -50
  212. data/spec/shakapacker/env_spec.rb +0 -23
  213. data/spec/shakapacker/helper_spec.rb +0 -243
  214. data/spec/shakapacker/instance_spec.rb +0 -29
  215. data/spec/shakapacker/manifest_spec.rb +0 -100
  216. data/spec/shakapacker/mtime_strategy_spec.rb +0 -55
  217. data/spec/shakapacker/rake_tasks_spec.rb +0 -85
  218. data/spec/shakapacker/shakapacker_spec.rb +0 -40
  219. data/spec/shakapacker/spec_helper_initializer.rb +0 -24
  220. data/spec/shakapacker/test_app/.gitignore +0 -2
  221. data/spec/shakapacker/test_app/Rakefile +0 -3
  222. data/spec/shakapacker/test_app/app/javascript/entrypoints/application.js +0 -10
  223. data/spec/shakapacker/test_app/app/javascript/entrypoints/generated/something.js +0 -2
  224. data/spec/shakapacker/test_app/app/javascript/entrypoints/multi_entry.css +0 -4
  225. data/spec/shakapacker/test_app/app/javascript/entrypoints/multi_entry.js +0 -4
  226. data/spec/shakapacker/test_app/bin/shakapacker +0 -14
  227. data/spec/shakapacker/test_app/bin/shakapacker-dev-server +0 -14
  228. data/spec/shakapacker/test_app/config/application.rb +0 -11
  229. data/spec/shakapacker/test_app/config/environment.rb +0 -4
  230. data/spec/shakapacker/test_app/config/initializers/inspect_autoload_paths.rb +0 -1
  231. data/spec/shakapacker/test_app/config/shakapacker.yml +0 -82
  232. data/spec/shakapacker/test_app/config/shakapacker_css_extract_ignore_order_warnings.yml +0 -83
  233. data/spec/shakapacker/test_app/config/shakapacker_defaults_fallback.yml +0 -11
  234. data/spec/shakapacker/test_app/config/shakapacker_manifest_path.yml +0 -79
  235. data/spec/shakapacker/test_app/config/shakapacker_nested_entries.yml +0 -82
  236. data/spec/shakapacker/test_app/config/shakapacker_no_precompile.yml +0 -7
  237. data/spec/shakapacker/test_app/config/shakapacker_other_location.yml +0 -84
  238. data/spec/shakapacker/test_app/config/shakapacker_public_root.yml +0 -18
  239. data/spec/shakapacker/test_app/config/webpack/webpack.config.js +0 -0
  240. data/spec/shakapacker/test_app/config.ru +0 -5
  241. data/spec/shakapacker/test_app/package.json +0 -14
  242. data/spec/shakapacker/test_app/public/packs/manifest.json +0 -58
  243. data/spec/shakapacker/test_app/some.config.js +0 -0
  244. data/spec/shakapacker/test_app/yarn.lock +0 -11
  245. data/spec/shakapacker/utils_manager_spec.rb +0 -125
  246. data/spec/shakapacker/version_checker_spec.rb +0 -1469
  247. data/spec/shakapacker/webpack_runner_spec.rb +0 -76
  248. data/spec/spec_helper.rb +0 -100
  249. data/spec/support/package_json_helpers.rb +0 -19
@@ -1,50 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- describe "EngineRakeTasks" do
4
- before :context do
5
- remove_webpack_binstubs
6
- end
7
-
8
- after :context do
9
- remove_webpack_binstubs
10
- end
11
-
12
- NODE_PACKAGE_MANAGERS.each do |fallback_manager|
13
- context "when using package_json with #{fallback_manager} as the manager" do
14
- with_package_json_fallback_manager(fallback_manager)
15
-
16
- it "mounts app:shakapacker task successfully" do
17
- output = Dir.chdir(mounted_app_path) { `rake -T` }
18
-
19
- expect(output).to include "app:shakapacker"
20
- end
21
-
22
- it "only adds expected files to bin directory when binstubs is run" do
23
- Dir.chdir(mounted_app_path) { `bundle exec rake app:shakapacker:binstubs` }
24
- expected_binstub_paths.each { |path| expect(File.exist?(path)).to be true }
25
- end
26
- end
27
- end
28
-
29
- private
30
- def mounted_app_path
31
- File.expand_path("../mounted_app", __dir__)
32
- end
33
-
34
- def current_files_in_bin
35
- Dir.glob("#{mounted_app_path}/test/dummy/bin/*")
36
- end
37
-
38
- def expected_binstub_paths
39
- gem_path = File.expand_path("../..", __dir__)
40
- Dir.chdir("#{gem_path}/lib/install/bin") do
41
- Dir.glob("*").map { |file| "#{mounted_app_path}/test/dummy/bin/#{file}" }
42
- end
43
- end
44
-
45
- def remove_webpack_binstubs
46
- expected_binstub_paths.each do |path|
47
- File.delete(path) if File.exist?(path)
48
- end
49
- end
50
- end
@@ -1,23 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- RSpec.describe "Env" do
4
- it "uses the same env for Rails and Shakapacker" do
5
- expect(Shakapacker.env).to eq Rails.env
6
- end
7
-
8
- it "uses production env without config" do
9
- with_rails_env("foo") do
10
- expect(Shakapacker.env).to eq "production"
11
- end
12
- end
13
-
14
- it "uses the given env in custom config" do
15
- with_rails_env("staging") do
16
- expect(Shakapacker.env).to eq "staging"
17
- end
18
- end
19
-
20
- it "uses 'production' as default env" do
21
- expect(Shakapacker::DEFAULT_ENV).to eq "production"
22
- end
23
- end
@@ -1,243 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- module ActionView::TestCase::Behavior
4
- attr_accessor :request
5
-
6
- describe "Shakapacker::Helper" do
7
- let(:application_stylesheet_chunks) { %w[/packs/1-c20632e7baf2c81200d3.chunk.css /packs/application-k344a6d59eef8632c9d1.chunk.css] }
8
- let(:hello_stimulus_stylesheet_chunks) { %w[/packs/1-c20632e7baf2c81200d3.chunk.css /packs/hello_stimulus-k344a6d59eef8632c9d1.chunk.css] }
9
-
10
- before :each do
11
- extend Shakapacker::Helper
12
- extend ActionView::Helpers
13
- extend ActionView::Helpers::AssetTagHelper
14
- extend ActionView::TestCase::Behavior
15
-
16
- @request = Class.new do
17
- def send_early_hints(links) end
18
- def base_url
19
- "https://example.com"
20
- end
21
- end.new
22
- @javascript_pack_tag_loaded = nil
23
- end
24
-
25
- it "#asset_pack_path generates the correct path" do
26
- expect(asset_pack_path("bootstrap.js")).to eq "/packs/bootstrap-300631c4f0e0f9c865bc.js"
27
- expect(asset_pack_path("bootstrap.css")).to eq "/packs/bootstrap-c38deda30895059837cf.css"
28
- end
29
-
30
- it "#asset_pack_url generates the correct url" do
31
- expect(asset_pack_url("bootstrap.js")).to eq "https://example.com/packs/bootstrap-300631c4f0e0f9c865bc.js"
32
- expect(asset_pack_url("bootstrap.css")).to eq "https://example.com/packs/bootstrap-c38deda30895059837cf.css"
33
- end
34
-
35
- it "#image_pack_path generates the correct path" do
36
- expect(image_pack_path("application.png")).to eq "/packs/application-k344a6d59eef8632c9d1.png"
37
- expect(image_pack_path("image.jpg")).to eq "/packs/static/image-c38deda30895059837cf.jpg"
38
- expect(image_pack_path("static/image.jpg")).to eq "/packs/static/image-c38deda30895059837cf.jpg"
39
- expect(image_pack_path("nested/image.jpg")).to eq "/packs/static/nested/image-c38deda30895059837cf.jpg"
40
- expect(image_pack_path("static/nested/image.jpg")).to eq "/packs/static/nested/image-c38deda30895059837cf.jpg"
41
- end
42
-
43
- it "#image_pack_url generates the correct path" do
44
- expect(image_pack_url("application.png")).to eq "https://example.com/packs/application-k344a6d59eef8632c9d1.png"
45
- expect(image_pack_url("image.jpg")).to eq "https://example.com/packs/static/image-c38deda30895059837cf.jpg"
46
- expect(image_pack_url("static/image.jpg")).to eq "https://example.com/packs/static/image-c38deda30895059837cf.jpg"
47
- expect(image_pack_url("nested/image.jpg")).to eq "https://example.com/packs/static/nested/image-c38deda30895059837cf.jpg"
48
- expect(image_pack_url("static/nested/image.jpg")).to eq "https://example.com/packs/static/nested/image-c38deda30895059837cf.jpg"
49
- end
50
-
51
- it "#image_pack_tag generates the correct tags" do
52
- expect(image_pack_tag("application.png", size: "16x10", alt: "Edit Entry")).to eq "<img alt=\"Edit Entry\" src=\"/packs/application-k344a6d59eef8632c9d1.png\" width=\"16\" height=\"10\" />"
53
- expect(image_pack_tag("image.jpg", size: "16x10", alt: "Edit Entry")).to eq "<img alt=\"Edit Entry\" src=\"/packs/static/image-c38deda30895059837cf.jpg\" width=\"16\" height=\"10\" />"
54
- expect(image_pack_tag("static/image.jpg", size: "16x10", alt: "Edit Entry")).to eq "<img alt=\"Edit Entry\" src=\"/packs/static/image-c38deda30895059837cf.jpg\" width=\"16\" height=\"10\" />"
55
- expect(image_pack_tag("nested/image.jpg", size: "16x10", alt: "Edit Entry")).to eq "<img alt=\"Edit Entry\" src=\"/packs/static/nested/image-c38deda30895059837cf.jpg\" width=\"16\" height=\"10\" />"
56
- expect(image_pack_tag("static/nested/image.jpg", size: "16x10", alt: "Edit Entry")).to eq "<img alt=\"Edit Entry\" src=\"/packs/static/nested/image-c38deda30895059837cf.jpg\" width=\"16\" height=\"10\" />"
57
- expect(image_pack_tag("static/image.jpg", srcset: { "static/image-2x.jpg" => "2x" })).to eq "<img srcset=\"/packs/static/image-2x-7cca48e6cae66ec07b8e.jpg 2x\" src=\"/packs/static/image-c38deda30895059837cf.jpg\" />"
58
- end
59
-
60
- it "#favicon_pack_tag generates the correct tags" do
61
- expect(favicon_pack_tag("application.png", rel: "apple-touch-icon", type: "image/png")).to eq "<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"/packs/application-k344a6d59eef8632c9d1.png\" />"
62
- expect(favicon_pack_tag("mb-icon.png", rel: "apple-touch-icon", type: "image/png")).to eq "<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"/packs/static/mb-icon-c38deda30895059837cf.png\" />"
63
- expect(favicon_pack_tag("static/mb-icon.png", rel: "apple-touch-icon", type: "image/png")).to eq "<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"/packs/static/mb-icon-c38deda30895059837cf.png\" />"
64
- expect(favicon_pack_tag("nested/mb-icon.png", rel: "apple-touch-icon", type: "image/png")).to eq "<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"/packs/static/nested/mb-icon-c38deda30895059837cf.png\" />"
65
- expect(favicon_pack_tag("static/nested/mb-icon.png", rel: "apple-touch-icon", type: "image/png")).to eq "<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"/packs/static/nested/mb-icon-c38deda30895059837cf.png\" />"
66
- end
67
-
68
- it "#preload_pack_asset generates the correct tag" do
69
- if self.class.method_defined?(:preload_link_tag)
70
- expect(preload_pack_asset("fonts/fa-regular-400.woff2")).to eq %(<link rel="preload" href="/packs/fonts/fa-regular-400-944fb546bd7018b07190a32244f67dc9.woff2" as="font" type="font/woff2" crossorigin="anonymous">)
71
- else
72
- expect { preload_pack_asset("fonts/fa-regular-400.woff2") }.to raise_error "You need Rails >= 5.2 to use this tag."
73
- end
74
- end
75
-
76
- it "#javascript_pack_tag generates the correct tags" do
77
- expected = <<~HTML.chomp
78
- <script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js" defer="defer"></script>
79
- <script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js" defer="defer"></script>
80
- <script src="/packs/application-k344a6d59eef8632c9d1.js" defer="defer"></script>
81
- <script src="/packs/bootstrap-300631c4f0e0f9c865bc.js" defer="defer"></script>
82
- HTML
83
-
84
- expect(javascript_pack_tag("application", "bootstrap")).to eq expected
85
- end
86
-
87
- it "#javascript_pack_tag generates the correct tags when passing `defer: false`" do
88
- expected = <<~HTML.chomp
89
- <script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js"></script>
90
- <script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js"></script>
91
- <script src="/packs/application-k344a6d59eef8632c9d1.js"></script>
92
- <script src="/packs/bootstrap-300631c4f0e0f9c865bc.js"></script>
93
- HTML
94
-
95
- expect(javascript_pack_tag("application", "bootstrap", defer: false)).to eq expected
96
- end
97
-
98
- it "#javascript_pack_tag generates the correct appended tag" do
99
- append_javascript_pack_tag("bootstrap", defer: false)
100
-
101
- expected = <<~HTML.chomp
102
- <script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js" defer="defer"></script>
103
- <script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js" defer="defer"></script>
104
- <script src="/packs/application-k344a6d59eef8632c9d1.js" defer="defer"></script>
105
- <script src="/packs/bootstrap-300631c4f0e0f9c865bc.js"></script>
106
- HTML
107
-
108
- expect(javascript_pack_tag("application")).to eq expected
109
- end
110
-
111
- it "#javascript_pack_tag generates the correct prepended tag" do
112
- append_javascript_pack_tag("bootstrap")
113
- prepend_javascript_pack_tag("main")
114
-
115
- expected = <<~HTML.chomp
116
- <script src="/packs/main-e323a53c7f30f5d53cbb.js" defer="defer"></script>
117
- <script src="/packs/bootstrap-300631c4f0e0f9c865bc.js" defer="defer"></script>
118
- <script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js" defer="defer"></script>
119
- <script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js" defer="defer"></script>
120
- <script src="/packs/application-k344a6d59eef8632c9d1.js" defer="defer"></script>
121
- HTML
122
-
123
- expect(javascript_pack_tag("application")).to eq expected
124
- end
125
-
126
- it "#append_javascript_pack_tag raises an error if called after calling #javascript_pack_tag" do
127
- expected_error_message = \
128
- "You can only call append_javascript_pack_tag before javascript_pack_tag helper. " +
129
- "Please refer to https://github.com/shakacode/shakapacker/blob/main/README.md#view-helper-append_javascript_pack_tag-prepend_javascript_pack_tag-and-append_stylesheet_pack_tag for the usage guide"
130
-
131
- expect {
132
- javascript_pack_tag("application")
133
- append_javascript_pack_tag("bootstrap", defer: false)
134
- }.to raise_error(expected_error_message)
135
- end
136
-
137
- it "#prepend_javascript_pack_tag raises an error if called after calling #javascript_pack_tag" do
138
- expected_error_message = \
139
- "You can only call prepend_javascript_pack_tag before javascript_pack_tag helper. " +
140
- "Please refer to https://github.com/shakacode/shakapacker/blob/main/README.md#view-helper-append_javascript_pack_tag-prepend_javascript_pack_tag-and-append_stylesheet_pack_tag for the usage guide"
141
-
142
- expect {
143
- javascript_pack_tag("application")
144
- prepend_javascript_pack_tag("bootstrap", defer: false)
145
- }.to raise_error(expected_error_message)
146
- end
147
-
148
- it "#javascript_pack_tag generates the correct tags when passing `defer: true`" do
149
- expected = <<~HTML.chomp
150
- <script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js" defer="defer"></script>
151
- <script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js" defer="defer"></script>
152
- <script src="/packs/application-k344a6d59eef8632c9d1.js" defer="defer"></script>
153
- HTML
154
-
155
- expect(javascript_pack_tag("application", defer: true)).to eq expected
156
- end
157
-
158
- it "#javascript_pack_tag generates the correct tags when passing a symbol" do
159
- expected = <<~HTML.chomp
160
- <script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js" defer="defer"></script>
161
- <script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js" defer="defer"></script>
162
- <script src="/packs/application-k344a6d59eef8632c9d1.js" defer="defer"></script>
163
- HTML
164
-
165
- expect(javascript_pack_tag(:application)).to eq expected
166
- end
167
-
168
- it "#javascript_pack_tag rases error on multiple invocations" do
169
- expected_error_message = "To prevent duplicated chunks on the page, you should call javascript_pack_tag only once on the page. " +
170
- "Please refer to https://github.com/shakacode/shakapacker/blob/main/README.md#view-helpers-javascript_pack_tag-and-stylesheet_pack_tag for the usage guide"
171
-
172
- expect {
173
- javascript_pack_tag(:application)
174
- javascript_pack_tag(:bootstrap)
175
- }.to raise_error(expected_error_message)
176
- end
177
-
178
- it "#stylesheet_pack_tag generates the correct link tag with string arguments" do
179
- expected = (application_stylesheet_chunks + hello_stimulus_stylesheet_chunks)
180
- .uniq
181
- .map { |chunk| stylesheet_link_tag(chunk) }
182
- .join("\n")
183
-
184
- expect(stylesheet_pack_tag("application", "hello_stimulus")).to eq expected
185
- end
186
-
187
- it "#stylesheet_pack_tag generates the correct link tag with symbol arguments" do
188
- expected = (application_stylesheet_chunks + hello_stimulus_stylesheet_chunks)
189
- .uniq
190
- .map { |chunk| stylesheet_link_tag(chunk) }
191
- .join("\n")
192
-
193
- expect(stylesheet_pack_tag(:application, :hello_stimulus)).to eq expected
194
- end
195
-
196
- it "#stylesheet_pack_tag generates the correct link tag with mixed arguments" do
197
- expected = (application_stylesheet_chunks)
198
- .map { |chunk| stylesheet_link_tag(chunk, media: "all") }
199
- .join("\n")
200
-
201
- expect(stylesheet_pack_tag("application", media: "all")).to eq expected
202
- end
203
-
204
- it "#stylesheet_pack_tag allows multiple invocations" do
205
- app_style = stylesheet_pack_tag(:application)
206
- stimulus_style = stylesheet_pack_tag(:hello_stimulus)
207
-
208
- expect(app_style).to eq application_stylesheet_chunks.map { |chunk| stylesheet_link_tag(chunk) }.join("\n")
209
-
210
- expect(stimulus_style).to eq hello_stimulus_stylesheet_chunks.map { |chunk| stylesheet_link_tag(chunk) }.join("\n")
211
-
212
- expect {
213
- stylesheet_pack_tag(:application)
214
- stylesheet_pack_tag(:hello_stimulus)
215
- }.to_not raise_error
216
- end
217
-
218
- it "#stylesheet_pack_tag appends tags" do
219
- append_stylesheet_pack_tag(:hello_stimulus)
220
-
221
- expect(stylesheet_pack_tag(:application)).to eq \
222
- (application_stylesheet_chunks + hello_stimulus_stylesheet_chunks).uniq.map { |chunk| stylesheet_link_tag(chunk) }.join("\n")
223
- end
224
-
225
- it "#stylesheet_pack_tag appends duplicate" do
226
- append_stylesheet_pack_tag(:hello_stimulus)
227
- append_stylesheet_pack_tag(:application)
228
-
229
- expect(stylesheet_pack_tag(:application)).to eq \
230
- (application_stylesheet_chunks + hello_stimulus_stylesheet_chunks).uniq.map { |chunk| stylesheet_link_tag(chunk) }.join("\n")
231
- end
232
-
233
- it "#stylesheet_pack_tag supports multiple invocations with different media attr values" do
234
- app_style = stylesheet_pack_tag(:application)
235
- app_style_with_media = stylesheet_pack_tag(:application, media: "print")
236
- hello_stimulus_style_with_media = stylesheet_pack_tag(:hello_stimulus, media: "all")
237
-
238
- expect(app_style).to eq application_stylesheet_chunks.map { |chunk| stylesheet_link_tag(chunk) }.join("\n")
239
- expect(app_style_with_media).to eq application_stylesheet_chunks.map { |chunk| stylesheet_link_tag(chunk, media: "print") }.join("\n")
240
- expect(hello_stimulus_style_with_media).to eq hello_stimulus_stylesheet_chunks.map { |chunk| stylesheet_link_tag(chunk, media: "all") }.join("\n")
241
- end
242
- end
243
- end
@@ -1,29 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- describe "Shakapacker::Instance" do
4
- before :each do
5
- ENV.delete("SHAKAPACKER_CONFIG")
6
- end
7
-
8
- after :each do
9
- ENV.delete("SHAKAPACKER_CONFIG")
10
- Shakapacker.instance = Shakapacker::Instance.new
11
- end
12
-
13
- it "uses the default config path if no env variable defined" do
14
- actual_config_path = Rails.root.join("config/shakapacker.yml")
15
- expected_config_path = Shakapacker.config.config_path
16
-
17
- expect(expected_config_path).to eq(actual_config_path)
18
- end
19
-
20
- it "uses the SHAKAPACKER_CONFIG env variable for the config file path" do
21
- ENV["SHAKAPACKER_CONFIG"] = "/some/random/path.yml"
22
- Shakapacker.instance = Shakapacker::Instance.new
23
-
24
- actual_config_path = "/some/random/path.yml"
25
- expected_config_path = Shakapacker.config.config_path.to_s
26
-
27
- expect(expected_config_path).to eq(actual_config_path)
28
- end
29
- end
@@ -1,100 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- describe "Shakapacker::Manifest" do
4
- let(:manifest_path) { File.expand_path File.join(File.dirname(__FILE__), "./test_app/public/packs", "manifest.json").to_s }
5
-
6
- it "#lookup! raises an exception for a non-existing asset file" do
7
- asset_file = "calendar.js"
8
- expected_error_message = "Shakapacker can't find #{asset_file} in #{manifest_path}"
9
-
10
- allow(Shakapacker.config).to receive(:compile?).and_return(false)
11
-
12
- expect {
13
- Shakapacker.manifest.lookup!(asset_file)
14
- }.to raise_error(Shakapacker::Manifest::MissingEntryError, /#{expected_error_message}/)
15
- end
16
-
17
- it "#lookup! raises an exception for a non-existing asset file with type and without an extension" do
18
- asset_file = "calendar"
19
- expected_error_message = "Shakapacker can't find #{asset_file}.js in #{manifest_path}"
20
-
21
- allow(Shakapacker.config).to receive(:compile?).and_return(false)
22
-
23
- expect {
24
- Shakapacker.manifest.lookup!(asset_file, type: :javascript)
25
- }.to raise_error(Shakapacker::Manifest::MissingEntryError, /#{expected_error_message}/)
26
- end
27
-
28
- it "#lookup! returns the path to the bundled bootstrap.js" do
29
- actual = Shakapacker.manifest.lookup!("bootstrap.js")
30
- expected = "/packs/bootstrap-300631c4f0e0f9c865bc.js"
31
-
32
- expect(actual).to eq expected
33
- end
34
-
35
- it "#lookup_pack_with_chunks! returns an array of paths to the bundled bootstrap of type javascript" do
36
- actual = Shakapacker.manifest.lookup_pack_with_chunks!("bootstrap", type: :javascript)
37
- expected = ["/packs/bootstrap-300631c4f0e0f9c865bc.js"]
38
-
39
- expect(actual).to eq expected
40
- end
41
-
42
- it "#lookup_with_chunks! returns an array of paths to the bundled bootstrap.js of type javascript" do
43
- actual = Shakapacker.manifest.lookup_pack_with_chunks!("bootstrap.js", type: :javascript)
44
- expected = ["/packs/bootstrap-300631c4f0e0f9c865bc.js"]
45
-
46
- expect(actual).to eq expected
47
- end
48
-
49
- it "#lookup_with_chunks! returns an array of paths to the bundled 'print/application' without an extension and in a sub-directory" do
50
- actual = Shakapacker.manifest.lookup_pack_with_chunks!("print/application", type: :css)
51
- expected = ["/packs/print/application-983b6c164a47f7ed49cd.css"]
52
-
53
- expect(actual).to eq expected
54
- end
55
-
56
- it "#lookup_with_chunks! returns an array of paths to the bundled 'print/application.css' in a sub-directory" do
57
- actual = Shakapacker.manifest.lookup_pack_with_chunks!("print/application.css", type: :css)
58
- expected = ["/packs/print/application-983b6c164a47f7ed49cd.css"]
59
-
60
- expect(actual).to eq expected
61
- end
62
-
63
- it "#lookup returns nil for non-existing asset files" do
64
- expect(Shakapacker.manifest.lookup("foo.js")).to be nil
65
- end
66
-
67
- it "#lookup_pack_with_chunks returns nil for non-existing asset files" do
68
- expect(Shakapacker.manifest.lookup_pack_with_chunks("foo.js")).to be nil
69
- end
70
-
71
- it "#lookup returns the path for bootstrap.js" do
72
- actual = Shakapacker.manifest.lookup("bootstrap.js")
73
- expected = "/packs/bootstrap-300631c4f0e0f9c865bc.js"
74
-
75
- expect(actual).to eq expected
76
- end
77
-
78
- it "#lookup_pack_with_chunks! raises an exception for non-existing asset files" do
79
- asset_file = "calendar"
80
-
81
- expected_error_message = "Shakapacker can't find #{asset_file}.js in #{manifest_path}"
82
-
83
- allow(Shakapacker.config).to receive(:compile?).and_return(false)
84
-
85
- expect {
86
- Shakapacker.manifest.lookup_pack_with_chunks!(asset_file, type: :javascript)
87
- }.to raise_error(Shakapacker::Manifest::MissingEntryError, /#{expected_error_message}/)
88
- end
89
-
90
- it "#lookup_pack_with_chunks! returns an array of paths to bundled js files with 'application' in their name" do
91
- actual_application_entrypoints = Shakapacker.manifest.lookup_pack_with_chunks!("application", type: :javascript)
92
- expected_application_entrypoints = [
93
- "/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js",
94
- "/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js",
95
- "/packs/application-k344a6d59eef8632c9d1.js"
96
- ]
97
-
98
- expect(actual_application_entrypoints).to eq expected_application_entrypoints
99
- end
100
- end
@@ -1,55 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- describe "Shakapacker::MtimeStrategy" do
4
- let(:mtime_strategy) { Shakapacker::MtimeStrategy.new }
5
- let(:manifest_timestamp) { Time.parse("2021-01-01 12:34:56 UTC") }
6
-
7
- describe "#fresh?" do
8
- it "returns false when the manifest is missing" do
9
- latest_timestamp = manifest_timestamp + 3600
10
-
11
- with_stubs(latest_timestamp: latest_timestamp.to_i, manifest_exists: false) do
12
- expect(mtime_strategy.fresh?).to be false
13
- end
14
- end
15
-
16
- it "returns false when the manifest is older" do
17
- latest_timestamp = manifest_timestamp + 3600
18
-
19
- with_stubs(latest_timestamp: latest_timestamp.to_i) do
20
- expect(mtime_strategy.fresh?).to be false
21
- end
22
- end
23
-
24
- it "returns true when the manifest is new" do
25
- latest_timestamp = manifest_timestamp - 3600
26
-
27
- with_stubs(latest_timestamp: latest_timestamp.to_i) do
28
- expect(mtime_strategy.fresh?).to be true
29
- end
30
- end
31
- end
32
-
33
- describe "#stale?" do
34
- it "returns false when #fresh? is true" do
35
- expect(mtime_strategy).to receive(:fresh?).and_return(true)
36
-
37
- expect(mtime_strategy.stale?).to be false
38
- end
39
-
40
- it "returns true when #fresh? is false" do
41
- expect(mtime_strategy).to receive(:fresh?).and_return(false)
42
-
43
- expect(mtime_strategy.stale?).to be true
44
- end
45
- end
46
-
47
- private
48
-
49
- def with_stubs(latest_timestamp:, manifest_exists: true)
50
- allow(mtime_strategy).to receive(:latest_modified_timestamp).and_return(latest_timestamp)
51
- allow(FileTest).to receive(:exist?).and_return(manifest_exists)
52
- allow(File).to receive(:mtime).and_return(manifest_timestamp)
53
- yield
54
- end
55
- end
@@ -1,85 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- describe "RakeTasks" do
4
- TEST_APP_PATH = File.expand_path("./test_app", __dir__)
5
-
6
- it "`rake -T` lists Shakapacker tasks" do
7
- output = Dir.chdir(TEST_APP_PATH) { `rake -T` }
8
- expect(output).to include "shakapacker"
9
- expect(output).to include "shakapacker:check_binstubs"
10
- expect(output).to include "shakapacker:check_node"
11
- expect(output).to include "shakapacker:check_manager"
12
- expect(output).to include "shakapacker:clean"
13
- expect(output).to include "shakapacker:clobber"
14
- expect(output).to include "shakapacker:compile"
15
- expect(output).to include "shakapacker:install"
16
- expect(output).to include "shakapacker:verify_install"
17
- end
18
-
19
- it "`shakapacker:check_binstubs` doesn't get 'webpack binstub not found' error" do
20
- output = Dir.chdir(TEST_APP_PATH) { `rake shakapacker:check_binstubs 2>&1` }
21
-
22
- expect(output).to_not include "webpack binstub not found."
23
- end
24
-
25
- it "`shakapacker:check_node` doesn't get 'shakapacker requires Node.js' error" do
26
- output = Dir.chdir(TEST_APP_PATH) { `rake shakapacker:check_node 2>&1` }
27
-
28
- expect(output).to_not include "Shakapacker requires Node.js"
29
- end
30
-
31
- # TODO: currently this test depends on external conditions & PACKAGE_JSON_FALLBACK_MANAGER
32
- it "`shakapacker:check_manager` doesn't get errors related to the package manager" do
33
- output = Dir.chdir(TEST_APP_PATH) { `rake shakapacker:check_manager 2>&1` }
34
-
35
- expect(output).to_not include "not installed"
36
- expect(output).to_not include "Shakapacker requires"
37
- end
38
-
39
- describe "`shakapacker:check_binstubs`" do
40
- def with_temporary_file(file_name)
41
- FileUtils.touch(file_name, verbose: false)
42
- yield if block_given?
43
- ensure
44
- FileUtils.rm_f(file_name, verbose: false)
45
- end
46
-
47
- before :all do
48
- Dir.chdir(TEST_APP_PATH)
49
- end
50
-
51
- context "with existing `./bin/shakapacker` and `./bin/shakapacker-dev-server`" do
52
- it "passes" do
53
- expect { system("bundle exec rake shakapacker:check_binstubs") }.to output("").to_stdout_from_any_process
54
- end
55
- end
56
-
57
- context "without `./bin/shakapacker`" do
58
- before :all do
59
- FileUtils.mv("bin/shakapacker", "bin/shakapacker_renamed")
60
- end
61
-
62
- after :all do
63
- FileUtils.mv("bin/shakapacker_renamed", "bin/shakapacker")
64
- end
65
-
66
- it "fails" do
67
- expect { system("bundle exec rake shakapacker:check_binstubs") }.to output(/Couldn't find shakapacker binstubs!/).to_stdout_from_any_process
68
- end
69
- end
70
-
71
- context "without `./bin/shakapacker-dev-server`" do
72
- before :all do
73
- FileUtils.mv("bin/shakapacker-dev-server", "bin/shakapacker-dev-server_renamed")
74
- end
75
-
76
- after :all do
77
- FileUtils.mv("bin/shakapacker-dev-server_renamed", "bin/shakapacker-dev-server")
78
- end
79
-
80
- it "fails" do
81
- expect { system("bundle exec rake shakapacker:check_binstubs") }.to output(/Couldn't find shakapacker binstubs!/).to_stdout_from_any_process
82
- end
83
- end
84
- end
85
- end
@@ -1,40 +0,0 @@
1
- require_relative "spec_helper_initializer"
2
-
3
- describe "Shakapacker" do
4
- describe "#inline_css?" do
5
- let(:dev_server) { instance_double("Shakapacker::DevServer") }
6
-
7
- before :each do
8
- allow(dev_server).to receive(:host).and_return("localhost")
9
- allow(dev_server).to receive(:port).and_return("3035")
10
- allow(dev_server).to receive(:pretty?).and_return(false)
11
- allow(dev_server).to receive(:running?).and_return(true)
12
- end
13
-
14
- it "returns nil when the dev server is disabled" do
15
- expect(Shakapacker.inlining_css?).to be nil
16
- end
17
-
18
- it "returns true when hmr is enabled" do
19
- allow(dev_server).to receive(:hmr?).and_return(true)
20
- allow(dev_server).to receive(:inline_css?).and_return(true)
21
-
22
- allow(Shakapacker.instance).to receive(:dev_server).and_return(dev_server)
23
-
24
- expect(Shakapacker.inlining_css?).to be true
25
- end
26
-
27
- it "returns false when hmr is enabled and inline_css is explicitly set to false" do
28
- allow(dev_server).to receive(:hmr?).and_return(true)
29
- allow(dev_server).to receive(:inline_css?).and_return(false)
30
-
31
- allow(Shakapacker.instance).to receive(:dev_server).and_return(dev_server)
32
-
33
- expect(Shakapacker.inlining_css?).to be false
34
- end
35
- end
36
-
37
- it "automatically cleans up app_autoload_paths" do
38
- expect($test_app_autoload_paths_in_initializer).to eq []
39
- end
40
- end
@@ -1,24 +0,0 @@
1
- require_relative "./test_app/config/environment"
2
-
3
- Rails.env = "production"
4
-
5
- Shakapacker.instance = ::Shakapacker::Instance.new
6
-
7
- def reloaded_config
8
- Shakapacker.instance.instance_variable_set(:@env, nil)
9
- Shakapacker.instance.instance_variable_set(:@config, nil)
10
- Shakapacker.instance.instance_variable_set(:@dev_server, nil)
11
- Shakapacker.env
12
- Shakapacker.config
13
- Shakapacker.dev_server
14
- end
15
-
16
- def with_rails_env(env)
17
- original = Rails.env
18
- Rails.env = ActiveSupport::StringInquirer.new(env)
19
- reloaded_config
20
- yield
21
- ensure
22
- Rails.env = ActiveSupport::StringInquirer.new(original)
23
- reloaded_config
24
- end
@@ -1,2 +0,0 @@
1
- log/
2
- tmp/
@@ -1,3 +0,0 @@
1
- require_relative "config/application"
2
-
3
- Rails.application.load_tasks