@@ -37,31 +37,49 @@ def test_build_returns_failure_status_when_stale
3737
3838 def test_clean
3939 with_rails_env ( 'test' ) { |config |
40- manifest = config . build_output_dir . join ( 'manifest.json' )
40+ manifest = config . build_output_dir . join ( '.vite/manifest.json' )
41+ js_file = config . build_output_dir . join ( 'assets/application.js' )
4142
4243 # Should not clean, the manifest does not exist.
43- config . build_output_dir . mkdir unless config . build_output_dir . exist?
44+ ensure_output_dirs ( config )
4445 refute clean
4546
4647 # Should not clean, the file is recent.
4748 manifest . write ( '{}' )
49+ js_file . write ( 'export {}' )
4850 assert clean_from_task ( OpenStruct . new )
4951 assert_path_exists manifest
52+ assert_path_exists js_file
53+
54+ # Should not clean if directly referenced.
55+ manifest . write ( '{ "application.js": { "file": "assets/application.js" } }' )
56+ assert clean ( keep_up_to : 0 , age_in_seconds : 0 )
57+ assert_path_exists js_file
5058
5159 # Should clean if we remove age restrictions.
60+ manifest . write ( '{}' )
5261 assert clean ( keep_up_to : 0 , age_in_seconds : 0 )
5362 assert_path_exists config . build_output_dir
54- refute_path_exists manifest
63+ refute_path_exists js_file
5564 }
5665 end
5766
5867 def test_clobber
5968 with_rails_env ( 'test' ) { |config |
60- config . build_output_dir . mkdir unless config . build_output_dir . exist?
61- config . build_output_dir . join ( 'manifest.json' ) . write ( '{}' )
69+ ensure_output_dirs ( config )
70+ config . build_output_dir . join ( '.vite/ manifest.json' ) . write ( '{}' )
6271 assert_path_exists config . build_output_dir
6372 clobber
6473 refute_path_exists config . build_output_dir
6574 }
6675 end
76+
77+ private
78+
79+ def ensure_output_dirs ( config )
80+ config . build_output_dir . rmtree rescue nil
81+ config . build_output_dir . mkdir unless config . build_output_dir . exist?
82+ config . build_output_dir . join ( '.vite' ) . mkdir unless config . build_output_dir . join ( '.vite' ) . exist?
83+ config . build_output_dir . join ( 'assets' ) . mkdir unless config . build_output_dir . join ( 'assets' ) . exist?
84+ end
6785end
0 commit comments