Files
task-master/internal/server/seed_test.go
T
skrueckenandCursor 472a2fa72e Add global web nav with project groups and tree sidebar.
Restructure the UI into top-level tabs and a scrollable project tree, and persist optional project groups so demos and settings can organize many projects.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 22:43:03 +01:00

66 lines
1.6 KiB
Go

package server
import (
"path/filepath"
"testing"
"task/internal/sqlite"
)
func TestSeedDemo(t *testing.T) {
db, err := sqlite.Open(filepath.Join(t.TempDir(), "seed.db"), []byte("s"))
if err != nil {
t.Fatal(err)
}
defer db.Close()
if _, err := db.CreateUser("admin", "admin", true); err != nil {
t.Fatal(err)
}
srv := New(db)
if err := srv.SeedDemo(); err != nil {
t.Fatal(err)
}
projects, err := srv.Projects.List()
if err != nil || len(projects) != 50 {
t.Fatalf("want 50 projects, got %d err=%v", len(projects), err)
}
var testID string
for _, p := range projects {
if p.Name == "Test" {
testID = p.ID
break
}
}
if testID == "" {
t.Fatal("missing Test project")
}
groups, err := db.ListProjectGroups()
if err != nil || len(groups) != 2 {
t.Fatalf("want 2 groups, got %d err=%v", len(groups), err)
}
p, err := srv.Projects.Get(testID)
if err != nil || p.GroupID == "" {
t.Fatalf("Test project should be grouped, got %+v err=%v", p, err)
}
sync, err := srv.Projects.GetSyncBackend(testID)
if err != nil || sync.Kind != "none" {
t.Fatalf("sync=%+v err=%v", sync, err)
}
tickets, err := srv.Tickets.List(testID)
if err != nil || len(tickets) == 0 {
t.Fatalf("tickets empty")
}
conns, err := db.ListConnections()
if err != nil || len(conns) != 0 {
t.Fatalf("expected no remote connections, got %v", conns)
}
// idempotent when projects already exist
if err := srv.SeedDemo(); err != nil {
t.Fatal(err)
}
projects2, _ := srv.Projects.List()
if len(projects2) != len(projects) {
t.Fatalf("re-seed changed project count")
}
}