2026-05-26 18:27:37 +02:00

57 lines
1.5 KiB
Go

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)
}
}