MCPcopy
hub / github.com/dnote/dnote / TestStepSyncNote

Function TestStepSyncNote

pkg/cli/cmd/sync/sync_test.go:1060–1276  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1058}
1059
1060func TestStepSyncNote(t *testing.T) {
1061 t.Run("exists on server only", func(t *testing.T) {
1062 // set up
1063 db := database.InitTestMemoryDB(t)
1064
1065 b1UUID := testutils.MustGenerateUUID(t)
1066 database.MustExec(t, "inserting book", db, "INSERT INTO books (uuid, label) VALUES (?, ?)", b1UUID, "b1-label")
1067
1068 // execute
1069 tx, err := db.Begin()
1070 if err != nil {
1071 t.Fatal(errors.Wrap(err, "beginning a transaction").Error())
1072 }
1073
1074 n := client.SyncFragNote{
1075 UUID: "n1-uuid",
1076 BookUUID: b1UUID,
1077 USN: 128,
1078 AddedOn: 1541232118,
1079 EditedOn: 1541219321,
1080 Body: "n1-body",
1081 Deleted: false,
1082 }
1083
1084 if err := stepSyncNote(tx, n); err != nil {
1085 tx.Rollback()
1086 t.Fatal(errors.Wrap(err, "executing").Error())
1087 }
1088
1089 tx.Commit()
1090
1091 // test
1092 var noteCount, bookCount int
1093 database.MustScan(t, "counting notes", db.QueryRow("SELECT count(*) FROM notes"), &noteCount)
1094 database.MustScan(t, "counting books", db.QueryRow("SELECT count(*) FROM books"), &bookCount)
1095
1096 assert.Equalf(t, noteCount, 1, "note count mismatch")
1097 assert.Equalf(t, bookCount, 1, "book count mismatch")
1098
1099 var n1 database.Note
1100 database.MustScan(t, "getting n1",
1101 db.QueryRow("SELECT uuid, book_uuid, usn, added_on, edited_on, body, deleted, dirty FROM notes WHERE uuid = ?", n.UUID),
1102 &n1.UUID, &n1.BookUUID, &n1.USN, &n1.AddedOn, &n1.EditedOn, &n1.Body, &n1.Deleted, &n1.Dirty)
1103
1104 assert.Equal(t, n1.UUID, n.UUID, "n1 UUID mismatch")
1105 assert.Equal(t, n1.BookUUID, n.BookUUID, "n1 BookUUID mismatch")
1106 assert.Equal(t, n1.USN, n.USN, "n1 USN mismatch")
1107 assert.Equal(t, n1.AddedOn, n.AddedOn, "n1 AddedOn mismatch")
1108 assert.Equal(t, n1.EditedOn, n.EditedOn, "n1 EditedOn mismatch")
1109 assert.Equal(t, n1.Body, n.Body, "n1 Body mismatch")
1110 assert.Equal(t, n1.Deleted, n.Deleted, "n1 Deleted mismatch")
1111 assert.Equal(t, n1.Dirty, false, "n1 Dirty mismatch")
1112 })
1113
1114 t.Run("exists on server and client", func(t *testing.T) {
1115 b1UUID := testutils.MustGenerateUUID(t)
1116 b2UUID := testutils.MustGenerateUUID(t)
1117 conflictBookUUID := testutils.MustGenerateUUID(t)

Callers

nothing calls this directly

Calls 12

InitTestMemoryDBFunction · 0.92
MustGenerateUUIDFunction · 0.92
MustExecFunction · 0.92
MustScanFunction · 0.92
EqualfFunction · 0.92
EqualFunction · 0.92
stepSyncNoteFunction · 0.85
BeginMethod · 0.65
RollbackMethod · 0.65
CommitMethod · 0.65
QueryRowMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected