@@ -81,7 +81,8 @@ func TestDispatcher(t *testing.T) {
8181 hmacService := services .NewHMACService ("test-secret" )
8282 mockHTTP := new (MockHTTPClient )
8383
84- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil )
84+ scheduler := NewScheduler (redisClient , logger )
85+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil , scheduler )
8586 dispatcher .SetHTTPClient (mockHTTP )
8687
8788 // Add cleanup function
@@ -251,7 +252,7 @@ func TestDispatcher(t *testing.T) {
251252 dispatcherStart := time .Now ()
252253 mockNotifier := NewMockClientNotifier ()
253254 mockNotifier .connected ["client1" ] = []string {"c1" }
254- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , mockNotifier )
255+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , mockNotifier , scheduler )
255256 fmt .Printf ("[PROFILE] dispatcher creation: %v\n " , time .Since (dispatcherStart ))
256257 scheduleStart := time .Now ()
257258 schedule := & models.Schedule {
@@ -280,7 +281,7 @@ func TestDispatcher(t *testing.T) {
280281 t .Run ("client hook dispatch - no client connected" , func (t * testing.T ) {
281282 cleanup ()
282283 mockNotifier := NewMockClientNotifier ()
283- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 2 , 1 * time .Millisecond , mockNotifier )
284+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 2 , 1 * time .Millisecond , mockNotifier , scheduler )
284285 // Insert the event into the database
285286 event := & models.Event {
286287 ID : uuid .New (),
@@ -312,7 +313,7 @@ func TestDispatcher(t *testing.T) {
312313 err = redisClient .RPush (ctx , dispatchQueueKey , data ).Err ()
313314 require .NoError (t , err )
314315 // Run the worker for a short time to process retries
315- runWorkerAndWait (ctx , dispatcher , NewScheduler ( redisClient , logger ) , 20 * time .Millisecond )
316+ runWorkerAndWait (ctx , dispatcher , scheduler , 20 * time .Millisecond )
316317 // Now assert the number of calls
317318 assert .Equal (t , 3 , len (mockNotifier .calls )) // 3 attempts (initial + 2 retries)
318319 })
@@ -325,7 +326,7 @@ func TestDispatcher(t *testing.T) {
325326 dispatcherStart := time .Now ()
326327 mockNotifier := NewMockClientNotifier ()
327328 mockNotifier .connected ["client3" ] = []string {"c1" , "c2" }
328- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Millisecond , mockNotifier )
329+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Millisecond , mockNotifier , scheduler )
329330 fmt .Printf ("[PROFILE] dispatcher creation: %v\n " , time .Since (dispatcherStart ))
330331 scheduleStart := time .Now ()
331332 schedule := & models.Schedule {
@@ -364,11 +365,12 @@ func TestDispatcher_RedisOnlyDispatch(t *testing.T) {
364365 occurrenceRepo := repository .NewOccurrenceRepository (db , logger )
365366 hmacService := services .NewHMACService ("test-secret" )
366367 mockHTTP := new (MockHTTPClient )
367- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil )
368+ scheduler := NewScheduler (redisClient , logger )
369+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil , scheduler )
368370 dispatcher .SetHTTPClient (mockHTTP )
369371
370372 // Create Scheduler instance
371- scheduler : = NewScheduler (redisClient , logger )
373+ scheduler = NewScheduler (redisClient , logger )
372374
373375 // Create event and schedule, schedule in Redis
374376 event := & models.Event {
@@ -437,11 +439,12 @@ func TestDispatcher_GetDueSchedules(t *testing.T) {
437439 occurrenceRepo := repository .NewOccurrenceRepository (db , logger )
438440 hmacService := services .NewHMACService ("test-secret" )
439441 mockHTTP := new (MockHTTPClient )
440- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil )
442+ scheduler := NewScheduler (redisClient , logger )
443+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil , scheduler )
441444 dispatcher .SetHTTPClient (mockHTTP )
442445
443446 // Create Scheduler instance
444- scheduler : = NewScheduler (redisClient , logger )
447+ scheduler = NewScheduler (redisClient , logger )
445448
446449 // Create event and schedule, schedule in Redis
447450 event := & models.Event {
@@ -529,9 +532,9 @@ func TestDispatcher_DispatchQueueWorker(t *testing.T) {
529532 occurrenceRepo := repository .NewOccurrenceRepository (db , logger )
530533 hmacService := services .NewHMACService ("test-secret" )
531534 mockHTTP := new (MockHTTPClient )
532- dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil )
533- dispatcher .SetHTTPClient (mockHTTP )
534535 scheduler := NewScheduler (redisClient , logger )
536+ dispatcher := NewDispatcher (eventRepo , occurrenceRepo , hmacService , logger , 3 , 5 * time .Second , nil , scheduler )
537+ dispatcher .SetHTTPClient (mockHTTP )
535538
536539 cleanup := func () {
537540 _ , err := db .ExecContext (ctx , "TRUNCATE TABLE occurrences CASCADE" )
0 commit comments