57 lines
1.6 KiB
Go
57 lines
1.6 KiB
Go
package domain
|
|
|
|
import "testing"
|
|
|
|
func TestDefaultAppConfigIncludesFTPDefaults(t *testing.T) {
|
|
cfg := DefaultAppConfig()
|
|
if cfg.FTP.Protocol != FTPProtocolFTP {
|
|
t.Fatalf("expected default FTP protocol, got %q", cfg.FTP.Protocol)
|
|
}
|
|
if cfg.FTP.Port != 21 {
|
|
t.Fatalf("expected default FTP port 21, got %d", cfg.FTP.Port)
|
|
}
|
|
if cfg.FTP.PathPrefix != "snapgo/" {
|
|
t.Fatalf("expected default path prefix, got %q", cfg.FTP.PathPrefix)
|
|
}
|
|
if cfg.FTP.RootDirectory != "/" {
|
|
t.Fatalf("expected default root directory, got %q", cfg.FTP.RootDirectory)
|
|
}
|
|
if cfg.FTP.ConnectTimeoutSecs != 10 {
|
|
t.Fatalf("expected 10 second timeout, got %d", cfg.FTP.ConnectTimeoutSecs)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeUsesSFTPDefaultPort(t *testing.T) {
|
|
cfg := AppConfig{
|
|
FTP: FTPConfig{
|
|
Protocol: FTPProtocolSFTP,
|
|
},
|
|
}
|
|
cfg.Normalize()
|
|
if cfg.FTP.Port != 22 {
|
|
t.Fatalf("expected SFTP port 22, got %d", cfg.FTP.Port)
|
|
}
|
|
if cfg.FTP.AuthMethod != SSHAuthPassword {
|
|
t.Fatalf("expected password auth default, got %q", cfg.FTP.AuthMethod)
|
|
}
|
|
if cfg.FTP.RootDirectory != "~/" {
|
|
t.Fatalf("expected SFTP home root directory, got %q", cfg.FTP.RootDirectory)
|
|
}
|
|
}
|
|
|
|
func TestIsFTPConfiguredRequiresProtocolHostAndUser(t *testing.T) {
|
|
cfg := DefaultAppConfig()
|
|
if cfg.IsFTPConfigured() {
|
|
t.Fatal("empty FTP destination should not be configured")
|
|
}
|
|
cfg.FTP.Host = "files.example.com"
|
|
cfg.FTP.User = "snapgo"
|
|
if !cfg.IsFTPConfigured() {
|
|
t.Fatal("host and user should be enough for a normalized FTP config")
|
|
}
|
|
cfg.FTP.Protocol = "invalid"
|
|
if cfg.IsFTPConfigured() {
|
|
t.Fatal("invalid protocol should not be configured")
|
|
}
|
|
}
|