Files
descrybe/apps/api/cmd/seed-a1/recover_jobs_test.go
T

62 lines
1.8 KiB
Go
Raw Normal View History

package main
import (
"os"
"testing"
)
func TestScanA1ProcessingJobsSmoke(t *testing.T) {
dump := os.Getenv("SEED_A1_MYSQL_DUMP")
if dump == "" {
dump = `d:\Users\Green Eclipse\Downloads\descrybe_new.sql`
}
if _, err := os.Stat(dump); err != nil {
t.Skipf("mysql dump not available: %v", err)
}
f, err := os.Open(dump)
if err != nil {
t.Fatal(err)
}
defer f.Close()
jobs, err := scanA1ProcessingJobs(f, "97e1a309-3d23-4aa2-b518-8e8d7afdfec7")
if err != nil {
t.Fatal(err)
}
if len(jobs) < 100 {
t.Fatalf("expected many A1 jobs, got %d", len(jobs))
}
has := false
for _, j := range jobs {
if j.id == "827f0b82-3214-4c1d-bf05-2455bbd66fc6" {
has = true
if j.status != "completed" || j.totalProducts != 1 {
t.Fatalf("target job unexpected status=%s total=%d", j.status, j.totalProducts)
}
}
}
if !has {
t.Fatal("missing target job 827f0b82-…")
}
}
func TestParseMySQLTupleFields(t *testing.T) {
fields := parseMySQLTupleFields("('827f0b82-3214-4c1d-bf05-2455bbd66fc6',\t'user_x',\t'97e1a309-3d23-4aa2-b518-8e8d7afdfec7',\t'completed',\t1,\t1,\tNULL,\t'2026-07-31 08:36:45',\t'2026-07-31 08:36:58',\t'2026-07-31 08:36:45',\t'2026-07-31 08:36:58',\t'full',\tNULL,\t7500),")
if len(fields) < 14 {
t.Fatalf("fields=%d %#v", len(fields), fields)
}
if fields[0] != "827f0b82-3214-4c1d-bf05-2455bbd66fc6" || fields[2] != "97e1a309-3d23-4aa2-b518-8e8d7afdfec7" {
t.Fatalf("unexpected fields %#v", fields)
}
}
func TestParseDumpJobID(t *testing.T) {
id, err := parseDumpJobID("827f0b82-3214-4c1d-bf05-2455bbd66fc6")
if err != nil || id.String() != "827f0b82-3214-4c1d-bf05-2455bbd66fc6" {
t.Fatalf("uuid parse: %v %s", err, id)
}
sha, err := parseDumpJobID("12345")
if err != nil || sha.String() == "12345" {
t.Fatalf("sha1 remap expected, got %v %s", err, sha)
}
}