@@ -421,6 +421,42 @@ func TestTaskRepo_Complete(t *testing.T) {
421421 }
422422}
423423
424+ func TestTaskRepo_CompleteWithMessage (t * testing.T ) {
425+ db := testDB (t )
426+ repos := repository .NewRepositories (db )
427+ ctx := context .Background ()
428+
429+ seedTask (t , repos , model .TaskTypeUpload )
430+ claimed , err := repos .Tasks .ClaimReady (ctx , model .TaskTypeUpload , 5 * time .Minute )
431+ if err != nil {
432+ t .Fatalf ("ClaimReady: %v" , err )
433+ }
434+ if claimed == nil {
435+ t .Fatal ("setup: could not claim task" )
436+ }
437+
438+ message := "completed successfully with special condition"
439+ if err := repos .Tasks .CompleteWithMessage (ctx , claimed , message ); err != nil {
440+ t .Fatalf ("CompleteWithMessage: %v" , err )
441+ }
442+
443+ task , err := repos .Tasks .GetByID (ctx , claimed .ID )
444+ if err != nil {
445+ t .Fatalf ("GetByID: %v" , err )
446+ }
447+ if task == nil {
448+ t .Fatal ("expected task to be found, got nil" )
449+ }
450+ if task .Status != model .TaskStatusCompleted {
451+ t .Errorf ("expected status %s, got %s" , model .TaskStatusCompleted , task .Status )
452+ }
453+ if task .StatusMessage == nil {
454+ t .Errorf ("expected status_message %q, got nil" , message )
455+ } else if * task .StatusMessage != message {
456+ t .Errorf ("expected status_message %q, got %q" , message , * task .StatusMessage )
457+ }
458+ }
459+
424460func TestTaskRepo_Complete_NotRunning (t * testing.T ) {
425461 db := testDB (t )
426462 repos := repository .NewRepositories (db )
0 commit comments