MCPcopy
hub / github.com/dnote/dnote / TestLocalMigration8

Function TestLocalMigration8

pkg/cli/migrate/migrate_test.go:770–831  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

768}
769
770func 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")

Callers

nothing calls this directly

Calls 10

InitTestMemoryDBRawFunction · 0.92
InitTestCtxWithDBFunction · 0.92
MustGenerateUUIDFunction · 0.92
MustExecFunction · 0.92
MustScanFunction · 0.92
EqualFunction · 0.92
BeginMethod · 0.65
RollbackMethod · 0.65
CommitMethod · 0.65
QueryRowMethod · 0.65

Tested by

no test coverage detected