test(data): Migration des Legacy-AppData-Verzeichnisses abdecken
Paths.MigrateLegacyAppDataRoot war ungetestet: Verschieben von ~/.todo-app nach ~/.claudeDo, Pfad-Rewrite in den Config-Dateien und der No-Op-Fall.
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
using ClaudeDo.Data;
|
||||||
|
|
||||||
|
namespace ClaudeDo.Data.Tests;
|
||||||
|
|
||||||
|
public class LegacyAppDataRootMigrationTests : IDisposable
|
||||||
|
{
|
||||||
|
private readonly string _home = Path.Combine(Path.GetTempPath(), $"claudedo_home_{Guid.NewGuid():N}");
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
try { Directory.Delete(_home, true); } catch { /* best effort */ }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void MovesLegacyRootAndRewritesConfigPaths()
|
||||||
|
{
|
||||||
|
var legacy = Path.Combine(_home, ".todo-app");
|
||||||
|
Directory.CreateDirectory(Path.Combine(legacy, "logs"));
|
||||||
|
File.WriteAllText(Path.Combine(legacy, "todo.db"), "db");
|
||||||
|
File.WriteAllText(Path.Combine(legacy, "worker.config.json"),
|
||||||
|
"""{"db_path":"~/.todo-app/todo.db","log_root":"~/.todo-app/logs"}""");
|
||||||
|
|
||||||
|
Paths.MigrateLegacyAppDataRoot(_home);
|
||||||
|
|
||||||
|
var root = Path.Combine(_home, ".claudeDo");
|
||||||
|
Assert.False(Directory.Exists(legacy));
|
||||||
|
Assert.Equal("db", File.ReadAllText(Path.Combine(root, "todo.db")));
|
||||||
|
Assert.True(Directory.Exists(Path.Combine(root, "logs")));
|
||||||
|
Assert.Equal(
|
||||||
|
"""{"db_path":"~/.claudeDo/todo.db","log_root":"~/.claudeDo/logs"}""",
|
||||||
|
File.ReadAllText(Path.Combine(root, "worker.config.json")));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void LeavesLegacyRootAloneOnceTargetExists()
|
||||||
|
{
|
||||||
|
var legacy = Path.Combine(_home, ".todo-app");
|
||||||
|
var root = Path.Combine(_home, ".claudeDo");
|
||||||
|
Directory.CreateDirectory(legacy);
|
||||||
|
Directory.CreateDirectory(root);
|
||||||
|
File.WriteAllText(Path.Combine(root, "todo.db"), "new");
|
||||||
|
|
||||||
|
Paths.MigrateLegacyAppDataRoot(_home);
|
||||||
|
|
||||||
|
Assert.True(Directory.Exists(legacy));
|
||||||
|
Assert.Equal("new", File.ReadAllText(Path.Combine(root, "todo.db")));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user