// The client must reject untrusted image metadata exceeding bounds before rendering; E2E validates the server side, not this client parser. package daemon import ( "testing" ) func TestParseImageMetadata(t *testing.T) { valid := map[string]any{ "mimeType": "image/png", "width": 800, "height": 600, "bytes": 120000, } meta := ParseImageMetadata(valid) if meta == nil { t.Fatal("expected valid image metadata") } if meta.MimeType != ImagePNG || meta.Width != 800 || meta.Height != 600 || meta.Bytes != 120000 { t.Fatalf("unexpected metadata values: %+v", meta) } // Bad mimeType badMime := map[string]any{ "mimeType": "image/gif", "width": 800, "height": 600, "bytes": 120000, } if ParseImageMetadata(badMime) != nil { t.Fatal("expected nil for image/gif") } // Too large dimensions hugeDim := map[string]any{ "mimeType": "image/jpeg", "width": 10000, "height": 10000, "bytes": 120000, } if ParseImageMetadata(hugeDim) != nil { t.Fatal("expected nil for dimension product > 40M") } // Too many bytes hugeBytes := map[string]any{ "mimeType": "image/webp", "width": 100, "height": 100, "bytes": 10 * 1024 * 1024, } if ParseImageMetadata(hugeBytes) != nil { t.Fatal("expected nil for bytes > 5MB") } }