1
0

Fix updating dates when marking a task as done (#145)

Fix lint

Fix reminders not being updated

Fix updating dates when marking a task as done

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/145
This commit is contained in:
konrad
2020-02-26 21:09:45 +00:00
parent c551706b52
commit 88bf8f3df0
2 changed files with 108 additions and 11 deletions

View File

@ -128,14 +128,82 @@ func TestUpdateDone(t *testing.T) {
oldTask := &Task{Done: false}
newTask := &Task{Done: true}
updateDone(oldTask, newTask)
assert.NotEqual(t, timeutil.TimeStamp(0), oldTask.DoneAt)
assert.NotEqual(t, timeutil.TimeStamp(0), newTask.DoneAt)
})
t.Run("unmarking a task as done", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
oldTask := &Task{Done: true}
newTask := &Task{Done: false}
updateDone(oldTask, newTask)
assert.Equal(t, timeutil.TimeStamp(0), oldTask.DoneAt)
assert.Equal(t, timeutil.TimeStamp(0), newTask.DoneAt)
})
t.Run("repeating interval", func(t *testing.T) {
t.Run("normal", func(t *testing.T) {
oldTask := &Task{
Done: false,
RepeatAfter: 8600,
DueDate: timeutil.TimeStamp(1550000000),
}
newTask := &Task{
Done: true,
}
updateDone(oldTask, newTask)
assert.Equal(t, timeutil.TimeStamp(1550008600), newTask.DueDate)
})
t.Run("don't update if due date is zero", func(t *testing.T) {
oldTask := &Task{
Done: false,
RepeatAfter: 8600,
DueDate: timeutil.TimeStamp(0),
}
newTask := &Task{
Done: true,
DueDate: timeutil.TimeStamp(1543626724),
}
updateDone(oldTask, newTask)
assert.Equal(t, timeutil.TimeStamp(1543626724), newTask.DueDate)
})
t.Run("update reminders", func(t *testing.T) {
oldTask := &Task{
Done: false,
RepeatAfter: 8600,
Reminders: []timeutil.TimeStamp{
1550000000,
1555000000,
},
}
newTask := &Task{
Done: true,
}
updateDone(oldTask, newTask)
assert.Len(t, newTask.Reminders, 2)
assert.Equal(t, timeutil.TimeStamp(1550008600), newTask.Reminders[0])
assert.Equal(t, timeutil.TimeStamp(1555008600), newTask.Reminders[1])
})
t.Run("update start date", func(t *testing.T) {
oldTask := &Task{
Done: false,
RepeatAfter: 8600,
StartDate: timeutil.TimeStamp(1550000000),
}
newTask := &Task{
Done: true,
}
updateDone(oldTask, newTask)
assert.Equal(t, timeutil.TimeStamp(1550008600), newTask.StartDate)
})
t.Run("update end date", func(t *testing.T) {
oldTask := &Task{
Done: false,
RepeatAfter: 8600,
EndDate: timeutil.TimeStamp(1550000000),
}
newTask := &Task{
Done: true,
}
updateDone(oldTask, newTask)
assert.Equal(t, timeutil.TimeStamp(1550008600), newTask.EndDate)
})
})
}