203 lines
5.1 KiB
Go
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
|
|
// }
|