(t *testing.T)
| 1058 | } |
| 1059 | |
| 1060 | func 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"), ¬eCount) |
| 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) |
nothing calls this directly
no test coverage detected