Added support the user reordering of todo tasks for the TaskListView view in the app target.

This commit is contained in:
2026-02-11 16:26:21 +01:00
parent 1e3cdbdd3f
commit 8956b782c3
3 changed files with 101 additions and 10 deletions
@@ -36,7 +36,7 @@ struct TaskListViewModelTests {
) {
// GIVEN
let viewModel = TaskListView.ViewModel(group: group)
viewModel.showCompleted = showCompleted
// WHEN
@@ -46,7 +46,8 @@ struct TaskListViewModelTests {
if showCompleted {
#expect(title == "view.task-list.label.hide-completed")
#expect(icon == "eye.slash")
} else {
}
else {
#expect(title == "view.task-list.label.show-completed")
#expect(icon == "eye")
}
@@ -90,6 +91,56 @@ struct TaskListViewModelTests {
// MARK: Method tests
@Test("reorderTasks updates order property when moving task forward")
func reorderTasksMovingForward() {
// GIVEN
let viewModel = TaskListView.ViewModel(group: .today)
let tasks: [Todo] = [
.init(title: "Task 1", due: .now, order: 0),
.init(title: "Task 2", due: .now, order: 1),
.init(title: "Task 3", due: .now, order: 2),
.init(title: "Task 4", due: .now, order: 3),
]
// WHEN
viewModel.reorderTasks(
tasks,
from: IndexSet(integer: 0),
to: 3
)
// THEN
#expect(tasks[0].order == 2)
#expect(tasks[1].order == 0)
#expect(tasks[2].order == 1)
#expect(tasks[3].order == 3)
}
@Test("reorderTasks updates order property when moving task backward")
func reorderTasksMovingBackward() {
// GIVEN
let viewModel = TaskListView.ViewModel(group: .today)
let tasks: [Todo] = [
.init(title: "Task 1", due: .now, order: 0),
.init(title: "Task 2", due: .now, order: 1),
.init(title: "Task 3", due: .now, order: 2),
.init(title: "Task 4", due: .now, order: 3),
]
// WHEN
viewModel.reorderTasks(
tasks,
from: IndexSet(integer: 3),
to: 1
)
// THEN
#expect(tasks[0].order == 0)
#expect(tasks[1].order == 2)
#expect(tasks[2].order == 3)
#expect(tasks[3].order == 1)
}
@Test("toggleCompletedVisbility toggles the showCompleted property")
func toggleCompletedVisibility() {
// GIVEN