-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtestutils.go
More file actions
84 lines (71 loc) · 1.99 KB
/
testutils.go
File metadata and controls
84 lines (71 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package main
import "testing"
func CreateTestTask(id, name, parentID string) task {
var parent *string
if parentID != "" {
parent = &parentID
}
return task{
ID: id,
Name: name,
Status: StatusOpen,
ParentID: parent,
}
}
func CreateTestTasks(count int) []task {
tasks := make([]task, count)
for i := 0; i < count; i++ {
tasks[i] = CreateTestTask(
string(rune('a'+i)),
"Task "+string(rune('A'+i)),
"",
)
}
return tasks
}
func CreateTaskHierarchy(levels int, tasksPerLevel int) []task {
var tasks []task
for level := 0; level < levels; level++ {
for i := 0; i < tasksPerLevel; i++ {
taskID := string(rune('a' + level*tasksPerLevel + i))
taskName := "Task " + string(rune('A'+level*tasksPerLevel+i))
var parentID string
if level > 0 {
parentIndex := (level-1)*tasksPerLevel + i%tasksPerLevel
parentID = string(rune('a' + parentIndex))
}
tasks = append(tasks, CreateTestTask(taskID, taskName, parentID))
}
}
return tasks
}
func AssertTaskLevel(t *testing.T, task task, allTasks []task, expected int) {
t.Helper()
actual := task.getLevel(allTasks)
if actual != expected {
t.Errorf("Task %s level: got %d, want %d", task.ID, actual, expected)
}
}
func AssertTaskIsFullyPrioritized(t *testing.T, task task, allTasks []task, expected bool) {
t.Helper()
actual := task.isFullyPrioritized(allTasks)
if actual != expected {
t.Errorf("Task %s isFullyPrioritized: got %v, want %v", task.ID, actual, expected)
}
}
func AssertModelHasComparisonTasks(t *testing.T, model model) {
t.Helper()
if model.taskA == nil || model.taskB == nil {
t.Error("Model should have comparison tasks set")
}
}
func AssertModelHasNoComparisonTasks(t *testing.T, model model) {
t.Helper()
if model.taskA != nil || model.taskB != nil {
t.Error("Model should have no comparison tasks")
}
}
// CreateTestTasksMsg creates a tasksMsg for tests that expect this message type
func CreateTestTasksMsg(count int) tasksMsg {
return tasksMsg{Tasks: CreateTestTasks(count)}
}