debug和superagent提交的数据保持一致
This commit is contained in:
@@ -6,6 +6,7 @@ import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.asyncDispatch;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
@@ -16,6 +17,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import cn.nianxx.thhotel.ThHotelApplication;
|
||||
import cn.nianxx.thhotel.integrations.ai.superagent.common.request.SuperAgentMailDebugRequest;
|
||||
import cn.nianxx.thhotel.integrations.ai.superagent.common.result.SuperAgentOpenApiResult;
|
||||
import cn.nianxx.thhotel.integrations.ai.superagent.common.result.SuperAgentOpenApiTraceEvent;
|
||||
import cn.nianxx.thhotel.integrations.ai.superagent.service.SuperAgentOpenApiClient;
|
||||
@@ -33,6 +35,7 @@ import java.util.function.Consumer;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@@ -139,11 +142,18 @@ class DebugEmlSuperAgentControllerTest {
|
||||
.andExpect(jsonPath("$.html_body_sanitized", containsString("https://oss.example.test/")))
|
||||
.andExpect(jsonPath("$.html_sanitize_required").value(true))
|
||||
.andExpect(jsonPath("$.html_render_mode").value("SANITIZED_HTML"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.schema_version").value("debug-eml-upload-v1"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.source.provider").value("DEBUG_EML_UPLOAD"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.source.original_message_id")
|
||||
.value("debug-controller-message-001@example.test"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.reply_policy.mode").value("debug_only"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.text",
|
||||
containsString("Please create booking from debug email.")))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.body.html", containsString("https://oss.example.test/")))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.source.channel").value("EMAIL"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.source.external_message_id",
|
||||
containsString("debug-eml-run-")))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.schema_version").doesNotExist())
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.source.provider").doesNotExist())
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.source.original_message_id").doesNotExist())
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.reply_policy.mode").value("manual"))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.reply_policy.final_only").value(true))
|
||||
.andExpect(jsonPath("$.agentbus_like_payload.debug_context").doesNotExist())
|
||||
.andExpect(jsonPath("$.superagent_session_id").value("session-debug-001"))
|
||||
.andExpect(jsonPath("$.superagent_run_id").value("run-debug-001"))
|
||||
.andExpect(jsonPath("$.superagent_raw_answer", containsString("ai_task_results")))
|
||||
@@ -153,13 +163,15 @@ class DebugEmlSuperAgentControllerTest {
|
||||
|
||||
Long sourceCount = jdbcTemplate.queryForObject("""
|
||||
SELECT COUNT(*)
|
||||
FROM platform_source_message_inbox inbox
|
||||
FROM platform_debug_eml_superagent_run run
|
||||
JOIN platform_source_message_inbox inbox ON inbox.id = run.source_message_id
|
||||
JOIN platform_source_message_payload payload ON payload.inbox_id = inbox.id
|
||||
WHERE inbox.hotel_id = 'HOTEL-TEST'
|
||||
AND inbox.provider = 'DEBUG_EML_UPLOAD'
|
||||
AND inbox.channel = 'EMAIL'
|
||||
AND payload.schema_version = 'debug-eml-upload-v1'
|
||||
AND payload.payload_json LIKE '%controller-test%'
|
||||
AND inbox.external_message_id LIKE 'debug-eml-run-%'
|
||||
AND run.run_label = 'controller-test'
|
||||
""", Long.class);
|
||||
org.assertj.core.api.Assertions.assertThat(sourceCount).isEqualTo(1L);
|
||||
|
||||
@@ -167,13 +179,35 @@ class DebugEmlSuperAgentControllerTest {
|
||||
SELECT COUNT(*)
|
||||
FROM platform_source_message_media media
|
||||
JOIN platform_source_message_inbox inbox ON inbox.id = media.inbox_id
|
||||
JOIN platform_debug_eml_superagent_run run ON run.source_message_id = inbox.id
|
||||
JOIN platform_source_message_payload payload ON payload.inbox_id = inbox.id
|
||||
WHERE inbox.provider = 'DEBUG_EML_UPLOAD'
|
||||
AND media.media_type = 'ORIGINAL_EMAIL'
|
||||
AND payload.payload_json LIKE '%controller-test%'
|
||||
AND inbox.external_message_id LIKE 'debug-eml-run-%'
|
||||
AND run.run_label = 'controller-test'
|
||||
""", Long.class);
|
||||
org.assertj.core.api.Assertions.assertThat(originalEmailMediaCount).isEqualTo(1L);
|
||||
|
||||
ArgumentCaptor<SuperAgentMailDebugRequest> superAgentRequestCaptor =
|
||||
ArgumentCaptor.forClass(SuperAgentMailDebugRequest.class);
|
||||
verify(superAgentOpenApiClient).invokeMailDebug(superAgentRequestCaptor.capture());
|
||||
SuperAgentMailDebugRequest superAgentRequest = superAgentRequestCaptor.getValue();
|
||||
org.assertj.core.api.Assertions.assertThat(superAgentRequest.message())
|
||||
.contains("AgentBus Outlook 邮件 JSON")
|
||||
.contains("\"external_message_id\":\"debug-eml-run-")
|
||||
.contains("\"body\"")
|
||||
.doesNotContain("\"provider\":\"DEBUG_EML_UPLOAD\"")
|
||||
.doesNotContain("\"schema_version\"")
|
||||
.doesNotContain("\"debug_context\"")
|
||||
.doesNotContain("\"original_message_id\"")
|
||||
.doesNotContain("\"mode\":\"debug_only\"")
|
||||
.contains("\"reply_policy\"")
|
||||
.contains("\"mode\":\"manual\"")
|
||||
.contains("\"final_only\":true");
|
||||
org.assertj.core.api.Assertions.assertThat(superAgentRequest.metadata())
|
||||
.containsEntry("source", "th-hotel-debug-eml-upload")
|
||||
.containsKey("debug_context");
|
||||
|
||||
Long debugRunCount = jdbcTemplate.queryForObject("""
|
||||
SELECT COUNT(*)
|
||||
FROM platform_debug_eml_superagent_run
|
||||
@@ -509,13 +543,13 @@ class DebugEmlSuperAgentControllerTest {
|
||||
|
||||
Long sourceCount = jdbcTemplate.queryForObject("""
|
||||
SELECT COUNT(*)
|
||||
FROM platform_source_message_inbox inbox
|
||||
JOIN platform_source_message_payload payload ON payload.inbox_id = inbox.id
|
||||
FROM platform_debug_eml_superagent_run run
|
||||
JOIN platform_source_message_inbox inbox ON inbox.id = run.source_message_id
|
||||
WHERE inbox.hotel_id = 'HOTEL-TEST'
|
||||
AND inbox.provider = 'DEBUG_EML_UPLOAD'
|
||||
AND inbox.channel = 'EMAIL'
|
||||
AND inbox.external_message_id LIKE 'debug-eml-run-%'
|
||||
AND payload.payload_json LIKE '%repeat-debug-upload%'
|
||||
AND run.run_label = 'repeat-debug-upload'
|
||||
""", Long.class);
|
||||
org.assertj.core.api.Assertions.assertThat(sourceCount).isEqualTo(2L);
|
||||
}
|
||||
@@ -534,11 +568,11 @@ class DebugEmlSuperAgentControllerTest {
|
||||
|
||||
Long sourceCount = jdbcTemplate.queryForObject("""
|
||||
SELECT COUNT(*)
|
||||
FROM platform_source_message_inbox inbox
|
||||
JOIN platform_source_message_payload payload ON payload.inbox_id = inbox.id
|
||||
FROM platform_debug_eml_superagent_run run
|
||||
JOIN platform_source_message_inbox inbox ON inbox.id = run.source_message_id
|
||||
WHERE inbox.hotel_id = 'HOTEL-TEST'
|
||||
AND inbox.provider = 'DEBUG_EML_UPLOAD'
|
||||
AND payload.payload_json LIKE '%system-hotel-debug-upload%'
|
||||
AND run.run_label = 'system-hotel-debug-upload'
|
||||
""", Long.class);
|
||||
org.assertj.core.api.Assertions.assertThat(sourceCount).isEqualTo(1L);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user