MCPcopy
hub / github.com/dnote/dnote / TestRemoveNote

Function TestRemoveNote

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

Source from the content-addressed store, hash-verified

335}
336
337func TestRemoveNote(t *testing.T) {
338 testCases := []struct {
339 yesFlag bool
340 }{
341 {
342 yesFlag: false,
343 },
344 {
345 yesFlag: true,
346 },
347 }
348
349 for _, tc := range testCases {
350 t.Run(fmt.Sprintf("--yes=%t", tc.yesFlag), func(t *testing.T) {
351 _, opts := setupTestEnv(t)
352
353 // Setup
354 db, dbPath := database.InitTestFileDB(t)
355 testutils.Setup2(t, db)
356
357 // Execute
358 if tc.yesFlag {
359 testutils.RunDnoteCmd(t, opts, binaryName, "--dbPath", dbPath, "remove", "-y", "1")
360 } else {
361 testutils.MustWaitDnoteCmd(t, opts, testutils.ConfirmRemoveNote, binaryName, "--dbPath", dbPath, "remove", "1")
362 }
363
364 // Test
365 var noteCount, bookCount, jsNoteCount, linuxNoteCount int
366 database.MustScan(t, "counting books", db.QueryRow("SELECT count(*) FROM books"), &bookCount)
367 database.MustScan(t, "counting notes", db.QueryRow("SELECT count(*) FROM notes"), &noteCount)
368 database.MustScan(t, "counting js notes", db.QueryRow("SELECT count(*) FROM notes WHERE book_uuid = ?", "js-book-uuid"), &jsNoteCount)
369 database.MustScan(t, "counting linux notes", db.QueryRow("SELECT count(*) FROM notes WHERE book_uuid = ?", "linux-book-uuid"), &linuxNoteCount)
370
371 assert.Equalf(t, bookCount, 2, "book count mismatch")
372 assert.Equalf(t, noteCount, 3, "note count mismatch")
373 assert.Equal(t, jsNoteCount, 2, "js book should have 2 notes")
374 assert.Equal(t, linuxNoteCount, 1, "linux book book should have 1 note")
375
376 var b1, b2 database.Book
377 var n1, n2, n3 database.Note
378 database.MustScan(t, "getting b1",
379 db.QueryRow("SELECT label, deleted, usn FROM books WHERE uuid = ?", "js-book-uuid"),
380 &b1.Label, &b1.Deleted, &b1.USN)
381 database.MustScan(t, "getting b2",
382 db.QueryRow("SELECT label, deleted, usn FROM books WHERE uuid = ?", "linux-book-uuid"),
383 &b2.Label, &b2.Deleted, &b2.USN)
384 database.MustScan(t, "getting n1",
385 db.QueryRow("SELECT uuid, body, added_on, deleted, dirty, usn FROM notes WHERE book_uuid = ? AND uuid = ?", "js-book-uuid", "f0d0fbb7-31ff-45ae-9f0f-4e429c0c797f"),
386 &n1.UUID, &n1.Body, &n1.AddedOn, &n1.Deleted, &n1.Dirty, &n1.USN)
387 database.MustScan(t, "getting n2",
388 db.QueryRow("SELECT uuid, body, added_on, deleted, dirty, usn FROM notes WHERE book_uuid = ? AND uuid = ?", "js-book-uuid", "43827b9a-c2b0-4c06-a290-97991c896653"),
389 &n2.UUID, &n2.Body, &n2.AddedOn, &n2.Deleted, &n2.Dirty, &n2.USN)
390 database.MustScan(t, "getting n3",
391 db.QueryRow("SELECT uuid, body, added_on, deleted, dirty, usn FROM notes WHERE book_uuid = ? AND uuid = ?", "linux-book-uuid", "3e065d55-6d47-42f2-a6bf-f5844130b2d2"),
392 &n3.UUID, &n3.Body, &n3.AddedOn, &n3.Deleted, &n3.Dirty, &n3.USN)
393
394 assert.Equal(t, b1.Label, "js", "b1 label mismatch")

Callers

nothing calls this directly

Calls 9

InitTestFileDBFunction · 0.92
Setup2Function · 0.92
RunDnoteCmdFunction · 0.92
MustWaitDnoteCmdFunction · 0.92
MustScanFunction · 0.92
EqualfFunction · 0.92
EqualFunction · 0.92
setupTestEnvFunction · 0.70
QueryRowMethod · 0.65

Tested by

no test coverage detected