658832bf18
add testcases
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
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)
|
|
|
|
}
|