diff --git a/src/test/java/com/gxwebsoft/ai/controller/AiCreativeFailureShapeContractTest.java b/src/test/java/com/gxwebsoft/ai/controller/AiCreativeFailureShapeContractTest.java new file mode 100644 index 0000000..fa94090 --- /dev/null +++ b/src/test/java/com/gxwebsoft/ai/controller/AiCreativeFailureShapeContractTest.java @@ -0,0 +1,41 @@ +package com.gxwebsoft.ai.controller; + +import com.gxwebsoft.common.core.utils.JSONUtil; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.Method; +import java.util.Map; + +/** + * 端到端形状契约:把后端失败态的**真实产出**打成一行 JSON, + * 供前端验证脚本当作输入,确认前端拿到它时渲染的是可读文案而非原始报文。 + * + *
输出被 `.scratch/ai-assistant/verify-frontend-e2e.js` 读取;
+ * 断言放在那个脚本里(前端侧),这里只负责产出真实形状。
+ */
+class AiCreativeFailureShapeContractTest {
+
+ @Test
+ void 打印失败态真实返回形状() throws Exception {
+ String failureEvent = "{"
+ + "\"event\":\"workflow_finished\","
+ + "\"workflow_run_id\":\"b2e18332-68bd-49e6-90e2-bd9d16d428ff\","
+ + "\"task_id\":\"0b1fdd88-cc6f-45b8-989d-be4f85bcff74\","
+ + "\"data\":{\"status\":\"failed\",\"outputs\":{},"
+ + "\"error\":\"req_id: dc688258de PluginInvokeError: Model disabled.\"}"
+ + "}";
+
+ Map