补齐任务列表状态筛选和邮件HTML安全字段
This commit is contained in:
@@ -132,7 +132,8 @@ class SourceMessageControllerTest {
|
||||
"mail-conversation-p0-001",
|
||||
"conversation-p0-001",
|
||||
"First full text body with booking context.",
|
||||
"<html><body><p>First HTML body</p><img src=\"cid:image-001\" /></body></html>",
|
||||
"<html><body><p>First HTML body</p><img src=\"cid:image-001\" onerror=\"alert(1)\" />"
|
||||
+ "<a href=\"javascript:alert(2)\">unsafe</a><script>alert(3)</script></body></html>",
|
||||
List.of(
|
||||
media("INLINE_IMAGE", "image-001.png", "image/png", 100L,
|
||||
"https://media.example.test/image-001.png?token=secret", "image-001"),
|
||||
@@ -161,6 +162,20 @@ class SourceMessageControllerTest {
|
||||
.value(contains(containsString("First full text body"))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_body")
|
||||
.value(contains(containsString("First HTML body"))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_body")
|
||||
.value(contains(containsString("<script>alert(3)</script>"))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_body_sanitized")
|
||||
.value(contains(containsString("First HTML body"))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_body_sanitized")
|
||||
.value(contains(not(containsString("<script")))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_body_sanitized")
|
||||
.value(contains(not(containsString("onerror")))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_body_sanitized")
|
||||
.value(contains(not(containsString("javascript:")))))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_sanitize_required")
|
||||
.value(contains(true)))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].html_render_mode")
|
||||
.value(contains("SANITIZED_HTML")))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].inline_images[0].externalUrl")
|
||||
.value(contains("https://media.example.test/image-001.png?token=secret")))
|
||||
.andExpect(jsonPath("$.messages[?(@.external_message_id=='mail-conversation-p0-001')].attachments[0].externalUrl")
|
||||
|
||||
@@ -122,6 +122,40 @@ class ReservationFrontendQueryControllerTest {
|
||||
verify(workflowRepository, never()).findQueueTasksBefore(anyString(), anyLong(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldFilterTaskWorkbenchListByOrderStatus() throws Exception {
|
||||
SourceMessageCaptureResult source = captureSourceMessage(
|
||||
"mail-frontend-task-order-status-001",
|
||||
"Frontend Query Task Order Status Smoke");
|
||||
Long activeOrderId = 930000000000001101L;
|
||||
Long endedOrderId = 930000000000001102L;
|
||||
Long activeTaskId = 930000000000001301L;
|
||||
Long endedTaskId = 930000000000001302L;
|
||||
insertGroupOrder(activeOrderId, source.inboxId(), "GRP-FRONTEND-TASK-ACTIVE-001", "ACTIVE");
|
||||
insertGroupOrder(endedOrderId, source.inboxId(), "GRP-FRONTEND-TASK-ENDED-001", "ENDED");
|
||||
insertTransition(930000000000001201L, source.inboxId(), 1, "GRP-FRONTEND-TASK-ACTIVE-001",
|
||||
"New Booking", "NEW_BOOKING", "NEW_BOOKING");
|
||||
insertTransition(930000000000001202L, source.inboxId(), 2, "GRP-FRONTEND-TASK-ENDED-001",
|
||||
"Cancel Booking", "CANCEL_BOOKING", "CANCEL_BOOKING");
|
||||
insertTask(activeTaskId, activeOrderId, source.inboxId(), 930000000000001201L, "New Booking",
|
||||
"NEW_BOOKING", "NEW_BOOKING", "PENDING_CONFIRM", 1);
|
||||
insertTask(endedTaskId, endedOrderId, source.inboxId(), 930000000000001202L, "Cancel Booking",
|
||||
"CANCEL_BOOKING", "CANCEL_BOOKING", "PENDING_CONFIRM", 1);
|
||||
|
||||
mockMvc.perform(get("/api/reservation/tasks")
|
||||
.param("hotel_id", HOTEL_ID)
|
||||
.param("order_status", "ENDED")
|
||||
.param("keyword", "GRP-FRONTEND-TASK-")
|
||||
.param("page_num", "1")
|
||||
.param("page_size", "20"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.items.length()").value(1))
|
||||
.andExpect(jsonPath("$.items[0].task_id").value(endedTaskId.toString()))
|
||||
.andExpect(jsonPath("$.items[0].order_id").value(endedOrderId.toString()))
|
||||
.andExpect(jsonPath("$.items[0].display_order_key").value("GRP-FRONTEND-TASK-ENDED-001"))
|
||||
.andExpect(jsonPath("$.page.total").value(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnOrderDetailWithTaskTimeline() throws Exception {
|
||||
SourceMessageCaptureResult source = captureSourceMessage(
|
||||
|
||||
Reference in New Issue
Block a user