2021-01-04 19:03:32 +00:00
|
|
|
package sqlite
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2021-01-10 15:39:10 +00:00
|
|
|
"github.com/mickael-menu/zk/util/test/assert"
|
2021-01-04 19:03:32 +00:00
|
|
|
"github.com/mickael-menu/zk/util/fixtures"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestOpen(t *testing.T) {
|
|
|
|
_, err := Open(fixtures.Path("sample.db"))
|
|
|
|
assert.Nil(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestClose(t *testing.T) {
|
|
|
|
db, err := Open(fixtures.Path("sample.db"))
|
|
|
|
assert.Nil(t, err)
|
|
|
|
err = db.Close()
|
|
|
|
assert.Nil(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestMigrateFrom0(t *testing.T) {
|
|
|
|
db, err := OpenInMemory()
|
|
|
|
assert.Nil(t, err)
|
|
|
|
|
|
|
|
err = db.Migrate()
|
|
|
|
assert.Nil(t, err)
|
|
|
|
// Should be able to migrate twice in a row
|
|
|
|
err = db.Migrate()
|
|
|
|
assert.Nil(t, err)
|
|
|
|
|
|
|
|
err = db.WithTransaction(func(tx Transaction) error {
|
|
|
|
var version int
|
|
|
|
err := tx.QueryRow("PRAGMA user_version").Scan(&version)
|
|
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, version, 1)
|
|
|
|
|
|
|
|
_, err = tx.Exec(`
|
2021-01-09 11:17:15 +00:00
|
|
|
INSERT INTO notes (path, title, body, word_count, checksum)
|
|
|
|
VALUES ("ref/tx1.md", "A reference", "Content", 1, "qwfpg")
|
2021-01-04 19:03:32 +00:00
|
|
|
`)
|
|
|
|
assert.Nil(t, err)
|
|
|
|
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
assert.Nil(t, err)
|
|
|
|
}
|