2024-02-18 13:23:11 +08:00
|
|
|
package tests
|
|
|
|
|
|
|
|
import (
|
|
|
|
"apigo.cloud/git/apigo/gojs"
|
|
|
|
"apigo.cloud/git/apigo/plugin"
|
|
|
|
_ "apigo.cloud/git/apigo/plugins/db"
|
2024-03-09 13:43:14 +08:00
|
|
|
_ "apigo.cloud/git/apigo/plugins/file"
|
|
|
|
_ "apigo.cloud/git/apigo/plugins/redis"
|
2024-02-18 13:23:11 +08:00
|
|
|
_ "github.com/mattn/go-sqlite3"
|
|
|
|
"github.com/ssgo/u"
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
func T1estSql(t *testing.T) {
|
|
|
|
rt := gojs.New(nil)
|
2024-02-18 13:23:11 +08:00
|
|
|
defer rt.Close()
|
|
|
|
|
|
|
|
gojs.SetPluginsConfig(map[string]plugin.Config{
|
2024-03-24 12:28:02 +08:00
|
|
|
"apigo.cloud/git/apigo/plugins/db": {
|
2024-03-09 13:43:14 +08:00
|
|
|
"default": "sqlite3://Test.db",
|
2024-02-18 13:23:11 +08:00
|
|
|
},
|
|
|
|
})
|
2024-03-09 13:43:14 +08:00
|
|
|
defer func() {
|
|
|
|
_ = os.Remove("Test.db")
|
|
|
|
}()
|
|
|
|
var r interface{} = false
|
2024-03-24 12:28:02 +08:00
|
|
|
err := rt.ExecFile("db_tests/db_test.js")
|
2024-03-09 13:43:14 +08:00
|
|
|
if err == nil {
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testInsert()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
}
|
|
|
|
Test(t, "create and insert", r == "1,2,3 | 1,1,1", r, err)
|
2024-02-18 13:23:11 +08:00
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testUpdate()`)
|
2024-02-18 13:23:11 +08:00
|
|
|
Test(t, "update", u.Int(r) == 1, r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testDelete()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "delete", u.Int(r) == 1, r, err)
|
2024-02-18 13:23:11 +08:00
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testQuery()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
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)
|
|
|
|
|
|
|
|
rt.Exec("db.destroy()")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDao(t *testing.T) {
|
|
|
|
rdServer := StartRedis("16379")
|
|
|
|
defer rdServer.Close()
|
|
|
|
|
|
|
|
gojs.SetPluginsConfig(map[string]plugin.Config{
|
2024-03-24 12:28:02 +08:00
|
|
|
"apigo.cloud/git/apigo/plugins/db": {
|
2024-03-09 13:43:14 +08:00
|
|
|
"default": "sqlite3://Test.db",
|
|
|
|
},
|
2024-03-24 12:28:02 +08:00
|
|
|
"apigo.cloud/git/apigo/plugins/redis": {
|
2024-03-09 13:43:14 +08:00
|
|
|
"default": "redis://localhost:16379",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
defer func() {
|
|
|
|
_ = os.Remove("Test.db")
|
|
|
|
_ = os.Remove("er.html")
|
2024-03-24 12:28:02 +08:00
|
|
|
_ = os.Remove("db_tests/TestDao.js")
|
2024-03-09 13:43:14 +08:00
|
|
|
}()
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
_, err := gojs.RunFile("db_tests/dao_init.js", nil)
|
|
|
|
Test(t, "create dao file", err == nil && u.FileExists("db_tests/TestDao.js"), err)
|
|
|
|
|
|
|
|
rt := gojs.New(nil)
|
|
|
|
defer rt.Close()
|
|
|
|
|
|
|
|
err = rt.ExecFile("db_tests/dao_test.js")
|
|
|
|
r, err := rt.Run(`return testInsert()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "create and insert", r == "1,2,3 | 1,2,3", r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testGet()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "get", r == "Tom", r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testUpdate()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "update", r == "1,4", r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testDisable()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "disable", u.Int(r) == 1, r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testList()`)
|
|
|
|
list := make([]struct {
|
|
|
|
Id int
|
2024-02-18 13:23:11 +08:00
|
|
|
Name string
|
|
|
|
}, 0)
|
|
|
|
u.Convert(r, &list)
|
|
|
|
Test(t, "list", len(list) == 1 && list[0].Name == "Lucy Wang", r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testExt()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "table ext", r == "Tom", r, err)
|
|
|
|
|
2024-03-24 12:28:02 +08:00
|
|
|
r, err = rt.Run(`return testER()`)
|
2024-03-09 13:43:14 +08:00
|
|
|
Test(t, "er", r == "account", r, err)
|
2024-02-18 13:23:11 +08:00
|
|
|
}
|