package tests import ( "apigo.cloud/git/apigo/gojs" "apigo.cloud/git/apigo/plugin" _ "apigo.cloud/git/apigo/plugins/db" _ "github.com/mattn/go-sqlite3" "github.com/ssgo/u" "os" "testing" ) func TestSqlite(t *testing.T) { rt := gojs.New(nil, nil) defer rt.Close() gojs.SetPluginsConfig(map[string]plugin.Config{ "db": { "default": "sqlite3://test.db", }, }) defer os.Remove("test.db") r, err, _ := rt.Run(` db.exec('CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(30))') id1 = db.insert('test', {name:'Tom'}) id2 = db.replace('test', {name:'Kitty'}) id3 = db.insert('test', {name:'Lucy'}) return id1 + id2 + id3 `) Test(t, "create and insert", u.Int(r) == 6, r, err) r, err, _ = rt.Run(` changes = db.fetch().update('test', {name:'Lucy Wang'}, 'id=?', 3) return changes `) Test(t, "update", u.Int(r) == 1, r, err) r, err, _ = rt.Run(` changes = db.fetch().delete('test', 'id=?', 2) return changes `) Test(t, "update", u.Int(r) == 1, r, err) r, err, _ = rt.Run(` list = db.fetch().query('select id,name from test where id > ?', 1) return list `) list := make([]struct{ Id int Name string }, 0) u.Convert(r, &list) Test(t, "list", len(list) == 1 && list[0].Name == "Lucy Wang", r, err) }