@@ -48,12 +48,12 @@ describe("handleSlackAction", () => {
4848 return { cfg, context, hasRepliedRef } ;
4949 }
5050
51- function expectLastSlackSend ( content : string , threadTs ?: string ) {
51+ function expectLastSlackSend ( content : string , cfg : OpenClawConfig , threadTs ?: string ) {
5252 expect ( sendSlackMessage ) . toHaveBeenLastCalledWith (
5353 "channel:C123" ,
5454 content ,
5555 expect . objectContaining ( {
56- cfg : expect . any ( Object ) ,
56+ cfg,
5757 mediaUrl : undefined ,
5858 threadTs,
5959 blocks : undefined ,
@@ -70,7 +70,7 @@ describe("handleSlackAction", () => {
7070 params . cfg ,
7171 params . context ,
7272 ) ;
73- expectLastSlackSend ( "Second" ) ;
73+ expectLastSlackSend ( "Second" , params . cfg ) ;
7474 }
7575
7676 async function resolveReadToken ( cfg : OpenClawConfig ) : Promise < string | undefined > {
@@ -189,20 +189,21 @@ describe("handleSlackAction", () => {
189189 } ) ;
190190
191191 it ( "passes threadTs to sendSlackMessage for thread replies" , async ( ) => {
192+ const cfg = slackConfig ( ) ;
192193 await handleSlackAction (
193194 {
194195 action : "sendMessage" ,
195196 to : "channel:C123" ,
196197 content : "Hello thread" ,
197198 threadTs : "1234567890.123456" ,
198199 } ,
199- slackConfig ( ) ,
200+ cfg ,
200201 ) ;
201202 expect ( sendSlackMessage ) . toHaveBeenCalledWith (
202203 "channel:C123" ,
203204 "Hello thread" ,
204205 expect . objectContaining ( {
205- cfg : expect . any ( Object ) ,
206+ cfg,
206207 mediaUrl : undefined ,
207208 threadTs : "1234567890.123456" ,
208209 blocks : undefined ,
@@ -506,20 +507,21 @@ describe("handleSlackAction", () => {
506507 } ) ;
507508
508509 it ( "auto-injects threadTs from context when replyToMode=all" , async ( ) => {
510+ const cfg = slackConfig ( ) ;
509511 await handleSlackAction (
510512 {
511513 action : "sendMessage" ,
512514 to : "channel:C123" ,
513515 content : "Threaded reply" ,
514516 } ,
515- slackConfig ( ) ,
517+ cfg ,
516518 {
517519 currentChannelId : "C123" ,
518520 currentThreadTs : "1111111111.111111" ,
519521 replyToMode : "all" ,
520522 } ,
521523 ) ;
522- expectLastSlackSend ( "Threaded reply" , "1111111111.111111" ) ;
524+ expectLastSlackSend ( "Threaded reply" , cfg , "1111111111.111111" ) ;
523525 } ) ;
524526
525527 it ( "replyToMode=first threads first message then stops" , async ( ) => {
@@ -531,7 +533,7 @@ describe("handleSlackAction", () => {
531533 context ,
532534 ) ;
533535
534- expectLastSlackSend ( "First" , "1111111111.111111" ) ;
536+ expectLastSlackSend ( "First" , cfg , "1111111111.111111" ) ;
535537 await sendSecondMessageAndExpectNoThread ( { cfg, context } ) ;
536538 } ) ;
537539
@@ -567,41 +569,40 @@ describe("handleSlackAction", () => {
567569 context ,
568570 ) ;
569571
570- expectLastSlackSend ( "Explicit" , "9999999999.999999" ) ;
572+ expectLastSlackSend ( "Explicit" , cfg , "9999999999.999999" ) ;
571573 expect ( hasRepliedRef . value ) . toBe ( true ) ;
572574 await sendSecondMessageAndExpectNoThread ( { cfg, context } ) ;
573575 } ) ;
574576
575577 it ( "replyToMode=first without hasRepliedRef does not thread" , async ( ) => {
576- await handleSlackAction (
577- { action : "sendMessage" , to : "channel:C123" , content : "No ref" } ,
578- slackConfig ( ) ,
579- {
580- currentChannelId : "C123" ,
581- currentThreadTs : "1111111111.111111" ,
582- replyToMode : "first" ,
583- } ,
584- ) ;
585- expectLastSlackSend ( "No ref" ) ;
578+ const cfg = slackConfig ( ) ;
579+ await handleSlackAction ( { action : "sendMessage" , to : "channel:C123" , content : "No ref" } , cfg , {
580+ currentChannelId : "C123" ,
581+ currentThreadTs : "1111111111.111111" ,
582+ replyToMode : "first" ,
583+ } ) ;
584+ expectLastSlackSend ( "No ref" , cfg ) ;
586585 } ) ;
587586
588587 it ( "does not auto-inject threadTs when replyToMode=off" , async ( ) => {
588+ const cfg = slackConfig ( ) ;
589589 await handleSlackAction (
590590 { action : "sendMessage" , to : "channel:C123" , content : "No thread" } ,
591- slackConfig ( ) ,
591+ cfg ,
592592 {
593593 currentChannelId : "C123" ,
594594 currentThreadTs : "1111111111.111111" ,
595595 replyToMode : "off" ,
596596 } ,
597597 ) ;
598- expectLastSlackSend ( "No thread" ) ;
598+ expectLastSlackSend ( "No thread" , cfg ) ;
599599 } ) ;
600600
601601 it ( "does not auto-inject threadTs when sending to different channel" , async ( ) => {
602+ const cfg = slackConfig ( ) ;
602603 await handleSlackAction (
603604 { action : "sendMessage" , to : "channel:C999" , content : "Other channel" } ,
604- slackConfig ( ) ,
605+ cfg ,
605606 {
606607 currentChannelId : "C123" ,
607608 currentThreadTs : "1111111111.111111" ,
@@ -612,7 +613,7 @@ describe("handleSlackAction", () => {
612613 "channel:C999" ,
613614 "Other channel" ,
614615 expect . objectContaining ( {
615- cfg : expect . any ( Object ) ,
616+ cfg,
616617 mediaUrl : undefined ,
617618 threadTs : undefined ,
618619 blocks : undefined ,
@@ -621,38 +622,36 @@ describe("handleSlackAction", () => {
621622 } ) ;
622623
623624 it ( "explicit threadTs overrides context threadTs" , async ( ) => {
625+ const cfg = slackConfig ( ) ;
624626 await handleSlackAction (
625627 {
626628 action : "sendMessage" ,
627629 to : "channel:C123" ,
628630 content : "Explicit wins" ,
629631 threadTs : "9999999999.999999" ,
630632 } ,
631- slackConfig ( ) ,
633+ cfg ,
632634 {
633635 currentChannelId : "C123" ,
634636 currentThreadTs : "1111111111.111111" ,
635637 replyToMode : "all" ,
636638 } ,
637639 ) ;
638- expectLastSlackSend ( "Explicit wins" , "9999999999.999999" ) ;
640+ expectLastSlackSend ( "Explicit wins" , cfg , "9999999999.999999" ) ;
639641 } ) ;
640642
641643 it ( "handles channel target without prefix when replyToMode=all" , async ( ) => {
642- await handleSlackAction (
643- { action : "sendMessage" , to : "C123" , content : "Bare target" } ,
644- slackConfig ( ) ,
645- {
646- currentChannelId : "C123" ,
647- currentThreadTs : "1111111111.111111" ,
648- replyToMode : "all" ,
649- } ,
650- ) ;
644+ const cfg = slackConfig ( ) ;
645+ await handleSlackAction ( { action : "sendMessage" , to : "C123" , content : "Bare target" } , cfg , {
646+ currentChannelId : "C123" ,
647+ currentThreadTs : "1111111111.111111" ,
648+ replyToMode : "all" ,
649+ } ) ;
651650 expect ( sendSlackMessage ) . toHaveBeenCalledWith (
652651 "C123" ,
653652 "Bare target" ,
654653 expect . objectContaining ( {
655- cfg : expect . any ( Object ) ,
654+ cfg,
656655 mediaUrl : undefined ,
657656 threadTs : "1111111111.111111" ,
658657 blocks : undefined ,
0 commit comments