@@ -328,4 +328,60 @@ func TestEventExpander(t *testing.T) {
328328 assert .Contains (t , scheduledDays , time .Wednesday )
329329 assert .NotContains (t , scheduledDays , time .Monday )
330330 })
331+
332+ t .Run ("minutely frequency event expansion" , func (t * testing.T ) {
333+ cleanup ()
334+ startTime := time .Now ().Truncate (time .Minute )
335+ scheduleConfig := & models.ScheduleConfig {
336+ Frequency : "minutely" ,
337+ Interval : 2 ,
338+ }
339+ event := & models.Event {
340+ ID : uuid .New (),
341+ Name : "Minutely Event" ,
342+ Description : "Every 2 minutes" ,
343+ StartTime : startTime ,
344+ Webhook : "http://example.com" ,
345+ Schedule : scheduleConfig ,
346+ Status : models .EventStatusActive ,
347+ Metadata : []byte (`{"key": "value"}` ),
348+ Tags : pq.StringArray {"test" },
349+ CreatedAt : time .Now (),
350+ }
351+ err := eventRepo .Create (ctx , event )
352+ require .NoError (t , err )
353+ err = expander .ExpandEvents (ctx )
354+ require .NoError (t , err )
355+ results , err := redisClient .ZRange (ctx , namespace + ScheduleKey , 0 , - 1 ).Result ()
356+ require .NoError (t , err )
357+ assert .NotEmpty (t , results )
358+ })
359+
360+ t .Run ("hourly frequency event expansion" , func (t * testing.T ) {
361+ cleanup ()
362+ startTime := time .Now ().Truncate (time .Hour )
363+ scheduleConfig := & models.ScheduleConfig {
364+ Frequency : "hourly" ,
365+ Interval : 3 ,
366+ }
367+ event := & models.Event {
368+ ID : uuid .New (),
369+ Name : "Hourly Event" ,
370+ Description : "Every 3 hours" ,
371+ StartTime : startTime ,
372+ Webhook : "http://example.com" ,
373+ Schedule : scheduleConfig ,
374+ Status : models .EventStatusActive ,
375+ Metadata : []byte (`{"key": "value"}` ),
376+ Tags : pq.StringArray {"test" },
377+ CreatedAt : time .Now (),
378+ }
379+ err := eventRepo .Create (ctx , event )
380+ require .NoError (t , err )
381+ err = expander .ExpandEvents (ctx )
382+ require .NoError (t , err )
383+ results , err := redisClient .ZRange (ctx , namespace + ScheduleKey , 0 , - 1 ).Result ()
384+ require .NoError (t , err )
385+ assert .NotEmpty (t , results )
386+ })
331387}
0 commit comments