vite_rails 1.0.5 → 1.0.10

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/CONTRIBUTING.md +0 -1
  4. data/README.md +31 -69
  5. data/lib/install/javascript/entrypoints/application.js +8 -4
  6. data/lib/install/template.rb +1 -1
  7. data/lib/tasks/vite/build.rake +2 -6
  8. data/lib/tasks/vite/clean.rake +1 -3
  9. data/lib/tasks/vite/info.rake +0 -1
  10. data/lib/tasks/vite/verify_install.rake +3 -3
  11. data/lib/vite_rails.rb +14 -25
  12. data/lib/vite_rails/builder.rb +11 -13
  13. data/lib/vite_rails/commands.rb +51 -10
  14. data/lib/vite_rails/config.rb +65 -30
  15. data/lib/vite_rails/dev_server_proxy.rb +26 -18
  16. data/lib/vite_rails/helper.rb +15 -8
  17. data/lib/vite_rails/manifest.rb +6 -4
  18. data/lib/vite_rails/runner.rb +3 -6
  19. data/lib/vite_rails/version.rb +1 -1
  20. data/package.json +5 -1
  21. data/package/default.vite.json +2 -1
  22. data/test/builder_test.rb +27 -22
  23. data/test/commands_test.rb +67 -0
  24. data/test/config_test.rb +133 -0
  25. data/test/dev_server_proxy_test.rb +101 -0
  26. data/test/dev_server_test.rb +0 -30
  27. data/test/engine_rake_tasks_test.rb +55 -17
  28. data/test/helper_test.rb +37 -105
  29. data/test/manifest_test.rb +33 -29
  30. data/test/mode_test.rb +6 -11
  31. data/test/mounted_app/test/dummy/config/vite.json +5 -11
  32. data/test/mounted_app/test/dummy/package.json +2 -1
  33. data/test/mounted_app/test/dummy/yarn.lock +208 -0
  34. data/test/rake_tasks_test.rb +5 -19
  35. data/test/runner_test.rb +31 -0
  36. data/test/test_app/app/frontend/entrypoints/application.js +2 -0
  37. data/test/test_app/config/vite.json +0 -2
  38. data/test/test_app/config/vite_additional_paths.json +5 -0
  39. data/test/test_app/config/vite_public_dir.json +5 -0
  40. data/test/test_app/public/vite-production/manifest.json +22 -0
  41. data/test/test_helper.rb +48 -14
  42. metadata +23 -25
  43. data/test/command_test.rb +0 -35
  44. data/test/configuration_test.rb +0 -80
  45. data/test/dev_server_runner_test.rb +0 -83
  46. data/test/test_app/app/javascript/entrypoints/application.js +0 -10
  47. data/test/test_app/app/javascript/entrypoints/multi_entry.css +0 -4
  48. data/test/test_app/app/javascript/entrypoints/multi_entry.js +0 -4
  49. data/test/test_app/config/vite_public_root.yml +0 -20
  50. data/test/test_app/public/vite/manifest.json +0 -36
  51. data/test/vite_runner_test.rb +0 -59
  52. data/test/webpacker_test.rb +0 -15
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- class ManifestTest < Minitest::Test
5
+ class ManifestTest < ViteRails::Test
6
6
  def test_lookup_exception!
7
7
  asset_file = 'calendar.js'
8
8
 
@@ -10,7 +10,7 @@ class ManifestTest < Minitest::Test
10
10
  ViteRails.manifest.lookup!(asset_file)
11
11
  end
12
12
 
13
- assert_match "ViteRails can't find #{ asset_file } in #{ manifest_path }", error.message
13
+ assert_match "Vite Rails can't find #{ asset_file } in #{ manifest_path }", error.message
14
14
  end
15
15
 
16
16
  def test_lookup_with_type_exception!
@@ -20,56 +20,60 @@ class ManifestTest < Minitest::Test
20
20
  ViteRails.manifest.lookup!(asset_file, type: :javascript)
21
21
  end
22
22
 
