feat: add ftp root path setting
This commit is contained in:
@@ -52,23 +52,52 @@ func TestCaptureAndFTPServiceUploadsAndCopiesFTPPath(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCaptureAndFTPServiceCopiesSFTPHomePath(t *testing.T) {
|
||||
func TestCaptureAndFTPServiceCopiesConfiguredRootPath(t *testing.T) {
|
||||
uploader := &fakeFTPUploader{}
|
||||
clip := &fakeClipboard{}
|
||||
svc := &CaptureAndFTPService{
|
||||
Uploader: uploader,
|
||||
Clipboard: clip,
|
||||
Cfg: domain.FTPConfig{
|
||||
Protocol: domain.FTPProtocolSFTP,
|
||||
PathPrefix: "images",
|
||||
Protocol: domain.FTPProtocolSFTP,
|
||||
RootDirectory: "~/ftp/",
|
||||
PathPrefix: "images",
|
||||
},
|
||||
}
|
||||
|
||||
if err := svc.ExecuteWithBytes(context.Background(), []byte("png")); err != nil {
|
||||
t.Fatalf("upload SFTP screenshot: %v", err)
|
||||
}
|
||||
if clip.text != "~/"+uploader.path {
|
||||
t.Fatalf("expected SFTP home path copied, got %q", clip.text)
|
||||
if clip.text != "~/ftp/"+uploader.path {
|
||||
t.Fatalf("expected configured SFTP root path copied, got %q", clip.text)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFTPShareTextJoinsConfiguredRootAndRemoteDirectory(t *testing.T) {
|
||||
const relPath = "snapgo/2026/07/20260713-110413-18lnbx.png"
|
||||
const want = "~/ftp/snapgo/2026/07/20260713-110413-18lnbx.png"
|
||||
if got := ftpShareText(domain.FTPProtocolSFTP, "~/ftp/", relPath); got != want {
|
||||
t.Fatalf("ftpShareText() = %q, want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFTPShareTextUsesProtocolDefaultWhenRootDirectoryIsEmpty(t *testing.T) {
|
||||
const relPath = "snapgo/2026/07/image.png"
|
||||
tests := []struct {
|
||||
name string
|
||||
protocol string
|
||||
want string
|
||||
}{
|
||||
{name: "FTP", protocol: domain.FTPProtocolFTP, want: "/" + relPath},
|
||||
{name: "SFTP", protocol: domain.FTPProtocolSFTP, want: "~/" + relPath},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := ftpShareText(tt.protocol, "", relPath); got != tt.want {
|
||||
t.Fatalf("ftpShareText() = %q, want %q", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user