yao/widgets/table/api_test.go
2023-03-25 13:37:35 +08:00

203 lines
5.1 KiB
Go

package table
import (
"github.com/gin-gonic/gin"
"github.com/yaoapp/yao/widgets/test"
)
var guards = map[string]gin.HandlerFunc{
"bearer-jwt": test.GuardBearerJWT,
"widget-table": Guard,
}
// func TestAPISetting(t *testing.T) {
// gtest.Prepare(t, config.Conf)
// defer gtest.Clean()
// prepare(t)
// clear(t)
// testData(t)
// port := start(t)
// defer test.Stop(func() {})
// req := test.NewRequest(port).Route("/api/__yao/table/pet/setting")
// res, err := req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 403, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/pet/setting").Token(token(t))
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 200, res.Status())
// v, err := res.Map()
// if err != nil {
// t.Fatal(err)
// }
// data := any.Of(v).MapStr().Dot()
// assert.Equal(t, "/api/xiang/import/pet", data.Get("header.preset.import.api.import"))
// // assert.Equal(t, "跳转", data.Get("header.preset.import.operation.0.title"))
// assert.Equal(t, "/api/__yao/table/pet/component/fields.table."+url.QueryEscape("入院状态")+".view.props.xProps/remote", data.Get("fields.table.入院状态.view.props.xProps.remote.api"))
// assert.Equal(t, "/api/__yao/table/pet/component/fields.table."+url.QueryEscape("入院状态")+".edit.props.xProps/remote", data.Get("fields.table.入院状态.edit.props.xProps.remote.api"))
// }
// func TestAPISearch(t *testing.T) {
// port := start(t)
// defer test.Stop(func() {})
// req := test.NewRequest(port).Route("/api/__yao/table/session/search")
// res, err := req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 403, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/session/search").Token(token(t))
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 200, res.Status())
// resp, err := res.Map()
// if err != nil {
// t.Fatal(err)
// }
// data := any.Of(resp).MapStr().Dot()
// assert.Equal(t, "1", fmt.Sprintf("%v", data.Get("pagesize")))
// assert.Equal(t, "3", fmt.Sprintf("%v", data.Get("total")))
// assert.Equal(t, "checked", data.Get("data.0.status"))
// assert.Equal(t, "enabled", data.Get("data.0.mode"))
// assert.Equal(t, "1", fmt.Sprintf("%v", data.Get("data.0.doctor_id")))
// }
// func TestAPISave(t *testing.T) {
// port := start(t)
// defer test.Stop(func() {})
// payload := map[string]interface{}{
// "name": "New Pet",
// "type": "cat",
// "status": "checked",
// "mode": "enabled",
// "stay": 66,
// "cost": 24,
// "doctor_id": 1,
// }
// req := test.NewRequest(port).Route("/api/__yao/table/pet/save").Data(payload)
// res, err := req.Post()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 403, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/pet/save").Data(payload).Token(token(t))
// res, err = req.Post()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 200, res.Status())
// v, err := res.Int()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 4, v)
// }
// func TestAPICustomGuard(t *testing.T) {
// port := start(t)
// defer test.Stop(func() {})
// req := test.NewRequest(port).Route("/api/__yao/table/pet/find/1")
// res, err := req.Get()
// if err != nil {
// t.Fatal(err)
// }
// req = test.NewRequest(port).Route("/api/__yao/table/pet/get")
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 403, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/pet/get").Token(token(t)).Header("Unit-Test", "yes")
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 418, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/pet/get").Token(token(t))
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 200, res.Status())
// }
// func TestAPIGlobalCustomGuard(t *testing.T) {
// port := start(t)
// defer test.Stop(func() {})
// req := test.NewRequest(port).Route("/api/__yao/table/guard/find/1")
// res, err := req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 403, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/guard/get")
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 403, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/guard/get").Token(token(t)).Header("Unit-Test", "yes")
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 418, res.Status())
// req = test.NewRequest(port).Route("/api/__yao/table/guard/get").Token(token(t))
// res, err = req.Get()
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, 200, res.Status())
// }
// func start(t *testing.T) int {
// port := 0
// go test.Start(t, guards, port)
// time.Sleep(200 * time.Millisecond)
// return port
// }
// func token(t *testing.T) string {
// res, err := test.AutoLogin(1)
// if err != nil {
// t.Fatal(err)
// }
// token, ok := res["token"].(string)
// if !ok {
// t.Fatal(fmt.Errorf("get token error %v", res))
// }
// return token
// }