(t *testing.T)
| 108 | } |
| 109 | |
| 110 | func TestAddNote(t *testing.T) { |
| 111 | t.Run("new book", func(t *testing.T) { |
| 112 | testDir, opts := setupTestEnv(t) |
| 113 | |
| 114 | // Set up and execute |
| 115 | testutils.RunDnoteCmd(t, opts, binaryName, "add", "js", "-c", "foo") |
| 116 | testutils.MustWaitDnoteCmd(t, opts, testutils.UserContent, binaryName, "add", "js") |
| 117 | |
| 118 | db := database.OpenTestDB(t, testDir) |
| 119 | |
| 120 | // Test |
| 121 | var noteCount, bookCount int |
| 122 | database.MustScan(t, "counting books", db.QueryRow("SELECT count(*) FROM books"), &bookCount) |
| 123 | database.MustScan(t, "counting notes", db.QueryRow("SELECT count(*) FROM notes"), ¬eCount) |
| 124 | |
| 125 | assert.Equalf(t, bookCount, 1, "book count mismatch") |
| 126 | assert.Equalf(t, noteCount, 2, "note count mismatch") |
| 127 | |
| 128 | var book database.Book |
| 129 | database.MustScan(t, "getting book", db.QueryRow("SELECT uuid, dirty FROM books where label = ?", "js"), &book.UUID, &book.Dirty) |
| 130 | var note database.Note |
| 131 | database.MustScan(t, "getting note", |
| 132 | db.QueryRow("SELECT uuid, body, added_on, dirty FROM notes where book_uuid = ?", book.UUID), ¬e.UUID, ¬e.Body, ¬e.AddedOn, ¬e.Dirty) |
| 133 | |
| 134 | assert.Equal(t, book.Dirty, true, "Book dirty mismatch") |
| 135 | |
| 136 | assert.NotEqual(t, note.UUID, "", "Note should have UUID") |
| 137 | assert.Equal(t, note.Body, "foo", "Note body mismatch") |
| 138 | assert.Equal(t, note.Dirty, true, "Note dirty mismatch") |
| 139 | assert.NotEqual(t, note.AddedOn, int64(0), "Note added_on mismatch") |
| 140 | }) |
| 141 | |
| 142 | t.Run("existing book", func(t *testing.T) { |
| 143 | _, opts := setupTestEnv(t) |
| 144 | |
| 145 | // Setup |
| 146 | db, dbPath := database.InitTestFileDB(t) |
| 147 | testutils.Setup3(t, db) |
| 148 | |
| 149 | // Execute |
| 150 | testutils.RunDnoteCmd(t, opts, binaryName, "--dbPath", dbPath, "add", "js", "-c", "foo") |
| 151 | |
| 152 | // Test |
| 153 | |
| 154 | var noteCount, bookCount int |
| 155 | database.MustScan(t, "counting books", db.QueryRow("SELECT count(*) FROM books"), &bookCount) |
| 156 | database.MustScan(t, "counting notes", db.QueryRow("SELECT count(*) FROM notes"), ¬eCount) |
| 157 | |
| 158 | assert.Equalf(t, bookCount, 1, "book count mismatch") |
| 159 | assert.Equalf(t, noteCount, 2, "note count mismatch") |
| 160 | |
| 161 | var n1, n2 database.Note |
| 162 | database.MustScan(t, "getting n1", |
| 163 | db.QueryRow("SELECT uuid, body, added_on, dirty FROM notes WHERE book_uuid = ? AND uuid = ?", "js-book-uuid", "43827b9a-c2b0-4c06-a290-97991c896653"), &n1.UUID, &n1.Body, &n1.AddedOn, &n1.Dirty) |
| 164 | database.MustScan(t, "getting n2", |
| 165 | db.QueryRow("SELECT uuid, body, added_on, dirty FROM notes WHERE book_uuid = ? AND body = ?", "js-book-uuid", "foo"), &n2.UUID, &n2.Body, &n2.AddedOn, &n2.Dirty) |
| 166 | |
| 167 | var book database.Book |
nothing calls this directly
no test coverage detected