47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package project_test
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"task/internal/project"
|
|
)
|
|
|
|
func TestDirStoreDelete(t *testing.T) {
|
|
dir := t.TempDir()
|
|
store := project.NewDirStore(dir)
|
|
|
|
if err := store.Ensure("inbox"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := store.Ensure("client"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
// Drop a marker file so RemoveAll has something to wipe.
|
|
marker := filepath.Join(dir, "projects", "client", "tickets.json")
|
|
if err := os.WriteFile(marker, []byte("[]\n"), 0o644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
list, err := store.List()
|
|
if err != nil || len(list) != 2 {
|
|
t.Fatalf("list before: %v len=%d", err, len(list))
|
|
}
|
|
|
|
if err := store.Delete("client"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
list, err = store.List()
|
|
if err != nil || len(list) != 1 || list[0].ID != "inbox" {
|
|
t.Fatalf("list after: %v %+v", err, list)
|
|
}
|
|
if _, err := os.Stat(filepath.Join(dir, "projects", "client")); !os.IsNotExist(err) {
|
|
t.Fatalf("client dir still present: %v", err)
|
|
}
|
|
|
|
if err := store.Delete("missing"); err == nil {
|
|
t.Fatal("expected error deleting missing project")
|
|
}
|
|
}
|