diff --git a/pkg/models/tasks.go b/pkg/models/tasks.go index 6f43d5e2cc7..0713a5cf8fc 100644 --- a/pkg/models/tasks.go +++ b/pkg/models/tasks.go @@ -1556,6 +1556,10 @@ func (t *Task) updateReminders(s *xorm.Session, reminders []*TaskReminder, dueDa return err } } + // sort reminders + sort.Slice(t.Reminders, func(i, j int) bool { + return t.Reminders[i].Reminder.Before(t.Reminders[j].Reminder) + }) if len(reminders) == 0 { t.Reminders = nil diff --git a/pkg/models/tasks_test.go b/pkg/models/tasks_test.go index 06318197f0e..84f9df6a5db 100644 --- a/pkg/models/tasks_test.go +++ b/pkg/models/tasks_test.go @@ -79,9 +79,9 @@ func TestTask_Create(t *testing.T) { Title: "Lorem", Description: "Lorem Ipsum Dolor", ListID: 1, - DueDate: time.Unix(1550000000, 0), - StartDate: time.Unix(1550000010, 0), - EndDate: time.Unix(1550000020, 0), + DueDate: time.Date(2023, time.March, 7, 22, 5, 0, 0, time.Local), + StartDate: time.Date(2023, time.March, 7, 22, 5, 10, 0, time.Local), + EndDate: time.Date(2023, time.March, 7, 22, 5, 20, 0, time.Local), Reminders: []*TaskReminder{ { RelativeTo: "due_date", @@ -96,15 +96,15 @@ func TestTask_Create(t *testing.T) { RelativePeriod: -1, }, { - Reminder: time.Unix(1550000020, 0), + Reminder: time.Date(2023, time.March, 7, 23, 0, 0, 0, time.Local), }, }} err := task.Create(s, usr) assert.NoError(t, err) - assert.Equal(t, task.Reminders[0].Reminder, time.Unix(1550000001, 0)) - assert.Equal(t, task.Reminders[1].Reminder, time.Unix(1550000008, 0)) - assert.Equal(t, task.Reminders[2].Reminder, time.Unix(1550000019, 0)) - assert.Equal(t, task.Reminders[3].Reminder, time.Unix(1550000020, 0)) + assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 1, 0, time.Local), task.Reminders[0].Reminder) + assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 8, 0, time.Local), task.Reminders[1].Reminder) + assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 19, 0, time.Local), task.Reminders[2].Reminder) + assert.Equal(t, time.Date(2023, time.March, 7, 23, 0, 0, 0, time.Local), task.Reminders[3].Reminder) err = s.Commit() assert.NoError(t, err) }) @@ -416,9 +416,9 @@ func TestTask_Update(t *testing.T) { ID: 1, ListID: 1, Title: "test", - DueDate: time.Unix(1550000000, 0), - StartDate: time.Unix(1550000010, 0), - EndDate: time.Unix(1550000020, 0), + DueDate: time.Date(2023, time.March, 7, 22, 5, 0, 0, time.Local), + StartDate: time.Date(2023, time.March, 7, 22, 5, 10, 0, time.Local), + EndDate: time.Date(2023, time.March, 7, 22, 5, 20, 0, time.Local), Reminders: []*TaskReminder{ { RelativeTo: "due_date", @@ -433,16 +433,15 @@ func TestTask_Update(t *testing.T) { RelativePeriod: -1, }, { - Reminder: time.Unix(1550000020, 0), + Reminder: time.Date(2023, time.March, 7, 23, 0, 0, 0, time.Local), }, - }, - } + }} err := task.Update(s, u) assert.NoError(t, err) - assert.Equal(t, task.Reminders[0].Reminder, time.Unix(1550000001, 0)) - assert.Equal(t, task.Reminders[1].Reminder, time.Unix(1550000008, 0)) - assert.Equal(t, task.Reminders[2].Reminder, time.Unix(1550000019, 0)) - assert.Equal(t, task.Reminders[3].Reminder, time.Unix(1550000020, 0)) + assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 1, 0, time.Local), task.Reminders[0].Reminder) + assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 8, 0, time.Local), task.Reminders[1].Reminder) + assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 19, 0, time.Local), task.Reminders[2].Reminder) + assert.Equal(t, time.Date(2023, time.March, 7, 23, 0, 0, 0, time.Local), task.Reminders[3].Reminder) err = s.Commit() assert.NoError(t, err) db.AssertCount(t, "task_reminders", builder.Eq{"task_id": 1}, 4)