补充图片编辑选项 multipart 测试
覆盖质量、背景、输出格式与 mask 文件字段 断言文件名、MIME 类型和字节内容均正确发送
This commit is contained in:
@@ -429,6 +429,53 @@ mod tests {
|
||||
server.abort();
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn vector_engine_curl_transport_posts_raw_edit_options_and_mask() {
|
||||
let (base_url, server, request_rx) = start_single_response_server().await;
|
||||
let response = send_vector_engine_multipart_edit_request_with_curl_options(
|
||||
format!("{base_url}/v1/images/edits").as_str(),
|
||||
"test-key",
|
||||
GPT_IMAGE_2_MODEL,
|
||||
"测试提示词",
|
||||
None,
|
||||
"1536x1024",
|
||||
1,
|
||||
&[ReferenceImage {
|
||||
bytes: b"reference".to_vec(),
|
||||
mime_type: "image/webp".to_string(),
|
||||
file_name: "reference.webp".to_string(),
|
||||
}],
|
||||
Some(&RawImageEditOptions {
|
||||
quality: Some("high".to_string()),
|
||||
background: Some("transparent".to_string()),
|
||||
output_format: Some("png".to_string()),
|
||||
width: 1536,
|
||||
height: 1024,
|
||||
mask: Some(ReferenceImage {
|
||||
bytes: b"mask-bytes".to_vec(),
|
||||
mime_type: "image/png".to_string(),
|
||||
file_name: "mask.png".to_string(),
|
||||
}),
|
||||
}),
|
||||
1_000,
|
||||
)
|
||||
.await
|
||||
.expect("curl multipart raw edit request should succeed");
|
||||
|
||||
assert_eq!(response.status, 200);
|
||||
let request = request_rx
|
||||
.await
|
||||
.expect("mock server should capture request");
|
||||
let request_text = String::from_utf8_lossy(request.as_slice());
|
||||
assert!(request_text.contains("name=\"quality\"\r\n\r\nhigh"));
|
||||
assert!(request_text.contains("name=\"background\"\r\n\r\ntransparent"));
|
||||
assert!(request_text.contains("name=\"output_format\"\r\n\r\npng"));
|
||||
assert!(request_text.contains("name=\"mask\"; filename=\"mask.png\""));
|
||||
assert!(request_text.contains("Content-Type: image/png"));
|
||||
assert!(request_text.contains("mask-bytes"));
|
||||
server.abort();
|
||||
}
|
||||
|
||||
async fn start_single_response_server() -> (
|
||||
String,
|
||||
tokio::task::JoinHandle<()>,
|
||||
|
||||
Reference in New Issue
Block a user