修复同卡复核重复字段校验

This commit is contained in:
andy
2026-07-11 21:08:33 +08:00
parent 705f779b32
commit 25dfa33f45
5 changed files with 66 additions and 0 deletions

View File

@@ -1912,6 +1912,53 @@ class SuperAgentTaskResultControllerTest {
assertThat(sourceTaskCount).isEqualTo(1L);
}
@Test
void shouldRejectManualReviewResolutionWhenPointerIsDuplicated() throws Exception {
captureSourceMessage("mail-v3-manual-review-duplicate-pointer-001");
String body = typeKnownManualReviewBody(
"mail-v3-manual-review-duplicate-pointer-001",
"CNF-V3-MR-DUP-001",
"2026-09-05",
"2026-09-07");
MvcResult createResult = mockMvc.perform(signedPost(body, "nonce-v3-manual-review-duplicate-pointer-001"))
.andExpect(status().isCreated())
.andReturn();
String taskId = com.jayway.jsonpath.JsonPath.read(
createResult.getResponse().getContentAsString(),
"$.items[0].task_id");
String orderId = com.jayway.jsonpath.JsonPath.read(
createResult.getResponse().getContentAsString(),
"$.items[0].order_id");
mockMvc.perform(post("/api/reservation/tasks/{taskId}/manual-review-resolutions", taskId)
.contentType(MediaType.APPLICATION_JSON)
.content("""
{
"confirmed_order_id": "%s",
"field_overrides": [
{
"field_pointer": "/extracted_fields/pms_room_type_code",
"value": "RM3"
},
{
"field_pointer": "/extracted_fields/pms_room_type_code",
"value": "RM4"
}
]
}
""".formatted(orderId)))
.andExpect(status().isBadRequest())
.andExpect(jsonPath("$.error_code").value("TASK_REVIEW_POINTER_DUPLICATE"))
.andExpect(jsonPath("$.details[0]").value(containsString("/extracted_fields/pms_room_type_code")));
String taskStatus = jdbcTemplate.queryForObject("""
SELECT task_status
FROM workflow_reservation_task
WHERE id = ?
""", String.class, Long.valueOf(taskId));
assertThat(taskStatus).isEqualTo("PENDING_CONFIRM");
}
@Test
void shouldRejectManualReviewResolutionWhenMissingFieldsAreNotResolved() throws Exception {
captureSourceMessage("mail-v3-manual-review-missing-001");