yao/widgets/list/process_test.go
2022-12-02 06:14:50 +08:00

91 lines
1.9 KiB
Go

package list
import (
"net/url"
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/yaoapp/gou"
"github.com/yaoapp/kun/any"
"github.com/yaoapp/yao/config"
q "github.com/yaoapp/yao/query"
)
func TestProcessSetting(t *testing.T) {
load(t)
clear(t)
testData(t)
args := []interface{}{"category"}
res, err := gou.NewProcess("yao.list.Setting", args...).Exec()
if err != nil {
t.Fatal(err)
}
data := any.Of(res).MapStr().Dot()
assert.Equal(t, "/api/__yao/list/category/component/fields.list."+url.QueryEscape("父类")+".edit.props.xProps/remote", data.Get("fields.list.父类.edit.props.xProps.remote.api"))
}
func TestProcessXgen(t *testing.T) {
load(t)
clear(t)
testData(t)
args := []interface{}{"category"}
res, err := gou.NewProcess("yao.list.Xgen", args...).Exec()
if err != nil {
t.Fatal(err)
}
data := any.Of(res).MapStr().Dot()
assert.Equal(t, "/api/__yao/list/category/component/fields.list."+url.QueryEscape("父类")+".edit.props.xProps/remote", data.Get("fields.list.父类.edit.props.xProps.remote.api"))
}
func load(t *testing.T) {
prepare(t)
err := Load(config.Conf)
if err != nil {
t.Fatal(err)
}
q.Load(config.Conf)
}
func testData(t *testing.T) {
category := gou.Select("category")
err := category.Insert(
[]string{"name", "stock", "status", "rank"},
[][]interface{}{
{"机器人", 100, "启用", 1},
{"运输车", 80, "启用", 2},
{"货柜", 100, "停用", 3},
},
)
if err != nil {
t.Fatal(err)
}
}
func tempFile(t *testing.T) string {
file, err := os.CreateTemp("", "unit-test")
if err != nil {
t.Fatal(err)
}
defer file.Close()
_, err = file.Write([]byte("HELLO"))
if err != nil {
t.Fatal(err)
}
return file.Name()
}
func clear(t *testing.T) {
for _, m := range gou.Models {
err := m.DropTable()
if err != nil {
t.Fatal(err)
}
err = m.Migrate(true)
if err != nil {
t.Fatal(err)
}
}
}