@@ -3334,7 +3334,7 @@ func TestHandleBotSendMessageRequiresIMService(t *testing.T) {
33343334 }
33353335}
33363336
3337- func TestHandleBotSendMessageDefaultsToRecentThreadScope (t * testing.T ) {
3337+ func TestHandleBotSendMessageDoesNotInferRecentThreadScope (t * testing.T ) {
33383338 now := time .Now ().UTC ()
33393339 imSvc := im .NewServiceFromBootstrap (im.Bootstrap {
33403340 CurrentUserID : "u-admin" ,
@@ -3418,58 +3418,8 @@ func TestHandleBotSendMessageDefaultsToRecentThreadScope(t *testing.T) {
34183418 if reply .ID == "" {
34193419 t .Fatalf ("sent message %q not found in room messages" , sent .MessageID )
34203420 }
3421- if reply .RelatesTo == nil || reply .RelatesTo .RelType != im .RelationTypeThread || reply .RelatesTo .EventID != "msg-root" {
3422- t .Fatalf ("reply.RelatesTo = %+v, want m.thread -> msg-root" , reply .RelatesTo )
3423- }
3424-
3425- topLevel , err := imSvc .CreateMessage (im.CreateMessageRequest {
3426- RoomID : "room-1" ,
3427- SenderID : "u-admin" ,
3428- Content : "top-level follow-up" ,
3429- })
3430- if err != nil {
3431- t .Fatalf ("CreateMessage(top-level follow-up) error = %v" , err )
3432- }
3433- room , ok = imSvc .Room ("room-1" )
3434- if ! ok {
3435- t .Fatal ("Room(room-1) = false before top-level publish, want room" )
3436- }
3437- bridge .PublishMessageEvent (room , sender , topLevel )
3438- select {
3439- case evt := <- events :
3440- if evt .ThreadRootID != "" {
3441- t .Fatalf ("top-level bot event ThreadRootID = %q, want empty" , evt .ThreadRootID )
3442- }
3443- bridge .Ack ("u-manager" , evt .MessageID )
3444- case <- time .After (time .Second ):
3445- t .Fatal ("PublishMessageEvent() timed out waiting for top-level event" )
3446- }
3447-
3448- req = httptest .NewRequest (http .MethodPost , "/api/bots/u-manager/messages/send" , strings .NewReader (`{"room_id":"room-1","text":"top-level answer"}` ))
3449- rec = httptest .NewRecorder ()
3450- srv .Routes ().ServeHTTP (rec , req )
3451- if rec .Code != http .StatusOK {
3452- t .Fatalf ("top-level response status = %d, want %d; body=%s" , rec .Code , http .StatusOK , rec .Body .String ())
3453- }
3454- if err := json .NewDecoder (rec .Body ).Decode (& sent ); err != nil {
3455- t .Fatalf ("decode top-level send response: %v" , err )
3456- }
3457- messages , err = imSvc .ListMessagesWithOptions ("room-1" , im.ListMessagesOptions {IncludeThreadReplies : true })
3458- if err != nil {
3459- t .Fatalf ("ListMessagesWithOptions() after top-level response error = %v" , err )
3460- }
3461- reply = im.Message {}
3462- for _ , message := range messages {
3463- if message .ID == sent .MessageID {
3464- reply = message
3465- break
3466- }
3467- }
3468- if reply .ID == "" {
3469- t .Fatalf ("top-level sent message %q not found in room messages" , sent .MessageID )
3470- }
34713421 if reply .RelatesTo != nil {
3472- t .Fatalf ("top-level reply.RelatesTo = %+v, want nil after top-level event reset " , reply .RelatesTo )
3422+ t .Fatalf ("reply.RelatesTo = %+v, want nil when bot send omits explicit thread/topic " , reply .RelatesTo )
34733423 }
34743424}
34753425
0 commit comments