@@ -5,12 +5,11 @@ import {
55 Reminder ,
66 ReminderManager ,
77 ReminderResponse ,
8- ReminderTimer ,
8+ ReminderState ,
99 StreamChat ,
1010} from '../../../src' ;
1111import { describe , expect , it , vi } from 'vitest' ;
1212import { PaginationQueryReturnValue } from '../../../src/pagination' ;
13- import { sleep } from '../../../src/utils' ;
1413
1514const baseData = {
1615 channel_cid : 'channel_cid' ,
@@ -71,19 +70,40 @@ describe('ReminderManager', () => {
7170 const manager = new ReminderManager ( { client, config } ) ;
7271 // @ts -expect-error accessing private property
7372 expect ( manager . client ) . toBe ( client ) ;
74- expect ( manager . configState . getLatestValue ( ) ) . toEqual ( config ) ;
73+ expect ( manager . configState . getLatestValue ( ) ) . toEqual ( {
74+ ...DEFAULT_REMINDER_MANAGER_CONFIG ,
75+ ...config ,
76+ } ) ;
7577 expect ( manager . state . getLatestValue ( ) ) . toEqual ( { reminders : new Map ( ) } ) ;
7678 } ) ;
7779 } ) ;
7880
7981 describe ( 'config state API' , ( ) => {
80- it ( 'updates config object ' , ( ) => {
82+ it ( 'updates scheduledOffsetsMs ' , ( ) => {
8183 const client = new StreamChat ( 'api-key' ) ;
8284 const manager = new ReminderManager ( { client } ) ;
8385 const config = { scheduledOffsetsMs : [ 1 , 2 , 3 ] } ;
8486 manager . updateConfig ( config ) ;
8587 expect ( manager . scheduledOffsetsMs ) . toEqual ( config . scheduledOffsetsMs ) ;
8688 } ) ;
89+
90+ it ( 'updates stopTimerRefreshBoundaryMs for every timer' , ( ) => {
91+ const client = new StreamChat ( 'api-key' ) ;
92+ const manager = new ReminderManager ( { client } ) ;
93+ const scheduleOffsetMs = 62 * 1000 ;
94+ const reminderResponse = generateReminderResponse ( { scheduleOffsetMs } ) ;
95+ manager . upsertToState ( { data : reminderResponse } ) ;
96+
97+ expect ( manager . stopTimerRefreshBoundaryMs ) . toBe ( DEFAULT_STOP_REFRESH_BOUNDARY_MS ) ;
98+ const config = { stopTimerRefreshBoundaryMs : 1 } ;
99+ manager . updateConfig ( config ) ;
100+ expect ( manager . stopTimerRefreshBoundaryMs ) . toEqual (
101+ config . stopTimerRefreshBoundaryMs ,
102+ ) ;
103+ expect (
104+ manager . reminders . get ( reminderResponse . message_id ) ?. timer . stopRefreshBoundaryMs ,
105+ ) . toBe ( 1 ) ;
106+ } ) ;
87107 } ) ;
88108
89109 describe ( 'state API' , ( ) => {
@@ -305,10 +325,10 @@ describe('ReminderManager', () => {
305325 const remindAtDate = new Date ( '1970-01-01' ) ;
306326 const { timeLeftMs, ...state } = manager . reminders
307327 . get ( reminderResponse . message_id )
308- ?. state . getLatestValue ( ) ;
328+ ?. state . getLatestValue ( ) as ReminderState ;
309329 expect ( {
310330 ...state ,
311- timeLeftMs : Math . round ( timeLeftMs / 1000 ) ,
331+ timeLeftMs : Math . round ( ( timeLeftMs ?? 0 ) / 1000 ) ,
312332 } ) . toEqual ( {
313333 ...reminderResponse ,
314334 created_at : new Date ( reminderResponse . created_at ) ,
0 commit comments