57 lines
1.5 KiB
Go
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)
|
|
}
|
|
}
|