(t *testing.T)
| 768 | } |
| 769 | |
| 770 | func TestLocalMigration8(t *testing.T) { |
| 771 | // set up |
| 772 | db := database.InitTestMemoryDBRaw(t, "./fixtures/local-8-pre-schema.sql") |
| 773 | ctx := context.InitTestCtxWithDB(t, db) |
| 774 | |
| 775 | b1UUID := testutils.MustGenerateUUID(t) |
| 776 | database.MustExec(t, "inserting book 1", db, "INSERT INTO books (uuid, label) VALUES (?, ?)", b1UUID, "b1") |
| 777 | |
| 778 | n1UUID := testutils.MustGenerateUUID(t) |
| 779 | database.MustExec(t, "inserting n1", db, `INSERT INTO notes |
| 780 | (id, uuid, book_uuid, content, added_on, edited_on, public, dirty, usn, deleted) VALUES |
| 781 | (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, 1, n1UUID, b1UUID, "n1 Body", 1, 2, true, true, 20, false) |
| 782 | n2UUID := testutils.MustGenerateUUID(t) |
| 783 | database.MustExec(t, "inserting n2", db, `INSERT INTO notes |
| 784 | (id, uuid, book_uuid, content, added_on, edited_on, public, dirty, usn, deleted) VALUES |
| 785 | (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, 2, n2UUID, b1UUID, "", 3, 4, false, true, 21, true) |
| 786 | |
| 787 | // Execute |
| 788 | tx, err := db.Begin() |
| 789 | if err != nil { |
| 790 | t.Fatal(errors.Wrap(err, "beginning a transaction")) |
| 791 | } |
| 792 | |
| 793 | err = lm8.run(ctx, tx) |
| 794 | if err != nil { |
| 795 | tx.Rollback() |
| 796 | t.Fatal(errors.Wrap(err, "failed to run")) |
| 797 | } |
| 798 | |
| 799 | tx.Commit() |
| 800 | |
| 801 | // Test |
| 802 | var n1BookUUID, n1Body string |
| 803 | var n1AddedOn, n1EditedOn int64 |
| 804 | var n1USN int |
| 805 | var n1Public, n1Dirty, n1Deleted bool |
| 806 | database.MustScan(t, "scanning n1", db.QueryRow("SELECT book_uuid, body, added_on, edited_on, usn, public, dirty, deleted FROM notes WHERE uuid = ?", n1UUID), &n1BookUUID, &n1Body, &n1AddedOn, &n1EditedOn, &n1USN, &n1Public, &n1Dirty, &n1Deleted) |
| 807 | |
| 808 | var n2BookUUID, n2Body string |
| 809 | var n2AddedOn, n2EditedOn int64 |
| 810 | var n2USN int |
| 811 | var n2Public, n2Dirty, n2Deleted bool |
| 812 | database.MustScan(t, "scanning n2", db.QueryRow("SELECT book_uuid, body, added_on, edited_on, usn, public, dirty, deleted FROM notes WHERE uuid = ?", n2UUID), &n2BookUUID, &n2Body, &n2AddedOn, &n2EditedOn, &n2USN, &n2Public, &n2Dirty, &n2Deleted) |
| 813 | |
| 814 | assert.Equal(t, n1BookUUID, b1UUID, "n1 BookUUID mismatch") |
| 815 | assert.Equal(t, n1Body, "n1 Body", "n1 Body mismatch") |
| 816 | assert.Equal(t, n1AddedOn, int64(1), "n1 AddedOn mismatch") |
| 817 | assert.Equal(t, n1EditedOn, int64(2), "n1 EditedOn mismatch") |
| 818 | assert.Equal(t, n1USN, 20, "n1 USN mismatch") |
| 819 | assert.Equal(t, n1Public, true, "n1 Public mismatch") |
| 820 | assert.Equal(t, n1Dirty, true, "n1 Dirty mismatch") |
| 821 | assert.Equal(t, n1Deleted, false, "n1 Deleted mismatch") |
| 822 | |
| 823 | assert.Equal(t, n2BookUUID, b1UUID, "n2 BookUUID mismatch") |
| 824 | assert.Equal(t, n2Body, "", "n2 Body mismatch") |
| 825 | assert.Equal(t, n2AddedOn, int64(3), "n2 AddedOn mismatch") |
| 826 | assert.Equal(t, n2EditedOn, int64(4), "n2 EditedOn mismatch") |
| 827 | assert.Equal(t, n2USN, 21, "n2 USN mismatch") |
nothing calls this directly
no test coverage detected