23
- assert_match "ViteRails can't find #{ asset_file }.js in #{ manifest_path }", error.message
23
+ assert_match "Vite Rails can't find #{ asset_file }.js in #{ manifest_path }", error.message
24
24
  end
25
25
 
26
26
  def test_lookup_success!
27
- assert_equal ViteRails.manifest.lookup!('bootstrap.js'), '/packs/bootstrap-300631c4f0e0f9c865bc.js'
27
+ entry = {
28
+ 'file' => '/vite-production/assets/application.a0ba047e.js',
29
+ 'imports' => [
30
+ '/vite-production/assets/example_import.8e1fddc0.js',
31
+ ],
32
+ }
33
+ assert_equal entry, ViteRails.manifest.lookup!('application.js', type: :javascript)
34
+ assert_equal entry, ViteRails.manifest.lookup!('application', type: :typescript)
28
35
  end
29
36
 
30
- def test_lookup_nil
31
- assert_nil ViteRails.manifest.lookup('foo.js')
37
+ def test_lookup_success_with_dev_server_running!
38
+ entry = { 'file' => '/vite-production/application.js' }
39
+ with_dev_server_running {
40
+ assert_equal entry, ViteRails.manifest.lookup!('application.js')
41
+ }
42
+ entry = { 'file' => '/vite-production/application.ts' }
43
+ with_dev_server_running {
44
+ assert_equal entry, ViteRails.manifest.lookup!('application', type: :typescript)
45
+ }
32
46
  end
33
47
 
34
- def test_lookup_chunks_nil
35
- assert_nil ViteRails.manifest.lookup_pack_with_chunks('foo.js')
48
+ def test_lookup_nil
49
+ assert_nil ViteRails.manifest.lookup('foo.js')
36
50
  end
37
51
 
38
52
  def test_lookup_success
39
- assert_equal ViteRails.manifest.lookup('bootstrap.js'), '/packs/bootstrap-300631c4f0e0f9c865bc.js'
40
- end
41
-
42
- def test_lookup_entrypoint_exception!
43
- asset_file = 'calendar'
44
-
45
- error = assert_raises_manifest_missing_entry_error do
46
- ViteRails.manifest.lookup_pack_with_chunks!(asset_file, type: :javascript)
47
- end
48
-
49
- assert_match "ViteRails can't find #{ asset_file }.js in #{ manifest_path }", error.message
53
+ entry = { 'file' => '/vite-production/assets/application.cccfef34.css', 'imports' => nil }
54
+ assert_equal entry, ViteRails.manifest.lookup('application.css')
55
+ assert_equal entry, ViteRails.manifest.lookup('application.css', type: :stylesheet)
56
+ assert_equal entry, ViteRails.manifest.lookup('application', type: :stylesheet)
50
57
  end
51
58
 
52
- def test_lookup_entrypoint
53
- application_entrypoints = [
54
- '/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js',
55
- '/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js',
56
- '/packs/application-k344a6d59eef8632c9d1.js',
57
- ]
58
-
59
- assert_equal ViteRails.manifest.lookup_pack_with_chunks!('application', type: :javascript), application_entrypoints
59
+ def test_lookup_success_with_dev_server_running
60
+ entry = { 'file' => '/vite-production/application.css' }
61
+ with_dev_server_running {
62
+ assert_equal entry, ViteRails.manifest.lookup('application', type: :stylesheet)
63
+ }
60
64
  end
61
65
 
62
66
  private
63
67
 
64
68
  def assert_raises_manifest_missing_entry_error(&block)
65
69
  error = nil
66
- ViteRails.config.stub :compile?, false do
70
+ ViteRails.config.stub :auto_build, false do
67
71
  error = assert_raises ViteRails::Manifest::MissingEntryError, &block
68
72
  end
69
73
  error
70
74
  end
71
75
 
72
76
  def manifest_path
73
- File.expand_path File.join(File.dirname(__FILE__), 'test_app/public/packs', 'manifest.json').to_s
77
+ File.expand_path File.join(File.dirname(__FILE__), 'test_app/public/vite-production', 'manifest.json').to_s
74
78
  end
75
79
  end
@@ -3,19 +3,14 @@
3
3
  require 'test_helper'
