@@ -14,12 +14,18 @@ def mtime(filename)
1414 let ( :factory_cleaner ) { class_double ( CypressDev ::SmartFactoryWrapper ::FactoryCleaner , clean : true ) }
1515 let ( :kernel_double ) { class_double ( Kernel , load : true ) }
1616 let ( :file_double ) { FileSystemDummy . new ( mtime_hash ) }
17+ let ( :dir_double ) { class_double ( Dir ) }
18+
19+ before do
20+ allow ( Dir ) . to receive ( :[] ) . with ( *files ) { mtime_hash . keys }
21+ end
1722
1823 subject do
1924 described_class . new ( files : files ,
2025 factory : factory_double ,
2126 kernel : kernel_double ,
2227 file_system : file_double ,
28+ dir_system : dir_double ,
2329 factory_cleaner : factory_cleaner )
2430 end
2531
@@ -52,7 +58,7 @@ def mtime(filename)
5258 expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' ) . once
5359 end
5460
55- it 'will reload the files if a has changed' do
61+ it 'will reload the files if any have changed' do
5662 subject . create ( :user )
5763 expect ( kernel_double ) . to have_received ( :load ) . with ( 'file1.rb' ) . once
5864 expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' ) . once
@@ -63,6 +69,18 @@ def mtime(filename)
6369 expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' ) . twice
6470 end
6571
72+ it 'will reload only the files that exist' do
73+ subject . always_reload = true
74+ subject . create ( :user )
75+ expect ( kernel_double ) . to have_received ( :load ) . with ( 'file1.rb' ) . once
76+ expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' ) . once
77+
78+ mtime_hash . delete ( 'file1.rb' )
79+ subject . create_list ( :user )
80+ expect ( kernel_double ) . to have_received ( :load ) . with ( 'file1.rb' ) . once
81+ expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' ) . twice
82+ end
83+
6684 it 'will reset factory if a has changed' do
6785 subject . create ( :user )
6886 expect ( factory_cleaner ) . to have_received ( :clean ) . with ( factory_double )
@@ -80,4 +98,18 @@ def mtime(filename)
8098 expect ( kernel_double ) . to have_received ( :load ) . with ( 'file1.rb' ) . twice
8199 expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' ) . twice
82100 end
101+
102+ context 'files is a string' do
103+ let ( :files ) { 'file*.rb' }
104+
105+ before do
106+ allow ( Dir ) . to receive ( :[] ) . with ( 'file*.rb' ) { mtime_hash . keys }
107+ end
108+
109+ it 'loads all the files on first create it' do
110+ subject . create ( :user )
111+ expect ( kernel_double ) . to have_received ( :load ) . with ( 'file1.rb' )
112+ expect ( kernel_double ) . to have_received ( :load ) . with ( 'file2.rb' )
113+ end
114+ end
83115end
0 commit comments