mirror of https://github.com/go-co-op/gocron.git
weekly and monthly jobs should not allow zero interval (#792)
This commit is contained in:
parent
4baf341092
commit
46bcd8e030
|
|
@ -21,6 +21,7 @@ var (
|
|||
ErrMonthlyJobAtTimesNil = fmt.Errorf("gocron: MonthlyJob: atTimes must not be nil")
|
||||
ErrMonthlyJobDaysNil = fmt.Errorf("gocron: MonthlyJob: daysOfTheMonth must not be nil")
|
||||
ErrMonthlyJobHours = fmt.Errorf("gocron: MonthlyJob: atTimes hours must be between 0 and 23 inclusive")
|
||||
ErrMonthlyJobZeroInterval = fmt.Errorf("gocron: MonthlyJob: interval must be greater than 0")
|
||||
ErrMonthlyJobMinutesSeconds = fmt.Errorf("gocron: MonthlyJob: atTimes minutes and seconds must be between 0 and 59 inclusive")
|
||||
ErrNewJobTaskNil = fmt.Errorf("gocron: NewJob: Task must not be nil")
|
||||
ErrNewJobTaskNotFunc = fmt.Errorf("gocron: NewJob: Task.Function must be of kind reflect.Func")
|
||||
|
|
@ -34,6 +35,7 @@ var (
|
|||
ErrWeeklyJobAtTimesNil = fmt.Errorf("gocron: WeeklyJob: atTimes must not be nil")
|
||||
ErrWeeklyJobDaysOfTheWeekNil = fmt.Errorf("gocron: WeeklyJob: daysOfTheWeek must not be nil")
|
||||
ErrWeeklyJobHours = fmt.Errorf("gocron: WeeklyJob: atTimes hours must be between 0 and 23 inclusive")
|
||||
ErrWeeklyJobZeroInterval = fmt.Errorf("gocron: WeeklyJob: interval must be greater than 0")
|
||||
ErrWeeklyJobMinutesSeconds = fmt.Errorf("gocron: WeeklyJob: atTimes minutes and seconds must be between 0 and 59 inclusive")
|
||||
ErrPanicRecovered = fmt.Errorf("gocron: panic recovered")
|
||||
ErrWithClockNil = fmt.Errorf("gocron: WithClock: clock must not be nil")
|
||||
|
|
|
|||
6
job.go
6
job.go
|
|
@ -274,6 +274,9 @@ type weeklyJobDefinition struct {
|
|||
|
||||
func (w weeklyJobDefinition) setup(j *internalJob, location *time.Location, _ time.Time) error {
|
||||
var ws weeklyJob
|
||||
if w.interval == 0 {
|
||||
return ErrWeeklyJobZeroInterval
|
||||
}
|
||||
ws.interval = w.interval
|
||||
|
||||
if w.daysOfTheWeek == nil {
|
||||
|
|
@ -339,6 +342,9 @@ type monthlyJobDefinition struct {
|
|||
|
||||
func (m monthlyJobDefinition) setup(j *internalJob, location *time.Location, _ time.Time) error {
|
||||
var ms monthlyJob
|
||||
if m.interval == 0 {
|
||||
return ErrMonthlyJobZeroInterval
|
||||
}
|
||||
ms.interval = m.interval
|
||||
|
||||
if m.daysOfTheMonth == nil {
|
||||
|
|
|
|||
|
|
@ -686,6 +686,18 @@ func TestScheduler_NewJobErrors(t *testing.T) {
|
|||
nil,
|
||||
ErrWeeklyJobMinutesSeconds,
|
||||
},
|
||||
{
|
||||
"weekly job interval zero",
|
||||
WeeklyJob(
|
||||
0,
|
||||
NewWeekdays(time.Monday),
|
||||
NewAtTimes(
|
||||
NewAtTime(1, 0, 0),
|
||||
),
|
||||
),
|
||||
nil,
|
||||
ErrWeeklyJobZeroInterval,
|
||||
},
|
||||
{
|
||||
"monthly job at times nil",
|
||||
MonthlyJob(
|
||||
|
|
@ -766,6 +778,18 @@ func TestScheduler_NewJobErrors(t *testing.T) {
|
|||
nil,
|
||||
ErrMonthlyJobMinutesSeconds,
|
||||
},
|
||||
{
|
||||
"monthly job interval zero",
|
||||
MonthlyJob(
|
||||
0,
|
||||
NewDaysOfTheMonth(1),
|
||||
NewAtTimes(
|
||||
NewAtTime(1, 0, 0),
|
||||
),
|
||||
),
|
||||
nil,
|
||||
ErrMonthlyJobZeroInterval,
|
||||
},
|
||||
{
|
||||
"WithName no name",
|
||||
DurationJob(
|
||||
|
|
|
|||
Loading…
Reference in New Issue