4
4
 
5
5
  class ModeTest < ViteRails::Test
6
- def test_current
7
- assert_equal ViteRails.config.mode, Rails.env
6
+ def test_mode
7
+ assert_equal Rails.env, ViteRails.config.mode
8
+ assert_equal ViteRails.config.mode, ViteRails.mode
8
9
  end
9
10
 
10
- def test_custom_without_config
11
- with_rails_env('foo') do
12
- assert_equal ViteRails.config.mode, 'production'
13
- end
14
- end
15
-
16
- def test_custom_with_config
17
- with_rails_env('staging') do
18
- assert_equal ViteRails.config.mode, 'staging'
11
+ def test_mode_with_rails_env
12
+ with_rails_env('staging') do |config|
13
+ assert_equal 'staging', config.mode
19
14
  end
20
15
  end
21
16
  end
@@ -1,20 +1,14 @@
1
1
  {
2
+ "all": {
3
+ "watchAdditionalPaths": []
4
+ },
2
5
  "development": {
3
6
  "autoBuild": true,
4
- "port": "3535",
5
- "https": true,
6
- "publicOutputDir": "vite-development"
7
+ "publicOutputDir": "vite-dev",
8
+ "port": 3036
7
9
  },
8
10
  "test": {
9
11
  "autoBuild": true,
10
12
  "publicOutputDir": "vite-test"
11
- },
12
- "production": {
13
- "autoBuild": false,
14
- "publicOutputDir": "vite-production"
15
- },
16
- "staging": {
17
- "autoBuild": false,
18
- "publicOutputDir": "vite-staging"
19
13
  }
20
14
  }
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "private": true,
3
3
  "dependencies": {
4
- "vite_rails": "file:../../../../"
4
+ "vite": "^2.0.0-beta.34",
5
+ "vite-plugin-ruby": "^1.0.2"
5
6
  },
6
7
  "license": "MIT"
7
8
  }
