package tests import ( "apigo.cc/apigo/gojs" "apigo.cc/apigo/plugin" _ "apigo.cc/apigo/plugins/db" _ "apigo.cc/apigo/plugins/file" _ "apigo.cc/apigo/plugins/redis" _ "github.com/mattn/go-sqlite3" "github.com/ssgo/u" "os" "testing" ) func T1estSql(t *testing.T) { rt := gojs.New(nil) defer rt.Close() gojs.SetPluginsConfig(map[string]plugin.Config{ "apigo.cc/apigo/plugins/db": { "default": "sqlite3://Test.db", }, }) defer func() { _ = os.Remove("Test.db") }() var r interface{} = false err := rt.ExecFile("db_tests/db_test.js") if err == nil { r, err = rt.Run(`return testInsert()`) } Test(t, "create and insert", r == "1,2,3 | 1,1,1", r, err) r, err = rt.Run(`return testUpdate()`) Test(t, "update", u.Int(r) == 1, r, err) r, err = rt.Run(`return testDelete()`) Test(t, "delete", u.Int(r) == 1, r, err) r, err = rt.Run(`return testQuery()`) 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{ "apigo.cc/apigo/plugins/db": { "default": "sqlite3://Test.db", }, "apigo.cc/apigo/plugins/redis": { "default": "redis://localhost:16379", }, }) defer func() { _ = os.Remove("Test.db") _ = os.Remove("er.html") _ = os.Remove("db_tests/TestDao.js") }() _, 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()`) Test(t, "create and insert", r == "1,2,3 | 1,2,3", r, err) r, err = rt.Run(`return testGet()`) Test(t, "get", r == "Tom", r, err) r, err = rt.Run(`return testUpdate()`) Test(t, "update", r == "1,4", r, err) r, err = rt.Run(`return testDisable()`) Test(t, "disable", u.Int(r) == 1, r, err) r, err = rt.Run(`return testList()`) 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) r, err = rt.Run(`return testExt()`) Test(t, "table ext", r == "Tom", r, err) r, err = rt.Run(`return testER()`) Test(t, "er", r == "account", r, err) }