|
|
|
@@ -145,6 +145,66 @@ func TestConvertToRequestPayload_PromptAppendedAfterMetadataAndReplacesMetadataT |
|
|
|
require.Equal(t, "current prompt", payload.Content[1].Text) |
|
|
|
} |
|
|
|
|
|
|
|
// Native /api/v3/contents/generations/tasks requests store the prompt inside a |
|
|
|
// content text item while req.Prompt stays empty; such text items must survive. |
|
|
|
func TestConvertToRequestPayload_EmptyPromptKeepsNativeContentText(t *testing.T) { |
|
|
|
adaptor := &TaskAdaptor{} |
|
|
|
req := &relaycommon.TaskSubmitReq{ |
|
|
|
Model: "doubao-seedance-2-0-260128", |
|
|
|
Metadata: map[string]interface{}{ |
|
|
|
"content": []interface{}{ |
|
|
|
map[string]interface{}{ |
|
|
|
"type": "text", |
|
|
|
"text": "一只猫在打哈欠", |
|
|
|
}, |
|
|
|
map[string]interface{}{ |
|
|
|
"type": "image_url", |
|
|
|
"image_url": map[string]interface{}{ |
|
|
|
"url": "https://example.test/cat.png", |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
"resolution": "1080p", |
|
|
|
"ratio": "16:9", |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
payload, err := adaptor.convertToRequestPayload(req) |
|
|
|
|
|
|
|
require.NoError(t, err) |
|
|
|
require.Len(t, payload.Content, 2) |
|
|
|
require.Equal(t, "text", payload.Content[0].Type) |
|
|
|
require.Equal(t, "一只猫在打哈欠", payload.Content[0].Text) |
|
|
|
require.Equal(t, "image_url", payload.Content[1].Type) |
|
|
|
require.Equal(t, "https://example.test/cat.png", payload.Content[1].ImageURL.URL) |
|
|
|
require.Equal(t, "1080p", payload.Resolution) |
|
|
|
require.Equal(t, "16:9", payload.Ratio) |
|
|
|
} |
|
|
|
|
|
|
|
// Image-to-video without any text item must not produce an empty text item. |
|
|
|
func TestConvertToRequestPayload_EmptyPromptWithoutTextContentAppendsNothing(t *testing.T) { |
|
|
|
adaptor := &TaskAdaptor{} |
|
|
|
req := &relaycommon.TaskSubmitReq{ |
|
|
|
Model: "doubao-seedance-2-0-260128", |
|
|
|
Metadata: map[string]interface{}{ |
|
|
|
"content": []interface{}{ |
|
|
|
map[string]interface{}{ |
|
|
|
"type": "image_url", |
|
|
|
"image_url": map[string]interface{}{ |
|
|
|
"url": "https://example.test/cat.png", |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
payload, err := adaptor.convertToRequestPayload(req) |
|
|
|
|
|
|
|
require.NoError(t, err) |
|
|
|
require.Len(t, payload.Content, 1) |
|
|
|
require.Equal(t, "image_url", payload.Content[0].Type) |
|
|
|
} |
|
|
|
|
|
|
|
func TestParseTaskResult_FailedUsesUpstreamErrorMessage(t *testing.T) { |
|
|
|
adaptor := &TaskAdaptor{} |
|
|
|
taskInfo, err := adaptor.ParseTaskResult([]byte(`{ |
|
|
|
|