fix: harden production chat runtime

This commit is contained in:
kris
2026-03-31 20:20:07 +08:00
parent ec7081f6cc
commit 02fcc56332
12 changed files with 310 additions and 11 deletions

View File

@@ -353,6 +353,45 @@ public class ProjectDetailActivityUiTest {
assertEquals("group-1", nextIntent.getStringExtra(GroupInfoActivity.EXTRA_PROJECT_ID));
}
@Test
public void applyDispatchPlanActionResponseClearsPendingPlanAndTracksApprovalState() throws Exception {
Intent intent = new Intent()
.putExtra(ProjectDetailActivity.EXTRA_PROJECT_ID, "group-1")
.putExtra(ProjectDetailActivity.EXTRA_PROJECT_NAME, "巡检协作群");
TestProjectDetailActivity activity = Robolectric
.buildActivity(TestProjectDetailActivity.class, intent)
.setup()
.get();
ReflectionHelpers.setField(activity, "projectCollaborationMode", "approval_required");
ReflectionHelpers.setField(activity, "projectApprovalState", "pending_user");
ReflectionHelpers.setField(
activity,
"currentPendingDispatchPlan",
new JSONObject().put("planId", "dispatch-plan-1").put("status", "pending_user_confirmation")
);
JSONObject response = new JSONObject()
.put("plan", new JSONObject()
.put("planId", "dispatch-plan-1")
.put("status", "dispatched"))
.put("collaborationGate", new JSONObject()
.put("isGroup", true)
.put("collaborationMode", "approval_required")
.put("requiresMasterAgentApproval", true)
.put("approvalState", "approved"));
ReflectionHelpers.callInstanceMethod(
activity,
"applyDispatchPlanActionResponse",
ReflectionHelpers.ClassParameter.from(JSONObject.class, response)
);
assertEquals("approval_required", ReflectionHelpers.getField(activity, "projectCollaborationMode"));
assertEquals("approved", ReflectionHelpers.getField(activity, "projectApprovalState"));
assertEquals(null, ReflectionHelpers.getField(activity, "currentPendingDispatchPlan"));
}
private static JSONObject buildGroupProjectPayload() throws Exception {
JSONObject threadMeta = new JSONObject()
.put("threadId", "group-thread-3")