66 lines
1.9 KiB
Go
66 lines
1.9 KiB
Go
package systemfs
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestListDirectoriesReturnsSortedDirectoriesAndGitFlag(t *testing.T) {
|
|
root := t.TempDir()
|
|
if err := os.MkdirAll(filepath.Join(root, "b-dir"), 0o755); err != nil {
|
|
t.Fatalf("mkdir b-dir: %v", err)
|
|
}
|
|
if err := os.MkdirAll(filepath.Join(root, "a-dir", ".git"), 0o755); err != nil {
|
|
t.Fatalf("mkdir a-dir/.git: %v", err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(root, "notes.txt"), []byte("ignored"), 0o644); err != nil {
|
|
t.Fatalf("write notes.txt: %v", err)
|
|
}
|
|
|
|
service := NewService()
|
|
listing, err := service.ListDirectories(root)
|
|
if err != nil {
|
|
t.Fatalf("ListDirectories() error = %v", err)
|
|
}
|
|
|
|
if listing.Current != root {
|
|
t.Fatalf("current = %q, want %q", listing.Current, root)
|
|
}
|
|
if len(listing.Directories) != 2 {
|
|
t.Fatalf("expected 2 directories, got %#v", listing.Directories)
|
|
}
|
|
if listing.Directories[0].Name != "a-dir" || !listing.Directories[0].IsGit {
|
|
t.Fatalf("unexpected first directory: %#v", listing.Directories[0])
|
|
}
|
|
if listing.Directories[1].Name != "b-dir" || listing.Directories[1].IsGit {
|
|
t.Fatalf("unexpected second directory: %#v", listing.Directories[1])
|
|
}
|
|
}
|
|
|
|
func TestCreateDirectoryRequiresParentAndName(t *testing.T) {
|
|
service := NewService()
|
|
if _, err := service.CreateDirectory("", "child"); err == nil {
|
|
t.Fatal("expected validation error when parent is empty")
|
|
}
|
|
if _, err := service.CreateDirectory("/tmp", ""); err == nil {
|
|
t.Fatal("expected validation error when name is empty")
|
|
}
|
|
}
|
|
|
|
func TestCreateDirectoryCreatesPath(t *testing.T) {
|
|
root := t.TempDir()
|
|
service := NewService()
|
|
|
|
path, err := service.CreateDirectory(root, "nested/child")
|
|
if err != nil {
|
|
t.Fatalf("CreateDirectory() error = %v", err)
|
|
}
|
|
if path != filepath.Join(root, "nested/child") {
|
|
t.Fatalf("path = %q", path)
|
|
}
|
|
if info, err := os.Stat(path); err != nil || !info.IsDir() {
|
|
t.Fatalf("expected created directory, stat err=%v info=%#v", err, info)
|
|
}
|
|
}
|