@@ -0,0 +1,208 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@nodelib/fs.scandir@2.1.4":
6
+ version "2.1.4"
7
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
8
+ integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==
9
+ dependencies:
10
+ "@nodelib/fs.stat" "2.0.4"
11
+ run-parallel "^1.1.9"
12
+
13
+ "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
14
+ version "2.0.4"
15
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
16
+ integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==
17
+
18
+ "@nodelib/fs.walk@^1.2.3":
19
+ version "1.2.6"
20
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
21
+ integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==
22
+ dependencies:
23
+ "@nodelib/fs.scandir" "2.1.4"
24
+ fastq "^1.6.0"
25
+
26
+ braces@^3.0.1:
27
+ version "3.0.2"
28
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
29
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
30
+ dependencies:
31
+ fill-range "^7.0.1"
32
+
33
+ colorette@^1.2.1:
34
+ version "1.2.1"
35
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
36
+ integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
37
+
38
+ esbuild@^0.8.26:
39
+ version "0.8.34"
40
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.34.tgz#16b4ac58f74c821d2c5a8c2f0585ca96a38ab4e6"
41
+ integrity sha512-tnr0V1ooakYr1aRLXQLzCn2GVG1kBTW3FWpRyC+NgrR3ntsouVpJOlTOV0BS4YLATx3/c+x3h/uBq9lWJlUAtQ==
42
+
43
+ fast-glob@^3.2.4:
44
+ version "3.2.5"
45
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
46
+ integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
47
+ dependencies:
48
+ "@nodelib/fs.stat" "^2.0.2"
49
+ "@nodelib/fs.walk" "^1.2.3"
50
+ glob-parent "^5.1.0"
51
+ merge2 "^1.3.0"
52
+ micromatch "^4.0.2"
53
+ picomatch "^2.2.1"
54
+
55
+ fastq@^1.6.0:
56
+ version "1.10.0"
57
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb"
58
+ integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==
59
+ dependencies:
60
+ reusify "^1.0.4"
61
+
62
+ fill-range@^7.0.1:
63
+ version "7.0.1"
64
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
65
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
66
+ dependencies:
67
+ to-regex-range "^5.0.1"
68
+
69
+ fsevents@~2.1.2:
70
+ version "2.1.3"
71
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
72
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
73
+
74
+ function-bind@^1.1.1:
75
+ version "1.1.1"
76
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
77
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
78
+
79
+ glob-parent@^5.1.0:
80
+ version "5.1.1"
81
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
82
+ integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
83
+ dependencies:
84
+ is-glob "^4.0.1"
85
+
86
+ has@^1.0.3:
87
+ version "1.0.3"
88
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
89
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
90
+ dependencies:
91
+ function-bind "^1.1.1"
92
+
93
+ is-core-module@^2.1.0:
94
+ version "2.2.0"
95
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
96
+ integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
97
+ dependencies:
98
+ has "^1.0.3"
99
+
100
+ is-extglob@^2.1.1:
101
+ version "2.1.1"
102
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
103
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
104
+
105
+ is-glob@^4.0.1:
106
+ version "4.0.1"
107
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
108
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
109
+ dependencies:
110
+ is-extglob "^2.1.1"
111
+
112
+ is-number@^7.0.0:
113
+ version "7.0.0"
114
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
115
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
116
+
117
+ merge2@^1.3.0:
118
+ version "1.4.1"
119
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
120
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
121
+
122
+ micromatch@^4.0.2:
123
+ version "4.0.2"
124
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
125
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
126
+ dependencies:
127
+ braces "^3.0.1"
128
+ picomatch "^2.0.5"
129
+
130
+ nanoid@^3.1.20:
131
+ version "3.1.20"
132
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
133
+ integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
134
+
135
+ path-parse@^1.0.6:
136
+ version "1.0.6"
137
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
138
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
139
+
140
+ picomatch@^2.0.5, picomatch@^2.2.1:
141
+ version "2.2.2"
142
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
143
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
144
+
145
+ postcss@^8.2.1:
146
+ version "8.2.4"
147
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04"
148
+ integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==
149
+ dependencies:
150
+ colorette "^1.2.1"
151
+ nanoid "^3.1.20"
152
+ source-map "^0.6.1"
153
+
154
+ resolve@^1.19.0:
155
+ version "1.19.0"
156
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
157
+ integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
158
+ dependencies:
159
+ is-core-module "^2.1.0"
160
+ path-parse "^1.0.6"
161
+
162
+ reusify@^1.0.4:
163
+ version "1.0.4"
164
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
165
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
166
+
167
+ rollup@^2.35.1:
168
+ version "2.37.1"
169
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.37.1.tgz#aa7aadffd75c80393f9314f9857e851b0ffd34e7"
170
+ integrity sha512-V3ojEeyGeSdrMSuhP3diBb06P+qV4gKQeanbDv+Qh/BZbhdZ7kHV0xAt8Yjk4GFshq/WjO7R4c7DFM20AwTFVQ==
171
+ optionalDependencies:
172
+ fsevents "~2.1.2"
173
+
174
+ run-parallel@^1.1.9:
175
+ version "1.1.10"
176
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
177
+ integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
178
+
179
+ source-map@^0.6.1:
180
+ version "0.6.1"
181
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
182
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
183
+
184
+ to-regex-range@^5.0.1:
185
+ version "5.0.1"
186
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
187
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
188
+ dependencies:
189
+ is-number "^7.0.0"
190
+
191
+ vite-plugin-ruby@^1.0.2:
192
+ version "1.0.2"
193
+ resolved "https://registry.yarnpkg.com/vite-plugin-ruby/-/vite-plugin-ruby-1.0.2.tgz#9c193982c912b6399d9b269136e533201b445fb1"
194
+ integrity sha512-m+CIyHiZElaW4TpdtyVQXnvLbz5ovYSwo5bTgr/ODLPMgmAqTaZu9GImPkIMZwp8PmBWnHT8h6vUtnIq0yFLOg==
195
+ dependencies:
196
+ fast-glob "^3.2.4"
197
+
198
+ vite@^2.0.0-beta.34:
199
+ version "2.0.0-beta.36"
200
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.0-beta.36.tgz#ccecac854ded0b7c0fe14c52c0460e1c23a9c70b"
201
+ integrity sha512-+Q/Twq1/tpNQIZl0HSFTqiEuP7lXj+6H/f9q63+s5I2K/sqgSUajL3PL7W9uUUIv9dYpJ1eLqkO42ppH9w9Ldw==
202
+ dependencies:
203
+ esbuild "^0.8.26"
204
+ postcss "^8.2.1"
205
+ resolve "^1.19.0"
206
+ rollup "^2.35.1"
207
+ optionalDependencies:
208
+ fsevents "~2.1.2"
@@ -5,37 +5,23 @@ require 'test_helper'
5
5
  class RakeTasksTest < Minitest::Test
