@@ -275,3 +275,31 @@ func TestAPIResetNextCronTime(t *testing.T) {
275275 assert .Greater (t , time .Now ().Add (3 * time .Second ), * g2 .NextCronTime )
276276 assert .NotEqual (t , g .NextCronTime , g2 .NextCronTime )
277277}
278+
279+ func TestAPISetNextCronTime (t * testing.T ) {
280+ saga := genSaga (dtmimp .GetFuncName (), false , false )
281+ saga .Submit ()
282+ waitTransProcessed (saga .Gid )
283+ assert .Equal (t , []string {StatusPrepared , StatusSucceed , StatusPrepared , StatusSucceed }, getBranchesStatus (saga .Gid ))
284+ assert .Equal (t , StatusSucceed , getTransStatus (saga .Gid ))
285+ gid := saga .Gid
286+
287+ s := registry .GetStore ()
288+ g := s .FindTransGlobalStore (saga .Gid )
289+
290+ nextCronTime := time .Now ().Add (30 * time .Second ).UTC ()
291+ // set
292+ resp , err := dtmcli .GetRestyClient ().R ().SetBody (map [string ]string {
293+ "gid" : saga .Gid ,
294+ "next_cron_time" : nextCronTime .Format (time .RFC3339 ),
295+ }).Post (dtmutil .DefaultHTTPServer + "/setNextCronTime" )
296+ assert .Nil (t , err )
297+ assert .Equal (t , http .StatusOK , resp .StatusCode ())
298+
299+ // after set assert
300+ g2 := s .FindTransGlobalStore (gid )
301+ assert .NotNil (t , g2 )
302+ assert .Equal (t , gid , g2 .Gid )
303+ assert .Equal (t , nextCronTime .Truncate (time .Second ).UTC (), g2 .NextCronTime .Truncate (time .Second ).UTC ())
304+ assert .NotEqual (t , g .NextCronTime , g2 .NextCronTime )
305+ }
0 commit comments