(t *testing.T)
| 576 | } |
| 577 | |
| 578 | func TestFullSyncNote(t *testing.T) { |
| 579 | t.Run("exists on server only", func(t *testing.T) { |
| 580 | // set up |
| 581 | db := database.InitTestMemoryDB(t) |
| 582 | |
| 583 | b1UUID := testutils.MustGenerateUUID(t) |
| 584 | database.MustExec(t, "inserting book", db, "INSERT INTO books (uuid, label) VALUES (?, ?)", b1UUID, "b1-label") |
| 585 | |
| 586 | // execute |
| 587 | tx, err := db.Begin() |
| 588 | if err != nil { |
| 589 | t.Fatal(errors.Wrap(err, "beginning a transaction").Error()) |
| 590 | } |
| 591 | |
| 592 | n := client.SyncFragNote{ |
| 593 | UUID: "n1-uuid", |
| 594 | BookUUID: b1UUID, |
| 595 | USN: 128, |
| 596 | AddedOn: 1541232118, |
| 597 | EditedOn: 1541219321, |
| 598 | Body: "n1-body", |
| 599 | Deleted: false, |
| 600 | } |
| 601 | |
| 602 | if err := fullSyncNote(tx, n); err != nil { |
| 603 | tx.Rollback() |
| 604 | t.Fatal(errors.Wrap(err, "executing").Error()) |
| 605 | } |
| 606 | |
| 607 | tx.Commit() |
| 608 | |
| 609 | // test |
| 610 | var noteCount, bookCount int |
| 611 | database.MustScan(t, "counting notes", db.QueryRow("SELECT count(*) FROM notes"), ¬eCount) |
| 612 | database.MustScan(t, "counting books", db.QueryRow("SELECT count(*) FROM books"), &bookCount) |
| 613 | |
| 614 | assert.Equalf(t, noteCount, 1, "note count mismatch") |
| 615 | assert.Equalf(t, bookCount, 1, "book count mismatch") |
| 616 | |
| 617 | var n1 database.Note |
| 618 | database.MustScan(t, "getting n1", |
| 619 | db.QueryRow("SELECT uuid, book_uuid, usn, added_on, edited_on, body, deleted, dirty FROM notes WHERE uuid = ?", n.UUID), |
| 620 | &n1.UUID, &n1.BookUUID, &n1.USN, &n1.AddedOn, &n1.EditedOn, &n1.Body, &n1.Deleted, &n1.Dirty) |
| 621 | |
| 622 | assert.Equal(t, n1.UUID, n.UUID, "n1 UUID mismatch") |
| 623 | assert.Equal(t, n1.BookUUID, n.BookUUID, "n1 BookUUID mismatch") |
| 624 | assert.Equal(t, n1.USN, n.USN, "n1 USN mismatch") |
| 625 | assert.Equal(t, n1.AddedOn, n.AddedOn, "n1 AddedOn mismatch") |
| 626 | assert.Equal(t, n1.EditedOn, n.EditedOn, "n1 EditedOn mismatch") |
| 627 | assert.Equal(t, n1.Body, n.Body, "n1 Body mismatch") |
| 628 | assert.Equal(t, n1.Deleted, n.Deleted, "n1 Deleted mismatch") |
| 629 | assert.Equal(t, n1.Dirty, false, "n1 Dirty mismatch") |
| 630 | }) |
| 631 | |
| 632 | t.Run("exists on server and client", func(t *testing.T) { |
| 633 | b1UUID := testutils.MustGenerateUUID(t) |
| 634 | b2UUID := testutils.MustGenerateUUID(t) |
| 635 | conflictBookUUID := testutils.MustGenerateUUID(t) |
nothing calls this directly
no test coverage detected