MCPcopy
hub / github.com/dnote/dnote / TestRemoveBook

Function TestRemoveBook

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

Source from the content-addressed store, hash-verified

423}
424
425func TestRemoveBook(t *testing.T) {
426 testCases := []struct {
427 yesFlag bool
428 }{
429 {
430 yesFlag: false,
431 },
432 {
433 yesFlag: true,
434 },
435 }
436
437 for _, tc := range testCases {
438 t.Run(fmt.Sprintf("--yes=%t", tc.yesFlag), func(t *testing.T) {
439 _, opts := setupTestEnv(t)
440
441 // Setup
442 db, dbPath := database.InitTestFileDB(t)
443 testutils.Setup2(t, db)
444
445 // Execute
446 if tc.yesFlag {
447 testutils.RunDnoteCmd(t, opts, binaryName, "--dbPath", dbPath, "remove", "-y", "js")
448 } else {
449 testutils.MustWaitDnoteCmd(t, opts, testutils.ConfirmRemoveBook, binaryName, "--dbPath", dbPath, "remove", "js")
450 }
451
452 // Test
453 var noteCount, bookCount, jsNoteCount, linuxNoteCount int
454 database.MustScan(t, "counting books", db.QueryRow("SELECT count(*) FROM books"), &bookCount)
455 database.MustScan(t, "counting notes", db.QueryRow("SELECT count(*) FROM notes"), &noteCount)
456 database.MustScan(t, "counting js notes", db.QueryRow("SELECT count(*) FROM notes WHERE book_uuid = ?", "js-book-uuid"), &jsNoteCount)
457 database.MustScan(t, "counting linux notes", db.QueryRow("SELECT count(*) FROM notes WHERE book_uuid = ?", "linux-book-uuid"), &linuxNoteCount)
458
459 assert.Equalf(t, bookCount, 2, "book count mismatch")
460 assert.Equalf(t, noteCount, 3, "note count mismatch")
461 assert.Equal(t, jsNoteCount, 2, "js book should have 2 notes")
462 assert.Equal(t, linuxNoteCount, 1, "linux book book should have 1 note")
463
464 var b1, b2 database.Book
465 var n1, n2, n3 database.Note
466 database.MustScan(t, "getting b1",
467 db.QueryRow("SELECT label, dirty, deleted, usn FROM books WHERE uuid = ?", "js-book-uuid"),
468 &b1.Label, &b1.Dirty, &b1.Deleted, &b1.USN)
469 database.MustScan(t, "getting b2",
470 db.QueryRow("SELECT label, dirty, deleted, usn FROM books WHERE uuid = ?", "linux-book-uuid"),
471 &b2.Label, &b2.Dirty, &b2.Deleted, &b2.USN)
472 database.MustScan(t, "getting n1",
473 db.QueryRow("SELECT uuid, body, added_on, dirty, deleted, usn FROM notes WHERE book_uuid = ? AND uuid = ?", "js-book-uuid", "f0d0fbb7-31ff-45ae-9f0f-4e429c0c797f"),
474 &n1.UUID, &n1.Body, &n1.AddedOn, &n1.Deleted, &n1.Dirty, &n1.USN)
475 database.MustScan(t, "getting n2",
476 db.QueryRow("SELECT uuid, body, added_on, dirty, deleted, usn FROM notes WHERE book_uuid = ? AND uuid = ?", "js-book-uuid", "43827b9a-c2b0-4c06-a290-97991c896653"),
477 &n2.UUID, &n2.Body, &n2.AddedOn, &n2.Deleted, &n2.Dirty, &n2.USN)
478 database.MustScan(t, "getting n3",
479 db.QueryRow("SELECT uuid, body, added_on, dirty, deleted, usn FROM notes WHERE book_uuid = ? AND uuid = ?", "linux-book-uuid", "3e065d55-6d47-42f2-a6bf-f5844130b2d2"),
480 &n3.UUID, &n3.Body, &n3.AddedOn, &n3.Deleted, &n3.Dirty, &n3.USN)
481
482 assert.NotEqual(t, b1.Label, "js", "b1 label mismatch")

Callers

nothing calls this directly

Calls 10

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

Tested by

no test coverage detected