58 lines
1.6 KiB
C#
58 lines
1.6 KiB
C#
using System.IO;
|
|
using ClaudeDo.Installer.Core;
|
|
|
|
namespace ClaudeDo.Installer.Tests;
|
|
|
|
public class AutostartShortcutTests
|
|
{
|
|
private static string TempDir()
|
|
{
|
|
var dir = Path.Combine(Path.GetTempPath(), "cdautostart-" + Guid.NewGuid().ToString("N"));
|
|
Directory.CreateDirectory(dir);
|
|
return dir;
|
|
}
|
|
|
|
[Fact]
|
|
public void Install_creates_lnk_with_expected_name()
|
|
{
|
|
var startup = TempDir();
|
|
var workerDir = TempDir();
|
|
try
|
|
{
|
|
var workerExe = Path.Combine(workerDir, "ClaudeDo.Worker.exe");
|
|
File.WriteAllText(workerExe, "");
|
|
|
|
AutostartShortcut.Install(startup, workerExe);
|
|
|
|
Assert.True(File.Exists(Path.Combine(startup, AutostartShortcut.FileName)));
|
|
}
|
|
finally { Directory.Delete(startup, true); Directory.Delete(workerDir, true); }
|
|
}
|
|
|
|
[Fact]
|
|
public void Remove_deletes_existing_lnk()
|
|
{
|
|
var startup = TempDir();
|
|
var workerDir = TempDir();
|
|
try
|
|
{
|
|
var workerExe = Path.Combine(workerDir, "ClaudeDo.Worker.exe");
|
|
File.WriteAllText(workerExe, "");
|
|
AutostartShortcut.Install(startup, workerExe);
|
|
|
|
AutostartShortcut.Remove(startup);
|
|
|
|
Assert.False(File.Exists(Path.Combine(startup, AutostartShortcut.FileName)));
|
|
}
|
|
finally { Directory.Delete(startup, true); Directory.Delete(workerDir, true); }
|
|
}
|
|
|
|
[Fact]
|
|
public void Remove_is_noop_when_missing()
|
|
{
|
|
var startup = TempDir();
|
|
try { AutostartShortcut.Remove(startup); } // must not throw
|
|
finally { Directory.Delete(startup, true); }
|
|
}
|
|
}
|