//go:build linux package service import ( "strings" "testing" "mfd-monitor-agent/internal/config" ) // TestRenderSystemdUnitIncludesConfigPath verifies install preserves the config flag. func TestRenderSystemdUnitIncludesConfigPath(t *testing.T) { cfg := config.Default() cfg.Service.Description = "MFD Agent" unit := renderSystemdUnit("/opt/agent", "/etc/mfd-agent.json", cfg) if !strings.Contains(unit, "ExecStart=/opt/agent run -config /etc/mfd-agent.json") { t.Fatalf("unit missing config path:\n%s", unit) } } // TestLinuxInstallRequiresRoot verifies Linux install rejects non-root callers. func TestLinuxInstallRequiresRoot(t *testing.T) { oldUID := currentUID t.Cleanup(func() { currentUID = oldUID }) currentUID = func() int { return 1000 } err := linuxManager{}.Install("/opt/agent", config.Default(), InstallOptions{}) if err == nil { t.Fatal("expected root requirement error") } if !strings.Contains(err.Error(), "root") { t.Fatalf("error = %v", err) } }