File size: 8,192 Bytes
c4ae742
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
这是标准 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.