Files
pika/pkg/agent/sshmonitor/hook_manager_test.go
T

44 lines
1.1 KiB
Go

package sshmonitor
import (
"os"
"path/filepath"
"testing"
)
func TestRemoveHookSymlinkRemovesSymlink(t *testing.T) {
dir := t.TempDir()
target := filepath.Join(dir, "agent")
link := filepath.Join(dir, "pika-agent")
if err := os.WriteFile(target, []byte("test"), 0755); err != nil {
t.Fatalf("write target: %v", err)
}
if err := os.Symlink(target, link); err != nil {
t.Fatalf("create symlink: %v", err)
}
if err := removeHookSymlink(link); err != nil {
t.Fatalf("removeHookSymlink() error = %v", err)
}
if _, err := os.Lstat(link); !os.IsNotExist(err) {
t.Fatalf("hook symlink still exists: %v", err)
}
if _, err := os.Stat(target); err != nil {
t.Fatalf("symlink target was removed: %v", err)
}
}
func TestRemoveHookSymlinkKeepsRegularFile(t *testing.T) {
path := filepath.Join(t.TempDir(), "pika-agent")
if err := os.WriteFile(path, []byte("test"), 0755); err != nil {
t.Fatalf("write regular file: %v", err)
}
if err := removeHookSymlink(path); err != nil {
t.Fatalf("removeHookSymlink() error = %v", err)
}
if _, err := os.Stat(path); err != nil {
t.Fatalf("regular executable was removed: %v", err)
}
}