package printjob import ( "strings" "testing" "printer.backend/internal/layout" "printer.backend/internal/model" ) func TestSummaryOverflowWarning(t *testing.T) { plate := model.Plate{ WidthMM: 100, HeightMM: 100, MarginTop: 5, MarginRight: 5, MarginBottom: 5, MarginLeft: 5, } spec := model.ItemSpec{WidthMM: 80, HeightMM: 80, BleedMM: 2, MarginMM: 5, PaddingMM: 3} preview := layout.Pack(plate, spec, 0) orders := []model.Order{ {ID: "o1", Images: []model.OrderImage{{ID: "a"}, {ID: "b"}}}, {ID: "o2", Images: []model.OrderImage{{ID: "c"}}}, } s := Summary(orders, preview) if preview.Count == 0 { if s.ImageCount != 3 { t.Fatalf("expected 3 images, got %d", s.ImageCount) } return } if preview.Count >= 3 { if s.ImageOverflow { t.Fatal("expected no overflow") } return } if !s.ImageOverflow || s.Warning == "" { t.Fatalf("expected overflow warning, got overflow=%v warning=%q", s.ImageOverflow, s.Warning) } if !strings.Contains(s.Warning, "Bilder") { t.Fatalf("unexpected warning: %s", s.Warning) } if len(s.Assignments) != preview.Count { t.Fatalf("expected %d assignments, got %d", preview.Count, len(s.Assignments)) } } func TestCollectImageRefsOrder(t *testing.T) { orders := []model.Order{ {ID: "o1", Images: []model.OrderImage{{ID: "a"}, {ID: "b"}}}, {ID: "o2", Images: []model.OrderImage{{ID: "c"}}}, } refs := CollectImageRefs(orders) if len(refs) != 3 || refs[0].ImageID != "a" || refs[2].OrderID != "o2" { t.Fatalf("unexpected refs: %+v", refs) } }