| 这是标准 replacement 轨迹:active-user-sync-temp 被 metric-standardization-hub 替换,最后 leave 临时频道并回到正式频道。 |
|
|
| Created Entity |
|
|
| Draft/temp channel: active-user-sync-temp |
| Draft channelId: 1f0b04fd-562f-4c04-94d5-9910fa2e89a8 |
|
|
| Final channel: metric-standardization-hub |
| Final channelId: f2364396-d0c3-4244-969e-52b755c7e236 |
|
|
| Opening messageId: d6385bdd-eefa-47f4-acc1-18f974d825a9 |
| Transition reply messageId: 3f17d0fb-21e7-4962-b554-9ef70092b28c |
| MCP 分组 |
|
|
| #1 authentication |
| #1 POST /api/auth/login |
| URL: /api/auth/login |
| #2 Review Temporary Active User Sync Room |
| #10 GET /api/channels/{ID}/members |
| URL: /api/channels/{ID}/members |
| Actual channelId: 1f0b04fd-562f-4c04-94d5-9910fa2e89a8 |
|
|
| #11 GET /api/messages |
| URL: /api/messages?channelId=1f0b04fd-562f-4c04-94d5-9910fa2e89a8&limit=50 |
|
|
| #12 GET /api/channels |
| URL: /api/channels?type=all&limit=100 |
| #3 Create Public Metric Standardization Hub |
| #14 POST /api/channels |
| URL: /api/channels |
| Body: name=metric-standardization-hub, isPrivate=false |
| #4 Open Final Hub And Confirm Discovery |
| #17 GET /api/channels/{ID}/members |
| URL: /api/channels/{ID}/members |
| Actual channelId: f2364396-d0c3-4244-969e-52b755c7e236 |
|
|
| #18 GET /api/messages |
| URL: /api/messages?channelId=f2364396-d0c3-4244-969e-52b755c7e236&limit=50 |
|
|
| #19 GET /api/channels |
| URL: /api/channels?type=all&limit=100 |
| #5 Post Official Opening Message |
| #24 POST /api/messages |
| URL: /api/messages |
| Body: channelId=f2364396-d0c3-4244-969e-52b755c7e236 |
| Body content: Welcome to metric-standardization-hub... |
| #6 Add And Review Transition Thread |
| #28 GET /api/messages/{ID}/thread-replies |
| URL: /api/messages/{ID}/thread-replies?limit=20&offset=0 |
| Actual messageId: d6385bdd-eefa-47f4-acc1-18f974d825a9 |
|
|
| #30 POST /api/messages/{ID}/reply |
| URL: /api/messages/{ID}/reply |
| Actual messageId: d6385bdd-eefa-47f4-acc1-18f974d825a9 |
| Body: channelId=f2364396-d0c3-4244-969e-52b755c7e236, content=Transition note... |
|
|
| #31 GET /api/messages/{ID}/thread-replies |
| URL: /api/messages/{ID}/thread-replies?limit=20&offset=0 |
| Actual messageId: d6385bdd-eefa-47f4-acc1-18f974d825a9 |
| #7 Leave Temporary Sync Room |
| #35 GET /api/channels/{ID}/members |
| URL: /api/channels/{ID}/members |
| Actual channelId: 1f0b04fd-562f-4c04-94d5-9910fa2e89a8 |
|
|
| #36 GET /api/messages |
| URL: /api/messages?channelId=1f0b04fd-562f-4c04-94d5-9910fa2e89a8&limit=50 |
|
|
| #38 POST /api/channels/{ID}/leave |
| URL: /api/channels/{ID}/leave |
| Actual channelId: 1f0b04fd-562f-4c04-94d5-9910fa2e89a8 |
| #8 Return To Final Hub After Draft Cleanup |
| #40 GET /api/channels/{ID}/members |
| URL: /api/channels/{ID}/members |
| Actual channelId: f2364396-d0c3-4244-969e-52b755c7e236 |
|
|
| #41 GET /api/messages |
| URL: /api/messages?channelId=f2364396-d0c3-4244-969e-52b755c7e236&limit=50 |
|
|
| #42 GET /api/channels |
| URL: /api/channels?type=all&limit=100 |
| 不要分进去: |
|
|
| GET /api/users/unread-counts |
| GET /api/conversations/dm/active |
| GET /api/users/starred |
| GET /api/users |
| GET /api/conversations/read-position |
| POST /api/messages/read |
| GET /api/messages/{ID}/reactions |
| #21-#23 final hub 重复打开 |
| #43 POST /api/messages/read status=403 |
| Rubrics |
|
|
| active_user_sync_temp_reviewed_before_replacement |
|
|
| Category |
| process |
|
|
| Must Pass |
| false |
|
|
| Checker Key |
| GET /api/messages | input.queryParams.channelId=<draft_channel_id> | input.queryParams.limit=50 | output.statusCode=200 |
|
|
| Description |
| Verify that the temporary active-user-sync-temp room is reviewed before replacement. |
|
|
| Reject |
| Reject if messages from the temporary active-user-sync-temp room are not fetched before the final channel is created. |
|
|
| Accept |
| Accept if GET /api/messages loads active-user-sync-temp with limit=50 before POST /api/channels creates the replacement channel. |
| metric_standardization_hub_created_as_public_channel |
|
|
| Category |
| state |
|
|
| Must Pass |
| true |
|
|
| Checker Key |
| POST /api/channels | input.bodyParams.name=metric-standardization-hub | input.bodyParams.isPrivate=false | output.statusCode=201 |
|
|
| Description |
| Verify that the properly named metric standardization channel is created as a public channel. |
|
|
| Reject |
| Reject if there is no successful POST /api/channels call creating metric-standardization-hub, or if the created channel is private. |
|
|
| Accept |
| Accept if POST /api/channels creates metric-standardization-hub with isPrivate=false. |
| metric_standardization_hub_directory_checked |
|
|
| Category |
| process |
|
|
| Must Pass |
| false |
|
|
| Checker Key |
| POST /api/channels | input.bodyParams.name=metric-standardization-hub | input.bodyParams.isPrivate=false | output.statusCode=201 -> GET /api/channels | input.queryParams.type=all | input.queryParams.limit=100 | output.statusCode=200 |
|
|
| Description |
| Verify that the full channel list is checked after the final hub is created. |
|
|
| Reject |
| Reject if there is no full channel list request after creating metric-standardization-hub. |
|
|
| Accept |
| Accept if GET /api/channels is called with type=all and limit=100 after metric-standardization-hub is created. |
| metric_standardization_hub_opening_message_posted |
| |
| Category |
| state |
| |
| Must Pass |
| true |
| |
| Checker Key |
| POST /api/channels | input.bodyParams.name=metric-standardization-hub | input.bodyParams.isPrivate=false | output.statusCode=201 -> POST /api/messages | input.bodyParams.channelId=<final_channel_id> | output.statusCode=200 |
| |
| Description |
| Verify that the official opening message is posted in metric-standardization-hub. |
| |
| Reject |
| Reject if no successful POST /api/messages is sent to the final channel created by POST /api/channels. |
| |
| Accept |
| Accept if POST /api/messages posts the recorded opening message to metric-standardization-hub, and channelId matches the created channel. |
| metric_standardization_transition_note_posted |
| |
| Category |
| state |
| |
| Must Pass |
| true |
| |
| Checker Key |
| POST /api/channels | input.bodyParams.name=metric-standardization-hub | input.bodyParams.isPrivate=false | output.statusCode=201 -> POST /api/messages | input.bodyParams.channelId=<final_channel_id> | output.statusCode=200 -> POST /api/messages/{id}/reply | pathParams.id=<opening_message_id> | input.bodyParams.channelId=<final_channel_id> | output.statusCode=200 |
| |
| Description |
| Verify that the transition note is posted as a thread reply under the opening message. |
| |
| Reject |
| Reject if no successful thread reply is posted under the opening message in metric-standardization-hub. |
| |
| Accept |
| Accept if POST /api/messages/{id}/reply posts the transition note under the opening message in the final channel. |
| metric_standardization_thread_reviewed_after_reply |
|
|
| Category |
| process |
|
|
| Must Pass |
| false |
|
|
| Checker Key |
| POST /api/messages/{id}/reply | pathParams.id=<opening_message_id> | input.bodyParams.channelId=<final_channel_id> | output.statusCode=200 -> GET /api/messages/{id}/thread-replies | pathParams.id=<opening_message_id> | input.queryParams.limit=20 | input.queryParams.offset=0 | output.statusCode=200 |
|
|
| Description |
| Verify that the transition thread is reviewed after the reply is posted. |
|
|
| Reject |
| Reject if thread replies are not fetched after the transition note is posted. |
|
|
| Accept |
| Accept if GET /api/messages/{id}/thread-replies is called after the reply with limit=20 and offset=0. |
| active_user_sync_temp_left_after_replacement |
|
|
| Category |
| state |
|
|
| Must Pass |
| true |
|
|
| Checker Key |
| GET /api/messages | input.queryParams.channelId=<draft_channel_id> | input.queryParams.limit=50 | output.statusCode=200 -> POST /api/channels/{id}/leave | pathParams.id=<draft_channel_id> | output.statusCode=200 |
|
|
| Description |
| Verify that the temporary active-user-sync-temp room is left after the replacement channel is ready. |
|
|
| Reject |
| Reject if there is no successful leave request for active-user-sync-temp. |
|
|
| Accept |
| Accept if POST /api/channels/{id}/leave is called for active-user-sync-temp and returns 200. |
| metric_standardization_hub_remains_active_after_temp_cleanup |
| |
| Category |
| process |
| |
| Must Pass |
| false |
| |
| Checker Key |
| POST /api/channels/{id}/leave | pathParams.id=<draft_channel_id> | output.statusCode=200 -> GET /api/messages | input.queryParams.channelId=<final_channel_id> | input.queryParams.limit=50 | output.statusCode=200 |
| |
| Description |
| Verify that metric-standardization-hub is opened again after the temporary room is left. |
| |
| Reject |
| Reject if the final channel is not accessed after the draft channel leave action. |
| |
| Accept |
| Accept if GET /api/messages loads metric-standardization-hub after active-user-sync-temp is left. |
| |