fix: sort reminders
continuous-integration/drone/pr Build is passing Details

This commit is contained in:
cernst 2023-03-07 22:27:19 +01:00
parent e5cec4bd16
commit 3c4fb76554
2 changed files with 21 additions and 18 deletions

View File

@ -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

View File

@ -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)