Fix tests

This commit is contained in:
kolaente 2021-09-04 20:31:02 +02:00
parent 6d13edcc23
commit 4b389ae02c
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
5 changed files with 541 additions and 399 deletions

View File

@ -32,79 +32,95 @@ func TestInsertFromStructure(t *testing.T) {
} }
t.Run("normal", func(t *testing.T) { t.Run("normal", func(t *testing.T) {
db.LoadAndAssertFixtures(t) db.LoadAndAssertFixtures(t)
testStructure := []*models.NamespaceWithLists{ testStructure := []*models.NamespaceWithListsAndTasks{
{ {
Namespace: models.Namespace{ Namespace: models.Namespace{
Title: "Test1", Title: "Test1",
Description: "Lorem Ipsum", Description: "Lorem Ipsum",
}, },
Lists: []*models.List{ Lists: []*models.ListWithTasksAndBuckets{
{ {
Title: "Testlist1", List: models.List{
Description: "Something", Title: "Testlist1",
Description: "Something",
},
Buckets: []*models.Bucket{ Buckets: []*models.Bucket{
{ {
ID: 1234, ID: 1234,
Title: "Test Bucket", Title: "Test Bucket",
}, },
}, },
Tasks: []*models.Task{ Tasks: []*models.TaskWithComments{
{ {
Title: "Task1", Task: models.Task{
Description: "Lorem", Title: "Task1",
Description: "Lorem",
},
}, },
{ {
Title: "Task with related tasks", Task: models.Task{
RelatedTasks: map[models.RelationKind][]*models.Task{ Title: "Task with related tasks",
models.RelationKindSubtask: { RelatedTasks: map[models.RelationKind][]*models.Task{
models.RelationKindSubtask: {
{
Title: "Related to task with related task",
Description: "As subtask",
},
},
},
},
},
{
Task: models.Task{
Title: "Task with attachments",
Attachments: []*models.TaskAttachment{
{ {
Title: "Related to task with related task", File: &files.File{
Description: "As subtask", Name: "testfile",
Size: 4,
FileContent: []byte{1, 2, 3, 4},
},
}, },
}, },
}, },
}, },
{ {
Title: "Task with attachments", Task: models.Task{
Attachments: []*models.TaskAttachment{ Title: "Task with labels",
{ Labels: []*models.Label{
File: &files.File{ {
Name: "testfile", Title: "Label1",
Size: 4, HexColor: "ff00ff",
FileContent: []byte{1, 2, 3, 4}, },
{
Title: "Label2",
HexColor: "ff00ff",
}, },
}, },
}, },
}, },
{ {
Title: "Task with labels", Task: models.Task{
Labels: []*models.Label{ Title: "Task with same label",
{ Labels: []*models.Label{
Title: "Label1", {
HexColor: "ff00ff", Title: "Label1",
}, HexColor: "ff00ff",
{ },
Title: "Label2",
HexColor: "ff00ff",
}, },
}, },
}, },
{ {
Title: "Task with same label", Task: models.Task{
Labels: []*models.Label{ Title: "Task in a bucket",
{ BucketID: 1234,
Title: "Label1",
HexColor: "ff00ff",
},
}, },
}, },
{ {
Title: "Task in a bucket", Task: models.Task{
BucketID: 1234, Title: "Task in a nonexisting bucket",
}, BucketID: 1111,
{ },
Title: "Task in a nonexisting bucket",
BucketID: 1111,
}, },
}, },
}, },

View File

@ -102,57 +102,79 @@ func TestConverting(t *testing.T) {
}, },
} }
expectedHierachie := []*models.NamespaceWithLists{ expectedHierachie := []*models.NamespaceWithListsAndTasks{
{ {
Namespace: models.Namespace{ Namespace: models.Namespace{
Title: "Migrated from Microsoft Todo", Title: "Migrated from Microsoft Todo",
}, },
Lists: []*models.List{ Lists: []*models.ListWithTasksAndBuckets{
{ {
Title: "List 1", List: models.List{
Tasks: []*models.Task{ Title: "List 1",
},
Tasks: []*models.TaskWithComments{
{ {
Title: "Task 1", Task: models.Task{
Description: "This is a description", Title: "Task 1",
}, Description: "This is a description",
{
Title: "Task 2",
Done: true,
DoneAt: testtimeTime,
},
{
Title: "Task 3",
Priority: 1,
},
{
Title: "Task 4",
Priority: 3,
},
{
Title: "Task 5",
Reminders: []time.Time{
testtimeTime,
}, },
}, },
{ {
Title: "Task 6", Task: models.Task{
DueDate: testtimeTime, Title: "Task 2",
Done: true,
DoneAt: testtimeTime,
},
}, },
{ {
Title: "Task 7", Task: models.Task{
DueDate: testtimeTime, Title: "Task 3",
RepeatAfter: 60 * 60 * 24 * 7, // The amount of seconds in a week Priority: 1,
},
},
{
Task: models.Task{
Title: "Task 4",
Priority: 3,
},
},
{
Task: models.Task{
Title: "Task 5",
Reminders: []time.Time{
testtimeTime,
},
},
},
{
Task: models.Task{
Title: "Task 6",
DueDate: testtimeTime,
},
},
{
Task: models.Task{
Title: "Task 7",
DueDate: testtimeTime,
RepeatAfter: 60 * 60 * 24 * 7, // The amount of seconds in a week
},
}, },
}, },
}, },
{ {
Title: "List 2", List: models.List{
Tasks: []*models.Task{ Title: "List 2",
},
Tasks: []*models.TaskWithComments{
{ {
Title: "Task 1", Task: models.Task{
Title: "Task 1",
},
}, },
{ {
Title: "Task 2", Task: models.Task{
Title: "Task 2",
},
}, },
}, },
}, },

View File

@ -375,210 +375,258 @@ func TestConvertTodoistToVikunja(t *testing.T) {
}, },
} }
expectedHierachie := []*models.NamespaceWithLists{ expectedHierachie := []*models.NamespaceWithListsAndTasks{
{ {
Namespace: models.Namespace{ Namespace: models.Namespace{
Title: "Migrated from todoist", Title: "Migrated from todoist",
}, },
Lists: []*models.List{ Lists: []*models.ListWithTasksAndBuckets{
{ {
Title: "Project1", List: models.List{
Description: "Lorem Ipsum dolor sit amet\nLorem Ipsum dolor sit amet 2\nLorem Ipsum dolor sit amet 3", Title: "Project1",
HexColor: todoistColors[30], Description: "Lorem Ipsum dolor sit amet\nLorem Ipsum dolor sit amet 2\nLorem Ipsum dolor sit amet 3",
HexColor: todoistColors[30],
},
Buckets: []*models.Bucket{ Buckets: []*models.Bucket{
{ {
ID: 1234, ID: 1234,
Title: "Some Bucket", Title: "Some Bucket",
}, },
}, },
Tasks: []*models.Task{ Tasks: []*models.TaskWithComments{
{ {
Title: "Task400000000", Task: models.Task{
Description: "Lorem Ipsum dolor sit amet", Title: "Task400000000",
Done: false, Description: "Lorem Ipsum dolor sit amet",
Created: time1, Done: false,
Reminders: []time.Time{ Created: time1,
time.Date(2020, time.June, 15, 0, 0, 0, 0, time.UTC).In(config.GetTimeZone()), Reminders: []time.Time{
time.Date(2020, time.June, 16, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()), time.Date(2020, time.June, 15, 0, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
time.Date(2020, time.June, 16, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
},
}, },
}, },
{ {
Title: "Task400000001", Task: models.Task{
Description: "Lorem Ipsum dolor sit amet", Title: "Task400000001",
Done: false, Description: "Lorem Ipsum dolor sit amet",
Created: time1, Done: false,
}, Created: time1,
{
Title: "Task400000002",
Done: false,
Created: time1,
Reminders: []time.Time{
time.Date(2020, time.July, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
}, },
}, },
{ {
Title: "Task400000003", Task: models.Task{
Description: "Lorem Ipsum dolor sit amet", Title: "Task400000002",
Done: true, Done: false,
DueDate: dueTime, Created: time1,
Created: time1, Reminders: []time.Time{
DoneAt: time3, time.Date(2020, time.July, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
Labels: vikunjaLabels, },
Reminders: []time.Time{
time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
}, },
}, },
{ {
Title: "Task400000004", Task: models.Task{
Done: false, Title: "Task400000003",
Created: time1, Description: "Lorem Ipsum dolor sit amet",
Labels: vikunjaLabels, Done: true,
}, DueDate: dueTime,
{ Created: time1,
Title: "Task400000005", DoneAt: time3,
Done: true, Labels: vikunjaLabels,
DueDate: dueTime, Reminders: []time.Time{
Created: time1, time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
DoneAt: time3, },
Reminders: []time.Time{
time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
}, },
}, },
{ {
Title: "Task400000006", Task: models.Task{
Done: true, Title: "Task400000004",
DueDate: dueTime, Done: false,
Created: time1, Created: time1,
DoneAt: time3, Labels: vikunjaLabels,
RelatedTasks: map[models.RelationKind][]*models.Task{ },
models.RelationKindSubtask: { },
{
Task: models.Task{
Title: "Task400000005",
Done: true,
DueDate: dueTime,
Created: time1,
DoneAt: time3,
Reminders: []time.Time{
time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
},
},
},
{
Task: models.Task{
Title: "Task400000006",
Done: true,
DueDate: dueTime,
Created: time1,
DoneAt: time3,
RelatedTasks: map[models.RelationKind][]*models.Task{
models.RelationKindSubtask: {
{
Title: "Task with parent",
Done: false,
Priority: 2,
Created: time1,
DoneAt: nilTime,
},
},
},
},
},
{
Task: models.Task{
Title: "Task400000106",
Done: true,
DueDate: dueTimeWithTime,
Created: time1,
DoneAt: time3,
Labels: vikunjaLabels,
},
},
{
Task: models.Task{
Title: "Task400000107",
Done: true,
Created: time1,
DoneAt: time3,
},
},
{
Task: models.Task{
Title: "Task400000108",
Done: true,
Created: time1,
DoneAt: time3,
},
},
{
Task: models.Task{
Title: "Task400000109",
Done: true,
Created: time1,
DoneAt: time3,
BucketID: 1234,
},
},
},
},
{
List: models.List{
Title: "Project2",
Description: "Lorem Ipsum dolor sit amet 4\nLorem Ipsum dolor sit amet 5",
HexColor: todoistColors[37],
},
Tasks: []*models.TaskWithComments{
{
Task: models.Task{
Title: "Task400000007",
Done: false,
DueDate: dueTime,
Created: time1,
},
},
{
Task: models.Task{
Title: "Task400000008",
Done: false,
DueDate: dueTime,
Created: time1,
},
},
{
Task: models.Task{
Title: "Task400000009",
Done: false,
Created: time1,
Reminders: []time.Time{
time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
},
},
},
{
Task: models.Task{
Title: "Task400000010",
Description: "Lorem Ipsum dolor sit amet",
Done: true,
Created: time1,
DoneAt: time3,
},
},
{
Task: models.Task{
Title: "Task400000101",
Description: "Lorem Ipsum dolor sit amet",
Done: false,
Created: time1,
Attachments: []*models.TaskAttachment{
{ {
Title: "Task with parent", File: &files.File{
Done: false, Name: "file.md",
Priority: 2, Mime: "text/plain",
Created: time1, Size: 12345,
DoneAt: nilTime, Created: time1,
FileContent: exampleFile,
},
Created: time1,
}, },
}, },
}, },
}, },
{ {
Title: "Task400000106", Task: models.Task{
Done: true, Title: "Task400000102",
DueDate: dueTimeWithTime, Done: false,
Created: time1, DueDate: dueTime,
DoneAt: time3, Created: time1,
Labels: vikunjaLabels, Labels: vikunjaLabels,
},
}, },
{ {
Title: "Task400000107", Task: models.Task{
Done: true, Title: "Task400000103",
Created: time1, Done: false,
DoneAt: time3, Created: time1,
Labels: vikunjaLabels,
},
}, },
{ {
Title: "Task400000108", Task: models.Task{
Done: true, Title: "Task400000104",
Created: time1, Done: false,
DoneAt: time3, Created: time1,
Labels: vikunjaLabels,
},
}, },
{ {
Title: "Task400000109", Task: models.Task{
Done: true, Title: "Task400000105",
Created: time1, Done: false,
DoneAt: time3, DueDate: dueTime,
BucketID: 1234, Created: time1,
Labels: vikunjaLabels,
},
}, },
}, },
}, },
{ {
Title: "Project2", List: models.List{
Description: "Lorem Ipsum dolor sit amet 4\nLorem Ipsum dolor sit amet 5", Title: "Project3 - Archived",
HexColor: todoistColors[37], HexColor: todoistColors[37],
Tasks: []*models.Task{ IsArchived: true,
{
Title: "Task400000007",
Done: false,
DueDate: dueTime,
Created: time1,
},
{
Title: "Task400000008",
Done: false,
DueDate: dueTime,
Created: time1,
},
{
Title: "Task400000009",
Done: false,
Created: time1,
Reminders: []time.Time{
time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()),
},
},
{
Title: "Task400000010",
Description: "Lorem Ipsum dolor sit amet",
Done: true,
Created: time1,
DoneAt: time3,
},
{
Title: "Task400000101",
Description: "Lorem Ipsum dolor sit amet",
Done: false,
Created: time1,
Attachments: []*models.TaskAttachment{
{
File: &files.File{
Name: "file.md",
Mime: "text/plain",
Size: 12345,
Created: time1,
FileContent: exampleFile,
},
Created: time1,
},
},
},
{
Title: "Task400000102",
Done: false,
DueDate: dueTime,
Created: time1,
Labels: vikunjaLabels,
},
{
Title: "Task400000103",
Done: false,
Created: time1,
Labels: vikunjaLabels,
},
{
Title: "Task400000104",
Done: false,
Created: time1,
Labels: vikunjaLabels,
},
{
Title: "Task400000105",
Done: false,
DueDate: dueTime,
Created: time1,
Labels: vikunjaLabels,
},
}, },
}, Tasks: []*models.TaskWithComments{
{
Title: "Project3 - Archived",
HexColor: todoistColors[37],
IsArchived: true,
Tasks: []*models.Task{
{ {
Title: "Task400000111", Task: models.Task{
Done: true, Title: "Task400000111",
Created: time1, Done: true,
DoneAt: time3, Created: time1,
DoneAt: time3,
},
}, },
}, },
}, },

View File

@ -187,16 +187,18 @@ func TestConvertTrelloToVikunja(t *testing.T) {
} }
trelloData[0].Prefs.BackgroundImage = "https://vikunja.io/testimage.jpg" // Using an image which we are hosting, so it'll still be up trelloData[0].Prefs.BackgroundImage = "https://vikunja.io/testimage.jpg" // Using an image which we are hosting, so it'll still be up
expectedHierachie := []*models.NamespaceWithLists{ expectedHierachie := []*models.NamespaceWithListsAndTasks{
{ {
Namespace: models.Namespace{ Namespace: models.Namespace{
Title: "Imported from Trello", Title: "Imported from Trello",
}, },
Lists: []*models.List{ Lists: []*models.ListWithTasksAndBuckets{
{ {
Title: "TestBoard", List: models.List{
Description: "This is a description", Title: "TestBoard",
BackgroundInformation: bytes.NewBuffer(exampleFile), Description: "This is a description",
BackgroundInformation: bytes.NewBuffer(exampleFile),
},
Buckets: []*models.Bucket{ Buckets: []*models.Bucket{
{ {
ID: 1, ID: 1,
@ -207,37 +209,40 @@ func TestConvertTrelloToVikunja(t *testing.T) {
Title: "Test List 2", Title: "Test List 2",
}, },
}, },
Tasks: []*models.Task{ Tasks: []*models.TaskWithComments{
{ {
Title: "Test Card 1", Task: models.Task{
Description: "Card Description", Title: "Test Card 1",
BucketID: 1, Description: "Card Description",
KanbanPosition: 123, BucketID: 1,
DueDate: time1, KanbanPosition: 123,
Labels: []*models.Label{ DueDate: time1,
{ Labels: []*models.Label{
Title: "Label 1", {
HexColor: trelloColorMap["green"], Title: "Label 1",
HexColor: trelloColorMap["green"],
},
{
Title: "Label 2",
HexColor: trelloColorMap["orange"],
},
}, },
{ Attachments: []*models.TaskAttachment{
Title: "Label 2", {
HexColor: trelloColorMap["orange"], File: &files.File{
}, Name: "Testimage.jpg",
}, Mime: "image/jpg",
Attachments: []*models.TaskAttachment{ Size: uint64(len(exampleFile)),
{ FileContent: exampleFile,
File: &files.File{ },
Name: "Testimage.jpg",
Mime: "image/jpg",
Size: uint64(len(exampleFile)),
FileContent: exampleFile,
}, },
}, },
}, },
}, },
{ {
Title: "Test Card 2", Task: models.Task{
Description: ` Title: "Test Card 2",
Description: `
## Checklist 1 ## Checklist 1
@ -248,84 +253,105 @@ func TestConvertTrelloToVikunja(t *testing.T) {
* [ ] Pending Task * [ ] Pending Task
* [ ] Another Pending Task`, * [ ] Another Pending Task`,
BucketID: 1, BucketID: 1,
KanbanPosition: 124, KanbanPosition: 124,
},
}, },
{ {
Title: "Test Card 3", Task: models.Task{
BucketID: 1, Title: "Test Card 3",
KanbanPosition: 126, BucketID: 1,
KanbanPosition: 126,
},
}, },
{ {
Title: "Test Card 4", Task: models.Task{
BucketID: 1, Title: "Test Card 4",
KanbanPosition: 127, BucketID: 1,
Labels: []*models.Label{ KanbanPosition: 127,
{ Labels: []*models.Label{
Title: "Label 2", {
HexColor: trelloColorMap["orange"], Title: "Label 2",
HexColor: trelloColorMap["orange"],
},
}, },
}, },
}, },
{ {
Title: "Test Card 5", Task: models.Task{
BucketID: 2, Title: "Test Card 5",
KanbanPosition: 111, BucketID: 2,
Labels: []*models.Label{ KanbanPosition: 111,
{ Labels: []*models.Label{
Title: "Label 3", {
HexColor: trelloColorMap["blue"], Title: "Label 3",
HexColor: trelloColorMap["blue"],
},
}, },
}, },
}, },
{ {
Title: "Test Card 6", Task: models.Task{
BucketID: 2, Title: "Test Card 6",
KanbanPosition: 222, BucketID: 2,
DueDate: time1, KanbanPosition: 222,
DueDate: time1,
},
}, },
{ {
Title: "Test Card 7", Task: models.Task{
BucketID: 2, Title: "Test Card 7",
KanbanPosition: 333, BucketID: 2,
KanbanPosition: 333,
},
}, },
{ {
Title: "Test Card 8", Task: models.Task{
BucketID: 2, Title: "Test Card 8",
KanbanPosition: 444, BucketID: 2,
KanbanPosition: 444,
},
}, },
}, },
}, },
{ {
Title: "TestBoard 2", List: models.List{
Title: "TestBoard 2",
},
Buckets: []*models.Bucket{ Buckets: []*models.Bucket{
{ {
ID: 3, ID: 3,
Title: "Test List 4", Title: "Test List 4",
}, },
}, },
Tasks: []*models.Task{ Tasks: []*models.TaskWithComments{
{ {
Title: "Test Card 634", Task: models.Task{
BucketID: 3, Title: "Test Card 634",
KanbanPosition: 123, BucketID: 3,
KanbanPosition: 123,
},
}, },
}, },
}, },
{ {
Title: "TestBoard Archived", List: models.List{
IsArchived: true, Title: "TestBoard Archived",
IsArchived: true,
},
Buckets: []*models.Bucket{ Buckets: []*models.Bucket{
{ {
ID: 4, ID: 4,
Title: "Test List 5", Title: "Test List 5",
}, },
}, },
Tasks: []*models.Task{ Tasks: []*models.TaskWithComments{
{ {
Title: "Test Card 63423", Task: models.Task{
BucketID: 4, Title: "Test Card 63423",
KanbanPosition: 123, BucketID: 4,
KanbanPosition: 123,
},
}, },
}, },
}, },

View File

@ -194,49 +194,55 @@ func TestWunderlistParsing(t *testing.T) {
}, },
} }
expectedHierachie := []*models.NamespaceWithLists{ expectedHierachie := []*models.NamespaceWithListsAndTasks{
{ {
Namespace: models.Namespace{ Namespace: models.Namespace{
Title: "Lorem Ipsum", Title: "Lorem Ipsum",
Created: time1, Created: time1,
Updated: time2, Updated: time2,
}, },
Lists: []*models.List{ Lists: []*models.ListWithTasksAndBuckets{
{ {
Created: time1, List: models.List{
Title: "Lorem1", Created: time1,
Tasks: []*models.Task{ Title: "Lorem1",
},
Tasks: []*models.TaskWithComments{
{ {
Title: "Ipsum1", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum1",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Description: "Lorem Ipsum dolor sit amet", Created: time1,
Attachments: []*models.TaskAttachment{ Description: "Lorem Ipsum dolor sit amet",
{ Attachments: []*models.TaskAttachment{
File: &files.File{ {
Name: "file.md", File: &files.File{
Mime: "text/plain", Name: "file.md",
Size: 12345, Mime: "text/plain",
Created: time2, Size: 12345,
FileContent: exampleFile, Created: time2,
FileContent: exampleFile,
},
Created: time2,
}, },
Created: time2,
}, },
Reminders: []time.Time{time4},
}, },
Reminders: []time.Time{time4},
}, },
{ {
Title: "Ipsum2", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum2",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Description: "Lorem Ipsum dolor sit amet", Created: time1,
RelatedTasks: map[models.RelationKind][]*models.Task{ Description: "Lorem Ipsum dolor sit amet",
models.RelationKindSubtask: { RelatedTasks: map[models.RelationKind][]*models.Task{
{ models.RelationKindSubtask: {
Title: "LoremSub1", {
}, Title: "LoremSub1",
{ },
Title: "LoremSub2", {
Title: "LoremSub2",
},
}, },
}, },
}, },
@ -244,38 +250,44 @@ func TestWunderlistParsing(t *testing.T) {
}, },
}, },
{ {
Created: time1, List: models.List{
Title: "Lorem2", Created: time1,
Tasks: []*models.Task{ Title: "Lorem2",
},
Tasks: []*models.TaskWithComments{
{ {
Title: "Ipsum3", Task: models.Task{
Done: true, Title: "Ipsum3",
DoneAt: time1, Done: true,
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), DoneAt: time1,
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Description: "Lorem Ipsum dolor sit amet", Created: time1,
Attachments: []*models.TaskAttachment{ Description: "Lorem Ipsum dolor sit amet",
{ Attachments: []*models.TaskAttachment{
File: &files.File{
Name: "file2.md",
Mime: "text/plain",
Size: 12345,
Created: time3,
FileContent: exampleFile,
},
Created: time3,
},
},
},
{
Title: "Ipsum4",
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Created: time1,
Reminders: []time.Time{time3},
RelatedTasks: map[models.RelationKind][]*models.Task{
models.RelationKindSubtask: {
{ {
Title: "LoremSub3", File: &files.File{
Name: "file2.md",
Mime: "text/plain",
Size: 12345,
Created: time3,
FileContent: exampleFile,
},
Created: time3,
},
},
},
},
{
Task: models.Task{
Title: "Ipsum4",
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Created: time1,
Reminders: []time.Time{time3},
RelatedTasks: map[models.RelationKind][]*models.Task{
models.RelationKindSubtask: {
{
Title: "LoremSub3",
},
}, },
}, },
}, },
@ -283,52 +295,68 @@ func TestWunderlistParsing(t *testing.T) {
}, },
}, },
{ {
Created: time1, List: models.List{
Title: "Lorem3", Created: time1,
Tasks: []*models.Task{ Title: "Lorem3",
},
Tasks: []*models.TaskWithComments{
{ {
Title: "Ipsum5", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum5",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Created: time1,
},
}, },
{ {
Title: "Ipsum6", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum6",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Done: true, Created: time1,
DoneAt: time1, Done: true,
DoneAt: time1,
},
}, },
{ {
Title: "Ipsum7", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum7",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Done: true, Created: time1,
DoneAt: time1, Done: true,
DoneAt: time1,
},
}, },
{ {
Title: "Ipsum8", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum8",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Created: time1,
},
}, },
}, },
}, },
{ {
Created: time1, List: models.List{
Title: "Lorem4", Created: time1,
Tasks: []*models.Task{ Title: "Lorem4",
},
Tasks: []*models.TaskWithComments{
{ {
Title: "Ipsum9", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum9",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Done: true, Created: time1,
DoneAt: time1, Done: true,
DoneAt: time1,
},
}, },
{ {
Title: "Ipsum10", Task: models.Task{
DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), Title: "Ipsum10",
Created: time1, DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()),
Done: true, Created: time1,
DoneAt: time1, Done: true,
DoneAt: time1,
},
}, },
}, },
}, },
@ -338,10 +366,12 @@ func TestWunderlistParsing(t *testing.T) {
Namespace: models.Namespace{ Namespace: models.Namespace{
Title: "Migrated from wunderlist", Title: "Migrated from wunderlist",
}, },
Lists: []*models.List{ Lists: []*models.ListWithTasksAndBuckets{
{ {
Created: time4, List: models.List{
Title: "List without a namespace", Created: time4,
Title: "List without a namespace",
},
}, },
}, },
}, },