Files
URBM/internal/service/repository_test.go
T

42 lines
1.2 KiB
Go

package service
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestValidateExistingRepositoryPathAcceptsRepositoryRoot(t *testing.T) {
root := t.TempDir()
if err := os.WriteFile(filepath.Join(root, "config"), []byte("restic"), 0600); err != nil {
t.Fatal(err)
}
if err := validateExistingRepositoryPath(root); err != nil {
t.Fatalf("repository root rejected: %v", err)
}
}
func TestValidateExistingRepositoryPathSuggestsDirectChild(t *testing.T) {
root := t.TempDir()
repository := filepath.Join(root, "server-backup")
if err := os.Mkdir(repository, 0700); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(repository, "config"), []byte("restic"), 0600); err != nil {
t.Fatal(err)
}
err := validateExistingRepositoryPath(root)
if err == nil || !strings.Contains(err.Error(), repository) {
t.Fatalf("missing repository suggestion: %v", err)
}
}
func TestValidateExistingRepositoryPathExplainsMissingConfig(t *testing.T) {
root := t.TempDir()
err := validateExistingRepositoryPath(root)
if err == nil || !strings.Contains(err.Error(), "config, data, index, keys und snapshots") {
t.Fatalf("missing layout guidance: %v", err)
}
}