From 4b389ae02cdcc654ae9dfa02fc992f6adb520af3 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 4 Sep 2021 20:31:02 +0200 Subject: [PATCH] Fix tests --- .../migration/create_from_structure_test.go | 96 +++-- .../microsoft-todo/microsoft_todo_test.go | 88 +++-- pkg/modules/migration/todoist/todoist_test.go | 372 ++++++++++-------- pkg/modules/migration/trello/trello_test.go | 164 ++++---- .../migration/wunderlist/wunderlist_test.go | 220 ++++++----- 5 files changed, 541 insertions(+), 399 deletions(-) diff --git a/pkg/modules/migration/create_from_structure_test.go b/pkg/modules/migration/create_from_structure_test.go index bdd4d6aa9..1b3eb5d40 100644 --- a/pkg/modules/migration/create_from_structure_test.go +++ b/pkg/modules/migration/create_from_structure_test.go @@ -32,79 +32,95 @@ func TestInsertFromStructure(t *testing.T) { } t.Run("normal", func(t *testing.T) { db.LoadAndAssertFixtures(t) - testStructure := []*models.NamespaceWithLists{ + testStructure := []*models.NamespaceWithListsAndTasks{ { Namespace: models.Namespace{ Title: "Test1", Description: "Lorem Ipsum", }, - Lists: []*models.List{ + Lists: []*models.ListWithTasksAndBuckets{ { - Title: "Testlist1", - Description: "Something", + List: models.List{ + Title: "Testlist1", + Description: "Something", + }, Buckets: []*models.Bucket{ { ID: 1234, Title: "Test Bucket", }, }, - Tasks: []*models.Task{ + Tasks: []*models.TaskWithComments{ { - Title: "Task1", - Description: "Lorem", + Task: models.Task{ + Title: "Task1", + Description: "Lorem", + }, }, { - Title: "Task with related tasks", - RelatedTasks: map[models.RelationKind][]*models.Task{ - models.RelationKindSubtask: { + Task: models.Task{ + Title: "Task with related tasks", + 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", - Description: "As subtask", + File: &files.File{ + Name: "testfile", + Size: 4, + FileContent: []byte{1, 2, 3, 4}, + }, }, }, }, }, { - Title: "Task with attachments", - Attachments: []*models.TaskAttachment{ - { - File: &files.File{ - Name: "testfile", - Size: 4, - FileContent: []byte{1, 2, 3, 4}, + Task: models.Task{ + Title: "Task with labels", + Labels: []*models.Label{ + { + Title: "Label1", + HexColor: "ff00ff", + }, + { + Title: "Label2", + HexColor: "ff00ff", }, }, }, }, { - Title: "Task with labels", - Labels: []*models.Label{ - { - Title: "Label1", - HexColor: "ff00ff", - }, - { - Title: "Label2", - HexColor: "ff00ff", + Task: models.Task{ + Title: "Task with same label", + Labels: []*models.Label{ + { + Title: "Label1", + HexColor: "ff00ff", + }, }, }, }, { - Title: "Task with same label", - Labels: []*models.Label{ - { - Title: "Label1", - HexColor: "ff00ff", - }, + Task: models.Task{ + Title: "Task in a bucket", + BucketID: 1234, }, }, { - Title: "Task in a bucket", - BucketID: 1234, - }, - { - Title: "Task in a nonexisting bucket", - BucketID: 1111, + Task: models.Task{ + Title: "Task in a nonexisting bucket", + BucketID: 1111, + }, }, }, }, diff --git a/pkg/modules/migration/microsoft-todo/microsoft_todo_test.go b/pkg/modules/migration/microsoft-todo/microsoft_todo_test.go index a0d229bd6..a99511567 100644 --- a/pkg/modules/migration/microsoft-todo/microsoft_todo_test.go +++ b/pkg/modules/migration/microsoft-todo/microsoft_todo_test.go @@ -102,57 +102,79 @@ func TestConverting(t *testing.T) { }, } - expectedHierachie := []*models.NamespaceWithLists{ + expectedHierachie := []*models.NamespaceWithListsAndTasks{ { Namespace: models.Namespace{ Title: "Migrated from Microsoft Todo", }, - Lists: []*models.List{ + Lists: []*models.ListWithTasksAndBuckets{ { - Title: "List 1", - Tasks: []*models.Task{ + List: models.List{ + Title: "List 1", + }, + Tasks: []*models.TaskWithComments{ { - 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, + Task: models.Task{ + Title: "Task 1", + Description: "This is a description", }, }, { - Title: "Task 6", - DueDate: testtimeTime, + Task: models.Task{ + Title: "Task 2", + Done: true, + DoneAt: testtimeTime, + }, }, { - Title: "Task 7", - DueDate: testtimeTime, - RepeatAfter: 60 * 60 * 24 * 7, // The amount of seconds in a week + Task: models.Task{ + Title: "Task 3", + 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", - Tasks: []*models.Task{ + List: models.List{ + Title: "List 2", + }, + Tasks: []*models.TaskWithComments{ { - Title: "Task 1", + Task: models.Task{ + Title: "Task 1", + }, }, { - Title: "Task 2", + Task: models.Task{ + Title: "Task 2", + }, }, }, }, diff --git a/pkg/modules/migration/todoist/todoist_test.go b/pkg/modules/migration/todoist/todoist_test.go index b0efae13e..24fa48b00 100644 --- a/pkg/modules/migration/todoist/todoist_test.go +++ b/pkg/modules/migration/todoist/todoist_test.go @@ -375,210 +375,258 @@ func TestConvertTodoistToVikunja(t *testing.T) { }, } - expectedHierachie := []*models.NamespaceWithLists{ + expectedHierachie := []*models.NamespaceWithListsAndTasks{ { Namespace: models.Namespace{ Title: "Migrated from todoist", }, - Lists: []*models.List{ + Lists: []*models.ListWithTasksAndBuckets{ { - Title: "Project1", - Description: "Lorem Ipsum dolor sit amet\nLorem Ipsum dolor sit amet 2\nLorem Ipsum dolor sit amet 3", - HexColor: todoistColors[30], + List: models.List{ + Title: "Project1", + Description: "Lorem Ipsum dolor sit amet\nLorem Ipsum dolor sit amet 2\nLorem Ipsum dolor sit amet 3", + HexColor: todoistColors[30], + }, Buckets: []*models.Bucket{ { ID: 1234, Title: "Some Bucket", }, }, - Tasks: []*models.Task{ + Tasks: []*models.TaskWithComments{ { - Title: "Task400000000", - Description: "Lorem Ipsum dolor sit amet", - Done: false, - Created: time1, - Reminders: []time.Time{ - 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()), + Task: models.Task{ + Title: "Task400000000", + Description: "Lorem Ipsum dolor sit amet", + Done: false, + Created: time1, + Reminders: []time.Time{ + 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", - Description: "Lorem Ipsum dolor sit amet", - 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()), + Task: models.Task{ + Title: "Task400000001", + Description: "Lorem Ipsum dolor sit amet", + Done: false, + Created: time1, }, }, { - Title: "Task400000003", - Description: "Lorem Ipsum dolor sit amet", - Done: true, - DueDate: dueTime, - Created: time1, - DoneAt: time3, - Labels: vikunjaLabels, - Reminders: []time.Time{ - time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()), + Task: models.Task{ + 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: "Task400000004", - Done: false, - Created: time1, - Labels: vikunjaLabels, - }, - { - 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: "Task400000003", + Description: "Lorem Ipsum dolor sit amet", + Done: true, + DueDate: dueTime, + Created: time1, + DoneAt: time3, + Labels: vikunjaLabels, + Reminders: []time.Time{ + time.Date(2020, time.June, 15, 7, 0, 0, 0, time.UTC).In(config.GetTimeZone()), + }, }, }, { - Title: "Task400000006", - Done: true, - DueDate: dueTime, - Created: time1, - DoneAt: time3, - RelatedTasks: map[models.RelationKind][]*models.Task{ - models.RelationKindSubtask: { + Task: models.Task{ + Title: "Task400000004", + Done: false, + Created: time1, + Labels: vikunjaLabels, + }, + }, + { + 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", - Done: false, - Priority: 2, - Created: time1, - DoneAt: nilTime, + File: &files.File{ + Name: "file.md", + Mime: "text/plain", + Size: 12345, + Created: time1, + FileContent: exampleFile, + }, + Created: time1, }, }, }, }, { - Title: "Task400000106", - Done: true, - DueDate: dueTimeWithTime, - Created: time1, - DoneAt: time3, - Labels: vikunjaLabels, + Task: models.Task{ + Title: "Task400000102", + Done: false, + DueDate: dueTime, + Created: time1, + Labels: vikunjaLabels, + }, }, { - Title: "Task400000107", - Done: true, - Created: time1, - DoneAt: time3, + Task: models.Task{ + Title: "Task400000103", + Done: false, + Created: time1, + Labels: vikunjaLabels, + }, }, { - Title: "Task400000108", - Done: true, - Created: time1, - DoneAt: time3, + Task: models.Task{ + Title: "Task400000104", + Done: false, + Created: time1, + Labels: vikunjaLabels, + }, }, { - Title: "Task400000109", - Done: true, - Created: time1, - DoneAt: time3, - BucketID: 1234, + Task: models.Task{ + Title: "Task400000105", + Done: false, + DueDate: dueTime, + Created: time1, + Labels: vikunjaLabels, + }, }, }, }, { - Title: "Project2", - Description: "Lorem Ipsum dolor sit amet 4\nLorem Ipsum dolor sit amet 5", - HexColor: todoistColors[37], - Tasks: []*models.Task{ - { - 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, - }, + List: models.List{ + Title: "Project3 - Archived", + HexColor: todoistColors[37], + IsArchived: true, }, - }, - { - Title: "Project3 - Archived", - HexColor: todoistColors[37], - IsArchived: true, - Tasks: []*models.Task{ + Tasks: []*models.TaskWithComments{ { - Title: "Task400000111", - Done: true, - Created: time1, - DoneAt: time3, + Task: models.Task{ + Title: "Task400000111", + Done: true, + Created: time1, + DoneAt: time3, + }, }, }, }, diff --git a/pkg/modules/migration/trello/trello_test.go b/pkg/modules/migration/trello/trello_test.go index 99e2170d1..e007e20d7 100644 --- a/pkg/modules/migration/trello/trello_test.go +++ b/pkg/modules/migration/trello/trello_test.go @@ -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 - expectedHierachie := []*models.NamespaceWithLists{ + expectedHierachie := []*models.NamespaceWithListsAndTasks{ { Namespace: models.Namespace{ Title: "Imported from Trello", }, - Lists: []*models.List{ + Lists: []*models.ListWithTasksAndBuckets{ { - Title: "TestBoard", - Description: "This is a description", - BackgroundInformation: bytes.NewBuffer(exampleFile), + List: models.List{ + Title: "TestBoard", + Description: "This is a description", + BackgroundInformation: bytes.NewBuffer(exampleFile), + }, Buckets: []*models.Bucket{ { ID: 1, @@ -207,37 +209,40 @@ func TestConvertTrelloToVikunja(t *testing.T) { Title: "Test List 2", }, }, - Tasks: []*models.Task{ + Tasks: []*models.TaskWithComments{ { - Title: "Test Card 1", - Description: "Card Description", - BucketID: 1, - KanbanPosition: 123, - DueDate: time1, - Labels: []*models.Label{ - { - Title: "Label 1", - HexColor: trelloColorMap["green"], + Task: models.Task{ + Title: "Test Card 1", + Description: "Card Description", + BucketID: 1, + KanbanPosition: 123, + DueDate: time1, + Labels: []*models.Label{ + { + Title: "Label 1", + HexColor: trelloColorMap["green"], + }, + { + Title: "Label 2", + HexColor: trelloColorMap["orange"], + }, }, - { - Title: "Label 2", - HexColor: trelloColorMap["orange"], - }, - }, - Attachments: []*models.TaskAttachment{ - { - File: &files.File{ - Name: "Testimage.jpg", - Mime: "image/jpg", - Size: uint64(len(exampleFile)), - FileContent: exampleFile, + Attachments: []*models.TaskAttachment{ + { + File: &files.File{ + Name: "Testimage.jpg", + Mime: "image/jpg", + Size: uint64(len(exampleFile)), + FileContent: exampleFile, + }, }, }, }, }, { - Title: "Test Card 2", - Description: ` + Task: models.Task{ + Title: "Test Card 2", + Description: ` ## Checklist 1 @@ -248,84 +253,105 @@ func TestConvertTrelloToVikunja(t *testing.T) { * [ ] Pending Task * [ ] Another Pending Task`, - BucketID: 1, - KanbanPosition: 124, + BucketID: 1, + KanbanPosition: 124, + }, }, { - Title: "Test Card 3", - BucketID: 1, - KanbanPosition: 126, + Task: models.Task{ + Title: "Test Card 3", + BucketID: 1, + KanbanPosition: 126, + }, }, { - Title: "Test Card 4", - BucketID: 1, - KanbanPosition: 127, - Labels: []*models.Label{ - { - Title: "Label 2", - HexColor: trelloColorMap["orange"], + Task: models.Task{ + Title: "Test Card 4", + BucketID: 1, + KanbanPosition: 127, + Labels: []*models.Label{ + { + Title: "Label 2", + HexColor: trelloColorMap["orange"], + }, }, }, }, { - Title: "Test Card 5", - BucketID: 2, - KanbanPosition: 111, - Labels: []*models.Label{ - { - Title: "Label 3", - HexColor: trelloColorMap["blue"], + Task: models.Task{ + Title: "Test Card 5", + BucketID: 2, + KanbanPosition: 111, + Labels: []*models.Label{ + { + Title: "Label 3", + HexColor: trelloColorMap["blue"], + }, }, }, }, { - Title: "Test Card 6", - BucketID: 2, - KanbanPosition: 222, - DueDate: time1, + Task: models.Task{ + Title: "Test Card 6", + BucketID: 2, + KanbanPosition: 222, + DueDate: time1, + }, }, { - Title: "Test Card 7", - BucketID: 2, - KanbanPosition: 333, + Task: models.Task{ + Title: "Test Card 7", + BucketID: 2, + KanbanPosition: 333, + }, }, { - Title: "Test Card 8", - BucketID: 2, - KanbanPosition: 444, + Task: models.Task{ + Title: "Test Card 8", + BucketID: 2, + KanbanPosition: 444, + }, }, }, }, { - Title: "TestBoard 2", + List: models.List{ + Title: "TestBoard 2", + }, Buckets: []*models.Bucket{ { ID: 3, Title: "Test List 4", }, }, - Tasks: []*models.Task{ + Tasks: []*models.TaskWithComments{ { - Title: "Test Card 634", - BucketID: 3, - KanbanPosition: 123, + Task: models.Task{ + Title: "Test Card 634", + BucketID: 3, + KanbanPosition: 123, + }, }, }, }, { - Title: "TestBoard Archived", - IsArchived: true, + List: models.List{ + Title: "TestBoard Archived", + IsArchived: true, + }, Buckets: []*models.Bucket{ { ID: 4, Title: "Test List 5", }, }, - Tasks: []*models.Task{ + Tasks: []*models.TaskWithComments{ { - Title: "Test Card 63423", - BucketID: 4, - KanbanPosition: 123, + Task: models.Task{ + Title: "Test Card 63423", + BucketID: 4, + KanbanPosition: 123, + }, }, }, }, diff --git a/pkg/modules/migration/wunderlist/wunderlist_test.go b/pkg/modules/migration/wunderlist/wunderlist_test.go index 8f6ef2243..3385ac794 100644 --- a/pkg/modules/migration/wunderlist/wunderlist_test.go +++ b/pkg/modules/migration/wunderlist/wunderlist_test.go @@ -194,49 +194,55 @@ func TestWunderlistParsing(t *testing.T) { }, } - expectedHierachie := []*models.NamespaceWithLists{ + expectedHierachie := []*models.NamespaceWithListsAndTasks{ { Namespace: models.Namespace{ Title: "Lorem Ipsum", Created: time1, Updated: time2, }, - Lists: []*models.List{ + Lists: []*models.ListWithTasksAndBuckets{ { - Created: time1, - Title: "Lorem1", - Tasks: []*models.Task{ + List: models.List{ + Created: time1, + Title: "Lorem1", + }, + Tasks: []*models.TaskWithComments{ { - Title: "Ipsum1", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - Description: "Lorem Ipsum dolor sit amet", - Attachments: []*models.TaskAttachment{ - { - File: &files.File{ - Name: "file.md", - Mime: "text/plain", - Size: 12345, - Created: time2, - FileContent: exampleFile, + Task: models.Task{ + Title: "Ipsum1", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Description: "Lorem Ipsum dolor sit amet", + Attachments: []*models.TaskAttachment{ + { + File: &files.File{ + Name: "file.md", + Mime: "text/plain", + Size: 12345, + Created: time2, + FileContent: exampleFile, + }, + Created: time2, }, - Created: time2, }, + Reminders: []time.Time{time4}, }, - Reminders: []time.Time{time4}, }, { - Title: "Ipsum2", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - Description: "Lorem Ipsum dolor sit amet", - RelatedTasks: map[models.RelationKind][]*models.Task{ - models.RelationKindSubtask: { - { - Title: "LoremSub1", - }, - { - Title: "LoremSub2", + Task: models.Task{ + Title: "Ipsum2", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Description: "Lorem Ipsum dolor sit amet", + RelatedTasks: map[models.RelationKind][]*models.Task{ + models.RelationKindSubtask: { + { + Title: "LoremSub1", + }, + { + Title: "LoremSub2", + }, }, }, }, @@ -244,38 +250,44 @@ func TestWunderlistParsing(t *testing.T) { }, }, { - Created: time1, - Title: "Lorem2", - Tasks: []*models.Task{ + List: models.List{ + Created: time1, + Title: "Lorem2", + }, + Tasks: []*models.TaskWithComments{ { - Title: "Ipsum3", - Done: true, - DoneAt: time1, - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - 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: { + Task: models.Task{ + Title: "Ipsum3", + Done: true, + DoneAt: time1, + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Description: "Lorem Ipsum dolor sit amet", + Attachments: []*models.TaskAttachment{ { - 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, - Title: "Lorem3", - Tasks: []*models.Task{ + List: models.List{ + Created: time1, + Title: "Lorem3", + }, + Tasks: []*models.TaskWithComments{ { - Title: "Ipsum5", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, + Task: models.Task{ + Title: "Ipsum5", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + }, }, { - Title: "Ipsum6", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - Done: true, - DoneAt: time1, + Task: models.Task{ + Title: "Ipsum6", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Done: true, + DoneAt: time1, + }, }, { - Title: "Ipsum7", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - Done: true, - DoneAt: time1, + Task: models.Task{ + Title: "Ipsum7", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Done: true, + DoneAt: time1, + }, }, { - Title: "Ipsum8", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, + Task: models.Task{ + Title: "Ipsum8", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + }, }, }, }, { - Created: time1, - Title: "Lorem4", - Tasks: []*models.Task{ + List: models.List{ + Created: time1, + Title: "Lorem4", + }, + Tasks: []*models.TaskWithComments{ { - Title: "Ipsum9", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - Done: true, - DoneAt: time1, + Task: models.Task{ + Title: "Ipsum9", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Done: true, + DoneAt: time1, + }, }, { - Title: "Ipsum10", - DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), - Created: time1, - Done: true, - DoneAt: time1, + Task: models.Task{ + Title: "Ipsum10", + DueDate: time.Unix(1378339200, 0).In(config.GetTimeZone()), + Created: time1, + Done: true, + DoneAt: time1, + }, }, }, }, @@ -338,10 +366,12 @@ func TestWunderlistParsing(t *testing.T) { Namespace: models.Namespace{ Title: "Migrated from wunderlist", }, - Lists: []*models.List{ + Lists: []*models.ListWithTasksAndBuckets{ { - Created: time4, - Title: "List without a namespace", + List: models.List{ + Created: time4, + Title: "List without a namespace", + }, }, }, },