MCPcopy
hub / github.com/dnote/dnote / TestAddNote

Function TestAddNote

pkg/cli/main_test.go:110–181  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

108}
109
110func 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"), &noteCount)
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), &note.UUID, &note.Body, &note.AddedOn, &note.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"), &noteCount)
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

Callers

nothing calls this directly

Calls 11

RunDnoteCmdFunction · 0.92
MustWaitDnoteCmdFunction · 0.92
OpenTestDBFunction · 0.92
MustScanFunction · 0.92
EqualfFunction · 0.92
EqualFunction · 0.92
NotEqualFunction · 0.92
InitTestFileDBFunction · 0.92
Setup3Function · 0.92
setupTestEnvFunction · 0.70
QueryRowMethod · 0.65

Tested by

no test coverage detected