@@ -11,21 +11,35 @@ describe("Working Tasks Manager", () => {
1111
1212 // Helper functions (same as in bot/index.ts)
1313 async function addWorkingTask ( event : unknown ) {
14- const workingTasks = ( await State . get ( "current-working-tasks" ) ) || { workingMessageEvents : [ ] } ;
14+ const workingTasks = ( ( await State . get ( "current-working-tasks" ) ) as
15+ | { workingMessageEvents : unknown [ ] }
16+ | undefined ) || { workingMessageEvents : [ ] } ;
1517 const events = workingTasks . workingMessageEvents || [ ] ;
1618
17- const exists = events . some ( ( e : unknown ) => e . ts === event . ts && e . channel === event . channel ) ;
19+ const exists = events . some (
20+ ( e : unknown ) =>
21+ ( e as Record < string , unknown > ) . ts === ( event as Record < string , unknown > ) . ts &&
22+ ( e as Record < string , unknown > ) . channel === ( event as Record < string , unknown > ) . channel ,
23+ ) ;
1824 if ( ! exists ) {
1925 events . push ( event ) ;
2026 await State . set ( "current-working-tasks" , { workingMessageEvents : events } ) ;
2127 }
2228 }
2329
2430 async function removeWorkingTask ( event : unknown ) {
25- const workingTasks = ( await State . get ( "current-working-tasks" ) ) || { workingMessageEvents : [ ] } ;
31+ const workingTasks = ( ( await State . get ( "current-working-tasks" ) ) as
32+ | { workingMessageEvents : unknown [ ] }
33+ | undefined ) || { workingMessageEvents : [ ] } ;
2634 const events = workingTasks . workingMessageEvents || [ ] ;
2735
28- const filtered = events . filter ( ( e : unknown ) => ! ( e . ts === event . ts && e . channel === event . channel ) ) ;
36+ const filtered = events . filter (
37+ ( e : unknown ) =>
38+ ! (
39+ ( e as Record < string , unknown > ) . ts === ( event as Record < string , unknown > ) . ts &&
40+ ( e as Record < string , unknown > ) . channel === ( event as Record < string , unknown > ) . channel
41+ ) ,
42+ ) ;
2943 await State . set ( "current-working-tasks" , { workingMessageEvents : filtered } ) ;
3044 }
3145
@@ -43,10 +57,12 @@ describe("Working Tasks Manager", () => {
4357
4458 await addWorkingTask ( event ) ;
4559
46- const workingTasks = await State . get ( "current-working-tasks" ) ;
60+ const workingTasks = ( await State . get ( "current-working-tasks" ) ) as
61+ | { workingMessageEvents : Array < Record < string , unknown > > }
62+ | undefined ;
4763 expect ( workingTasks ) . toBeDefined ( ) ;
48- expect ( workingTasks . workingMessageEvents ) . toHaveLength ( 1 ) ;
49- expect ( workingTasks . workingMessageEvents [ 0 ] . ts ) . toBe ( event . ts ) ;
64+ expect ( workingTasks ? .workingMessageEvents ) . toHaveLength ( 1 ) ;
65+ expect ( workingTasks ? .workingMessageEvents [ 0 ] . ts ) . toBe ( event . ts ) ;
5066 } ) ;
5167
5268 test ( "should not add duplicate tasks" , async ( ) => {
@@ -64,8 +80,10 @@ describe("Working Tasks Manager", () => {
6480 await addWorkingTask ( event ) ;
6581 await addWorkingTask ( event ) ; // Add same event again
6682
67- const workingTasks = await State . get ( "current-working-tasks" ) ;
68- expect ( workingTasks . workingMessageEvents ) . toHaveLength ( 1 ) ;
83+ const workingTasks = ( await State . get ( "current-working-tasks" ) ) as
84+ | { workingMessageEvents : unknown [ ] }
85+ | undefined ;
86+ expect ( workingTasks ?. workingMessageEvents ) . toHaveLength ( 1 ) ;
6987 } ) ;
7088
7189 test ( "should remove task from working list" , async ( ) => {
@@ -83,8 +101,10 @@ describe("Working Tasks Manager", () => {
83101 await addWorkingTask ( event ) ;
84102 await removeWorkingTask ( event ) ;
85103
86- const workingTasks = await State . get ( "current-working-tasks" ) ;
87- expect ( workingTasks . workingMessageEvents ) . toHaveLength ( 0 ) ;
104+ const workingTasks = ( await State . get ( "current-working-tasks" ) ) as
105+ | { workingMessageEvents : unknown [ ] }
106+ | undefined ;
107+ expect ( workingTasks ?. workingMessageEvents ) . toHaveLength ( 0 ) ;
88108 } ) ;
89109
90110 test ( "should handle multiple tasks" , async ( ) => {
@@ -113,14 +133,18 @@ describe("Working Tasks Manager", () => {
113133 await addWorkingTask ( event1 ) ;
114134 await addWorkingTask ( event2 ) ;
115135
116- let workingTasks = await State . get ( "current-working-tasks" ) ;
117- expect ( workingTasks . workingMessageEvents ) . toHaveLength ( 2 ) ;
136+ let workingTasks = ( await State . get ( "current-working-tasks" ) ) as
137+ | { workingMessageEvents : Array < Record < string , unknown > > }
138+ | undefined ;
139+ expect ( workingTasks ?. workingMessageEvents ) . toHaveLength ( 2 ) ;
118140
119141 await removeWorkingTask ( event1 ) ;
120142
121- workingTasks = await State . get ( "current-working-tasks" ) ;
122- expect ( workingTasks . workingMessageEvents ) . toHaveLength ( 1 ) ;
123- expect ( workingTasks . workingMessageEvents [ 0 ] . ts ) . toBe ( event2 . ts ) ;
143+ workingTasks = ( await State . get ( "current-working-tasks" ) ) as
144+ | { workingMessageEvents : Array < Record < string , unknown > > }
145+ | undefined ;
146+ expect ( workingTasks ?. workingMessageEvents ) . toHaveLength ( 1 ) ;
147+ expect ( workingTasks ?. workingMessageEvents [ 0 ] . ts ) . toBe ( event2 . ts ) ;
124148 } ) ;
125149
126150 test ( "should handle empty state on first access" , async ( ) => {
0 commit comments