File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed
lib/Mojo/Server/Morbo/Backend Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -6,16 +6,26 @@ use Mojo::File qw(path);
66sub modified_files {
77 my $self = shift ;
88
9- my $cache = $self -> {cache } //= {};
9+ my $cache = $self -> {cache } //= {};
10+ my $known_files = {map { $_ => 1 } keys %$cache };
1011 my @files ;
1112 for my $file (map { -f $_ && -r _ ? $_ : _list($_ ) } @{$self -> watch}) {
13+ delete $known_files -> {$file };
1214 my ($size , $mtime ) = (stat $file )[7, 9];
1315 next unless defined $size and defined $mtime ;
1416 my $stats = $cache -> {$file } ||= [$^T, $size ];
1517 next if $mtime <= $stats -> [0] && $size == $stats -> [1];
1618 @$stats = ($mtime , $size );
1719 push @files , $file ;
1820 }
21+
22+ for my $file (keys %$known_files ) {
23+
24+ # Any leftover file means they were deleted
25+ push @files , $file ;
26+ delete $cache -> {$file };
27+ }
28+
1929 sleep $self -> watch_timeout unless @files ;
2030
2131 return \@files ;
Original file line number Diff line number Diff line change 131131 is $tx -> res-> body, ' Hello!' , ' right content' ;
132132};
133133
134+ subtest ' Watch for deleted files' => sub {
135+ my $morbo = Mojo::Server::Morbo-> new;
136+ $morbo -> backend-> watch([$dir ]);
137+ $morbo -> backend-> modified_files;
138+ my $tmp_file = $dir -> child(' tmp_file.txt' );
139+ $tmp_file -> spew(" some data" );
140+ is_deeply $morbo -> backend-> modified_files, [$tmp_file ], ' file was created' ;
141+ is_deeply $morbo -> backend-> modified_files, [], ' no files changed' ;
142+ unlink $tmp_file ;
143+ is_deeply $morbo -> backend-> modified_files, [$tmp_file ], ' file was deleted' ;
144+ is_deeply $morbo -> backend-> modified_files, [], ' no files changed' ;
145+ };
146+
134147subtest ' New file(s)' => sub {
135148 is_deeply $morbo -> backend-> modified_files, [], ' directory has not changed' ;
136149 my @new = map { $subdir -> child(" $_ .txt" ) } qw/ test testing/ ;
You can’t perform that action at this time.
0 commit comments