fix: harden production chat runtime
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user