Refine Telegram thread commands

This commit is contained in:
Codex
2026-06-23 11:19:48 +00:00
parent ac8d5c2803
commit 595e8aee0e
9 changed files with 628 additions and 102 deletions

View File

@@ -159,6 +159,66 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
return
}
var archiveThread map[string]any
if err := conn.ReadJSON(&archiveThread); err != nil {
serverDone <- err
return
}
if archiveThread["method"] != "thread/archive" {
serverDone <- unexpectedMessage("thread/archive", archiveThread["method"])
return
}
archiveParams := archiveThread["params"].(map[string]any)
if archiveParams["threadId"] != "thr_1" {
payload, _ := json.Marshal(archiveParams)
serverDone <- unexpectedMessage("thread/archive params", string(payload))
return
}
if err := conn.WriteJSON(map[string]any{"id": archiveThread["id"], "result": map[string]any{}}); err != nil {
serverDone <- err
return
}
var unarchiveThread map[string]any
if err := conn.ReadJSON(&unarchiveThread); err != nil {
serverDone <- err
return
}
if unarchiveThread["method"] != "thread/unarchive" {
serverDone <- unexpectedMessage("thread/unarchive", unarchiveThread["method"])
return
}
unarchiveParams := unarchiveThread["params"].(map[string]any)
if unarchiveParams["threadId"] != "thr_1" {
payload, _ := json.Marshal(unarchiveParams)
serverDone <- unexpectedMessage("thread/unarchive params", string(payload))
return
}
if err := conn.WriteJSON(map[string]any{"id": unarchiveThread["id"], "result": map[string]any{}}); err != nil {
serverDone <- err
return
}
var deleteThread map[string]any
if err := conn.ReadJSON(&deleteThread); err != nil {
serverDone <- err
return
}
if deleteThread["method"] != "thread/delete" {
serverDone <- unexpectedMessage("thread/delete", deleteThread["method"])
return
}
deleteParams := deleteThread["params"].(map[string]any)
if deleteParams["threadId"] != "thr_1" {
payload, _ := json.Marshal(deleteParams)
serverDone <- unexpectedMessage("thread/delete params", string(payload))
return
}
if err := conn.WriteJSON(map[string]any{"id": deleteThread["id"], "result": map[string]any{}}); err != nil {
serverDone <- err
return
}
var response map[string]any
if err := conn.ReadJSON(&response); err != nil {
serverDone <- err
@@ -218,6 +278,15 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
if err := client.SetThreadName(ctx, "thr_1", "Short title"); err != nil {
t.Fatal(err)
}
if err := client.ArchiveThread(ctx, "thr_1"); err != nil {
t.Fatal(err)
}
if err := client.UnarchiveThread(ctx, "thr_1"); err != nil {
t.Fatal(err)
}
if err := client.DeleteThread(ctx, "thr_1"); err != nil {
t.Fatal(err)
}
if err := client.RespondServerRequest(ctx, approvalRequestID, "accept"); err != nil {
t.Fatal(err)
}