@@ -56,6 +56,44 @@ public void Cleanup_saves_settings_even_when_a_delete_fails()
5656 Assert . NotNull ( SettingsStore . Load ( settingsPath ) . LastCleanupUtc ) ;
5757 }
5858
59+ [ Fact ]
60+ public void Cleanup_with_zero_days_deletes_fresh_directories ( )
61+ {
62+ var root = CreateTempDir ( ) ;
63+ var settingsRoot = CreateTempDir ( ) ;
64+ var settingsPath = Path . Combine ( settingsRoot , "go.toml" ) ;
65+ var first = CreateSubDir ( root , "first" ) ;
66+ var second = CreateSubDir ( root , "second" ) ;
67+
68+ Directory . SetLastWriteTimeUtc ( first , DateTime . UtcNow ) ;
69+ Directory . SetLastWriteTimeUtc ( second , DateTime . UtcNow ) ;
70+
71+ var exit = CleanupManager . Cleanup ( days : 0 , root : root , settingsPath : settingsPath ) ;
72+
73+ Assert . Equal ( 0 , exit ) ;
74+ Assert . False ( Directory . Exists ( first ) ) ;
75+ Assert . False ( Directory . Exists ( second ) ) ;
76+ }
77+
78+ [ Fact ]
79+ public void Cleanup_with_zero_days_preserves_files_in_root ( )
80+ {
81+ var root = CreateTempDir ( ) ;
82+ var settingsRoot = CreateTempDir ( ) ;
83+ var settingsPath = Path . Combine ( settingsRoot , "go.toml" ) ;
84+ var subdir = CreateSubDir ( root , "cached" ) ;
85+ var looseFile = Path . Combine ( root , "go.toml" ) ;
86+ File . WriteAllText ( looseFile , "settings" ) ;
87+
88+ Directory . SetLastWriteTimeUtc ( subdir , DateTime . UtcNow ) ;
89+
90+ var exit = CleanupManager . Cleanup ( days : 0 , root : root , settingsPath : settingsPath ) ;
91+
92+ Assert . Equal ( 0 , exit ) ;
93+ Assert . False ( Directory . Exists ( subdir ) ) ;
94+ Assert . True ( File . Exists ( looseFile ) ) ;
95+ }
96+
5997 [ Fact ]
6098 public void SettingsStore_roundtrips_last_cleanup_utc ( )
6199 {
0 commit comments