6
6
  def test_rake_tasks
7
7
  output = Dir.chdir(test_app_path) { `rake -T` }
8
- assert_includes output, 'vite_rails'
9
- assert_includes output, 'vite:check_binstubs'
10
- assert_includes output, 'vite:check_node'
11
- assert_includes output, 'vite:check_yarn'
8
+ assert_includes output, 'vite:build'
12
9
  assert_includes output, 'vite:clean'
13
10
  assert_includes output, 'vite:clobber'
14
- assert_includes output, 'vite:compile'
15
11
  assert_includes output, 'vite:install'
12
+ assert_includes output, 'vite:install_dependencies'
16
13
  assert_includes output, 'vite:verify_install'
17
14
  end
18
15
 
19
16
  def test_rake_task_vite_check_binstubs
20
- output = Dir.chdir(test_app_path) { `rake vite:check_binstubs 2>&1` }
17
+ output = Dir.chdir(test_app_path) { `rake vite:verify_install 2>&1` }
21
18
  refute_includes output, 'vite binstub not found.'
22
19
  end
23
20
 
24
- def test_check_node_version
25
- output = Dir.chdir(test_app_path) { `rake vite:check_node 2>&1` }
26
- refute_includes output, 'ViteRails requires Node.js'
27
- end
28
-
29
- def test_check_yarn_version
30
- output = Dir.chdir(test_app_path) { `rake vite:check_yarn 2>&1` }
31
- refute_includes output, 'Yarn not installed'
32
- refute_includes output, 'ViteRails requires Yarn'
33
- end
34
-
35
21
  def test_rake_vite_install_dependencies_in_non_production_environments
36
22
  assert_includes test_app_dev_dependencies, 'right-pad'
37
23
 
38
- ViteRails.with_node_env('test') do
24
+ ViteRails.commands.send(:with_node_env, 'test') do
39
25
  Dir.chdir(test_app_path) do
40
26
  `bundle exec rake vite:install_dependencies`
41
27
  end
@@ -46,7 +32,7 @@ class RakeTasksTest < Minitest::Test
46
32
  end
47
33
 
48
34
  def test_rake_vite_install_dependencies_in_production_environment
49
- ViteRails.with_node_env('production') do
35
+ ViteRails.commands.send(:with_node_env, 'production') do
50
36
  Dir.chdir(test_app_path) do
51
37
  `bundle exec rake vite:install_dependencies`
52
38
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class RunnerTest < ViteRails::Test
6
+ def test_dev_server_command
7
+ assert_run_command(flags: ['--mode', 'production'])
8
+ end
9
+
10
+ def test_dev_server_command_via_yarn
11
+ assert_run_command(flags: ['--mode', 'production'], use_yarn: true)
12
+ end
13
+
14
+ def test_dev_server_command_with_argument
15
+ assert_run_command('--quiet', flags: ['--mode', 'production'])
16
+ end
17
+
18
+ def test_build_command
19
+ assert_run_command('build', flags: ['--mode', 'production'])
20
+ end
21
+
22
+ def test_build_command_via_yarn
23
+ assert_run_command('build', flags: ['--mode', 'production'], use_yarn: true)
24
+ end
25
+
26
+ def test_build_command_with_argument
27
+ with_rails_env('development') do
28
+ assert_run_command('build', '--emptyOutDir', flags: ['--mode', 'development'])
29
+ end
30
+ end
31
+ end