[MM-56074] mmctl job commands (#26855)
* add job list and update job status command to mmctl
Этот коммит содержится в:
@@ -121,3 +121,113 @@ func TestJobIsValid(t *testing.T) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestJobIsValidStatusChange(t *testing.T) {
|
||||
t.Run("invalid status change", func(t *testing.T) {
|
||||
job := &Job{
|
||||
Id: "arandomstring0123456789012",
|
||||
Type: JobTypeExportProcess,
|
||||
Priority: 42,
|
||||
CreateAt: 1336,
|
||||
StartAt: 1337,
|
||||
LastActivityAt: 1666609360813,
|
||||
Status: JobStatusInProgress,
|
||||
Progress: 32,
|
||||
Data: StringMap{"Hello": "World"},
|
||||
}
|
||||
|
||||
require.False(t, job.IsValidStatusChange("invalid!"))
|
||||
})
|
||||
|
||||
t.Run("valid status change from in_progress", func(t *testing.T) {
|
||||
job := &Job{
|
||||
Id: "arandomstring0123456789012",
|
||||
Type: JobTypeExportProcess,
|
||||
Priority: 42,
|
||||
CreateAt: 1336,
|
||||
StartAt: 1337,
|
||||
LastActivityAt: 1666609360813,
|
||||
Status: JobStatusInProgress,
|
||||
Progress: 32,
|
||||
Data: StringMap{"Hello": "World"},
|
||||
}
|
||||
|
||||
require.True(t, job.IsValidStatusChange(JobStatusPending))
|
||||
require.True(t, job.IsValidStatusChange(JobStatusCancelRequested))
|
||||
require.False(t, job.IsValidStatusChange(JobStatusCanceled))
|
||||
})
|
||||
|
||||
t.Run("valid status change from pending", func(t *testing.T) {
|
||||
job := &Job{
|
||||
Id: "arandomstring0123456789012",
|
||||
Type: JobTypeExportProcess,
|
||||
Priority: 42,
|
||||
CreateAt: 1336,
|
||||
StartAt: 1337,
|
||||
LastActivityAt: 1666609360813,
|
||||
Status: JobStatusPending,
|
||||
Progress: 32,
|
||||
Data: StringMap{"Hello": "World"},
|
||||
}
|
||||
|
||||
require.True(t, job.IsValidStatusChange(JobStatusCancelRequested))
|
||||
require.False(t, job.IsValidStatusChange(JobStatusInProgress))
|
||||
})
|
||||
|
||||
t.Run("valid status change from cancel_requested", func(t *testing.T) {
|
||||
job := &Job{
|
||||
Id: "arandomstring0123456789012",
|
||||
Type: JobTypeExportProcess,
|
||||
Priority: 42,
|
||||
CreateAt: 1336,
|
||||
StartAt: 1337,
|
||||
LastActivityAt: 1666609360813,
|
||||
Status: JobStatusCancelRequested,
|
||||
Progress: 32,
|
||||
Data: StringMap{"Hello": "World"},
|
||||
}
|
||||
|
||||
require.True(t, job.IsValidStatusChange(JobStatusCanceled))
|
||||
require.False(t, job.IsValidStatusChange(JobStatusPending))
|
||||
})
|
||||
}
|
||||
|
||||
func TestIsValidJobType(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
validTypes := []string{JobTypeExportProcess, JobTypeImportProcess}
|
||||
for _, jobType := range validTypes {
|
||||
t.Run(jobType, func(t *testing.T) {
|
||||
require.True(t, IsValidJobType(jobType))
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("invalid", func(t *testing.T) {
|
||||
invalidTypes := []string{"invalid!", ""}
|
||||
for _, jobType := range invalidTypes {
|
||||
t.Run(jobType, func(t *testing.T) {
|
||||
require.False(t, IsValidJobType(jobType))
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestIsValidJobStatus(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
validStatuses := []string{JobStatusCancelRequested, JobStatusCanceled, JobStatusError, JobStatusInProgress, JobStatusPending, JobStatusSuccess, JobStatusWarning}
|
||||
for _, status := range validStatuses {
|
||||
t.Run(status, func(t *testing.T) {
|
||||
require.True(t, IsValidJobStatus(status))
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("invalid", func(t *testing.T) {
|
||||
invalidStatuses := []string{"invalid!", ""}
|
||||
for _, status := range invalidStatuses {
|
||||
t.Run(status, func(t *testing.T) {
|
||||
require.False(t, IsValidJobStatus(status))
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user