@@ -260,7 +260,7 @@ func (s *scheduleIntegrationSuite) TestBasics() {
260
260
Namespace : s .namespace ,
261
261
MaximumPageSize : 5 ,
262
262
})
263
- if err != nil || len (listResp .Schedules ) != 1 || len (listResp .Schedules [0 ].GetInfo ().GetRecentActions ()) < 2 {
263
+ if err != nil || len (listResp .Schedules ) != 1 || listResp . Schedules [ 0 ]. ScheduleId != sid || len (listResp .Schedules [0 ].GetInfo ().GetRecentActions ()) < 2 {
264
264
return false
265
265
}
266
266
s .NoError (err )
@@ -467,6 +467,14 @@ func (s *scheduleIntegrationSuite) TestInput() {
467
467
_ , err = s .engine .CreateSchedule (NewContext (), req )
468
468
s .NoError (err )
469
469
s .Eventually (func () bool { return atomic .LoadInt32 (& runs ) == 1 }, 5 * time .Second , 200 * time .Millisecond )
470
+
471
+ // cleanup
472
+ _ , err = s .engine .DeleteSchedule (NewContext (), & workflowservice.DeleteScheduleRequest {
473
+ Namespace : s .namespace ,
474
+ ScheduleId : sid ,
475
+ Identity : "test" ,
476
+ })
477
+ s .NoError (err )
470
478
}
471
479
472
480
func (s * scheduleIntegrationSuite ) TestRefresh () {
@@ -547,6 +555,84 @@ func (s *scheduleIntegrationSuite) TestRefresh() {
547
555
// scheduler has done some stuff
548
556
events3 := s .getHistory (s .namespace , & commonpb.WorkflowExecution {WorkflowId : scheduler .WorkflowIDPrefix + sid })
549
557
s .Greater (len (events3 ), len (events2 ))
558
+
559
+ // cleanup
560
+ _ , err = s .engine .DeleteSchedule (NewContext (), & workflowservice.DeleteScheduleRequest {
561
+ Namespace : s .namespace ,
562
+ ScheduleId : sid ,
563
+ Identity : "test" ,
564
+ })
565
+ s .NoError (err )
566
+ }
567
+
568
+ func (s * scheduleIntegrationSuite ) TestListBeforeRun () {
569
+ sid := "sched-test-list-before-run"
570
+ wid := "sched-test-list-before-run-wf"
571
+ wt := "sched-test-list-before-run-wt"
572
+
573
+ // disable per-ns worker so that the schedule workflow never runs
574
+ dc := s .testCluster .host .dcClient
575
+ dc .OverrideValue (dynamicconfig .WorkerPerNamespaceWorkerCount , 0 )
576
+ s .testCluster .host .workerService .RefreshPerNSWorkerManager ()
577
+ time .Sleep (2 * time .Second )
578
+
579
+ schedule := & schedulepb.Schedule {
580
+ Spec : & schedulepb.ScheduleSpec {
581
+ Interval : []* schedulepb.IntervalSpec {
582
+ {Interval : timestamp .DurationPtr (3 * time .Second )},
583
+ },
584
+ },
585
+ Action : & schedulepb.ScheduleAction {
586
+ Action : & schedulepb.ScheduleAction_StartWorkflow {
587
+ StartWorkflow : & workflowpb.NewWorkflowExecutionInfo {
588
+ WorkflowId : wid ,
589
+ WorkflowType : & commonpb.WorkflowType {Name : wt },
590
+ TaskQueue : & taskqueuepb.TaskQueue {Name : s .taskQueue },
591
+ },
592
+ },
593
+ },
594
+ }
595
+ req := & workflowservice.CreateScheduleRequest {
596
+ Namespace : s .namespace ,
597
+ ScheduleId : sid ,
598
+ Schedule : schedule ,
599
+ Identity : "test" ,
600
+ RequestId : uuid .New (),
601
+ }
602
+
603
+ _ , err := s .engine .CreateSchedule (NewContext (), req )
604
+ s .NoError (err )
605
+
606
+ s .Eventually (func () bool { // wait for visibility
607
+ listResp , err := s .engine .ListSchedules (NewContext (), & workflowservice.ListSchedulesRequest {
608
+ Namespace : s .namespace ,
609
+ MaximumPageSize : 5 ,
610
+ })
611
+ if err != nil || len (listResp .Schedules ) != 1 || listResp .Schedules [0 ].ScheduleId != sid {
612
+ return false
613
+ }
614
+ s .NoError (err )
615
+ entry := listResp .Schedules [0 ]
616
+ s .Equal (sid , entry .ScheduleId )
617
+ s .NotNil (entry .Info )
618
+ s .Equal (schedule .Spec , entry .Info .Spec )
619
+ s .Equal (wt , entry .Info .WorkflowType .Name )
620
+ s .False (entry .Info .Paused )
621
+ s .Greater (len (entry .Info .FutureActionTimes ), 1 )
622
+ return true
623
+ }, 10 * time .Second , 1 * time .Second )
624
+
625
+ // cleanup
626
+ _ , err = s .engine .DeleteSchedule (NewContext (), & workflowservice.DeleteScheduleRequest {
627
+ Namespace : s .namespace ,
628
+ ScheduleId : sid ,
629
+ Identity : "test" ,
630
+ })
631
+ s .NoError (err )
632
+
633
+ dc .RemoveOverride (dynamicconfig .WorkerPerNamespaceWorkerCount )
634
+ s .testCluster .host .workerService .RefreshPerNSWorkerManager ()
635
+ time .Sleep (2 * time .Second )
550
636
}
551
637
552
638
func (s * scheduleIntegrationSuite ) TestRateLimit () {
0 commit comments