feat(workflow): enhance message stages and image routing
This commit is contained in:
@@ -200,32 +200,53 @@ class WorkflowGraphTests(unittest.TestCase):
|
||||
message = next(
|
||||
node for node in normalized["nodes"] if node["type"] == "message"
|
||||
)
|
||||
self.assertFalse(message["data"]["showMessage"])
|
||||
self.assertFalse(message["data"]["requireConfirmation"])
|
||||
self.assertEqual(message["data"]["completionPolicy"], "playback")
|
||||
self.assertNotIn("requireConfirmation", message["data"])
|
||||
self.assertNotIn("showMessage", message["data"])
|
||||
self.assertEqual(message["data"]["confirmLabel"], "确认")
|
||||
|
||||
message["data"].update(
|
||||
{
|
||||
"speech": "",
|
||||
"showMessage": True,
|
||||
"title": "重要提示",
|
||||
"message": "",
|
||||
"confirmLabel": "确认",
|
||||
"requireConfirmation": True,
|
||||
"completionPolicy": "confirmation",
|
||||
}
|
||||
)
|
||||
errors = validate_graph(normalized)
|
||||
self.assertTrue(any("弹窗消息必须为" in error for error in errors))
|
||||
self.assertTrue(any("必须配置播报内容" in error for error in errors))
|
||||
|
||||
message["data"].update(
|
||||
{
|
||||
"speech": "请确认",
|
||||
"showMessage": False,
|
||||
"requireConfirmation": True,
|
||||
}
|
||||
{"speech": "", "completionPolicy": "playback"}
|
||||
)
|
||||
errors = validate_graph(normalized)
|
||||
self.assertTrue(any("等待确认时必须显示弹窗" in error for error in errors))
|
||||
self.assertTrue(any("必须配置播报内容" in error for error in errors))
|
||||
|
||||
message["data"]["completionPolicy"] = "unknown"
|
||||
errors = validate_graph(normalized)
|
||||
self.assertTrue(any("完成策略无效" in error for error in errors))
|
||||
|
||||
legacy = valid_graph()
|
||||
legacy["nodes"].append(
|
||||
{
|
||||
"id": "legacy-message",
|
||||
"type": "message",
|
||||
"data": {
|
||||
"speech": "请确认",
|
||||
"showMessage": True,
|
||||
"title": "提示",
|
||||
"message": "请确认",
|
||||
"confirmLabel": "确认",
|
||||
"requireConfirmation": True,
|
||||
},
|
||||
}
|
||||
)
|
||||
legacy_message = normalize_graph(legacy)["nodes"][-1]["data"]
|
||||
self.assertEqual(legacy_message["completionPolicy"], "confirmation")
|
||||
self.assertNotIn("requireConfirmation", legacy_message)
|
||||
self.assertNotIn("showMessage", legacy_message)
|
||||
|
||||
def test_voice_resource_creates_isolated_runtime_config(self):
|
||||
base = AssistantConfig(type="workflow", asr="default", voice="default")
|
||||
|
||||
Reference in New Issue
Block a user