diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index b5f507c7..d76baed9 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -1,6 +1,10 @@ name: UnitTest on: + workflow_dispatch: + inputs: + tags: + description: "Comment" push: branches: [main] @@ -40,19 +44,19 @@ jobs: - name: Checkout Kun uses: actions/checkout@v2 with: - repository: yaoapp/kun + repository: ${{ github.event.org.login }}/kun path: kun - name: Checkout Xun uses: actions/checkout@v2 with: - repository: yaoapp/xun + repository: ${{ github.event.org.login }}/xun path: xun - name: Checkout Gou uses: actions/checkout@v2 with: - repository: yaoapp/gou + repository: ${{ github.event.org.login }}/gou path: gou - name: Checkout V8Go diff --git a/.gitignore b/.gitignore index 7e5ad1d2..d5692e62 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,7 @@ dist ui ^ui/index.html -tests/data/*/* +tests/data/* debug.log yao-test dev.sh @@ -27,3 +27,4 @@ logs logs/application.log yao-arm64 tests/db/yao.db +env.*.sh \ No newline at end of file diff --git a/go.mod b/go.mod index b22f638f..c2f35f7a 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.18 require ( github.com/aliyun/alibaba-cloud-sdk-go v1.61.1286 - github.com/aliyun/aliyun-oss-go-sdk v2.1.10+incompatible github.com/caarlos0/env/v6 v6.9.1 github.com/elazarl/go-bindata-assetfs v1.0.1 github.com/fatih/color v1.13.0 @@ -26,7 +25,6 @@ require ( require ( github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2 // indirect - github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect github.com/blang/semver/v4 v4.0.0 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -64,7 +62,6 @@ require ( github.com/richardlehane/mscfb v1.0.3 // indirect github.com/richardlehane/msoleps v1.0.1 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/satori/go.uuid v1.2.0 // indirect github.com/sirupsen/logrus v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/takama/daemon v1.0.0 // indirect @@ -83,7 +80,6 @@ require ( golang.org/x/net v0.0.0-20220526153639-5463443f8c37 // indirect golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect golang.org/x/tools v0.1.7 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/genproto v0.0.0-20220526192754-51939a95c655 // indirect diff --git a/tests/plugins/user/README.md b/tests/plugins/user/README.md deleted file mode 100644 index 1fbe0cb4..00000000 --- a/tests/plugins/user/README.md +++ /dev/null @@ -1 +0,0 @@ -# Golang 插件 diff --git a/workflow/api_test.go b/workflow/api_test.go index 960b95f4..ae40c968 100644 --- a/workflow/api_test.go +++ b/workflow/api_test.go @@ -1,17 +1,12 @@ package workflow -import ( - "testing" +// Workflow will be removed from engine - "github.com/stretchr/testify/assert" - "github.com/yaoapp/gou" -) +// func TestSetupAPIs(t *testing.T) { +// assignFlow := Select("assign") +// assignFlow.SetupAPIs() -func TestSetupAPIs(t *testing.T) { - assignFlow := Select("assign") - assignFlow.SetupAPIs() - - api := gou.SelectAPI("xiang.workflow.assign") - assert.Equal(t, "xiang.workflow.assign", api.Name) - assert.Equal(t, 10, len(api.HTTP.Paths)) -} +// api := gou.SelectAPI("xiang.workflow.assign") +// assert.Equal(t, "xiang.workflow.assign", api.Name) +// assert.Equal(t, 10, len(api.HTTP.Paths)) +// } diff --git a/workflow/process.go b/workflow/process.go index 4f584471..13420905 100644 --- a/workflow/process.go +++ b/workflow/process.go @@ -2,6 +2,8 @@ package workflow import "github.com/yaoapp/gou" +// WARNING: the Workflow widget will be removed from yao engine + // Process // 读取工作流 xiang.workflow.Find(name, workflow_id) // 读取工作流 xiang.workflow.Open(name, uid, data_id) diff --git a/workflow/process_test.go b/workflow/process_test.go index 18f8dd14..4ca12b69 100644 --- a/workflow/process_test.go +++ b/workflow/process_test.go @@ -1,247 +1,233 @@ package workflow -import ( - "os" - "path" - "testing" +// WARNING: the Workflow widget will be removed from yao engine - "github.com/stretchr/testify/assert" - "github.com/yaoapp/gou" - "github.com/yaoapp/kun/any" - "github.com/yaoapp/xun/capsule" - "github.com/yaoapp/yao/config" - "github.com/yaoapp/yao/flow" - "github.com/yaoapp/yao/model" - "github.com/yaoapp/yao/query" - "github.com/yaoapp/yao/share" -) +// func init() { +// share.DBConnect(config.Conf.DB) +// share.Load(config.Conf) +// model.Load(config.Conf) +// engineModels := path.Join(os.Getenv("YAO_DEV"), "yao", "models") +// model.LoadFrom(engineModels, "xiang.") +// query.Load(config.Conf) +// flow.Load(config.Conf) +// Load(config.Conf) +// } -func init() { - share.DBConnect(config.Conf.DB) - share.Load(config.Conf) - model.Load(config.Conf) - engineModels := path.Join(os.Getenv("YAO_DEV"), "yao", "models") - model.LoadFrom(engineModels, "xiang.") - query.Load(config.Conf) - flow.Load(config.Conf) - Load(config.Conf) -} +// func TestProcessFind(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) -func TestProcessFind(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) +// args := []interface{}{"assign", wflow["id"]} +// res := gou.NewProcess("xiang.workflow.Find", args...).Run() - args := []interface{}{"assign", wflow["id"]} - res := gou.NewProcess("xiang.workflow.Find", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessSetting(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestProcessSetting(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// args := []interface{}{"assign", 1, 1} +// res := gou.NewProcess("xiang.workflow.Setting", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, 2, data.Get("nodes.2.source")) +// assert.Equal(t, 2, data.Get("nodes.3.source")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "指派商务负责人", data.Get("label")) - args := []interface{}{"assign", 1, 1} - res := gou.NewProcess("xiang.workflow.Setting", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, 2, data.Get("nodes.2.source")) - assert.Equal(t, 2, data.Get("nodes.3.source")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "指派商务负责人", data.Get("label")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessOpen(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) -func TestProcessOpen(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) +// args := []interface{}{"assign", 1, 1} +// res := gou.NewProcess("xiang.workflow.Open", args...).Run() - args := []interface{}{"assign", 1, 1} - res := gou.NewProcess("xiang.workflow.Open", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessSave(t *testing.T) { +// args := []interface{}{"assign", +// 1, "选择商务负责人", 1, +// map[string]interface{}{ +// "data": map[string]interface{}{"id": 1, "name": "云主机"}, +// "form": map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }, +// map[string]interface{}{"foo": "bar"}, +// } +// res := gou.NewProcess("xiang.workflow.Save", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, int64(1), data.Get("id")) -func TestProcessSave(t *testing.T) { - args := []interface{}{"assign", - 1, "选择商务负责人", 1, - map[string]interface{}{ - "data": map[string]interface{}{"id": 1, "name": "云主机"}, - "form": map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }, - map[string]interface{}{"foo": "bar"}, - } - res := gou.NewProcess("xiang.workflow.Save", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, int64(1), data.Get("id")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessNext(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) -func TestProcessNext(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) +// args := []interface{}{"assign", +// 1, wflow["id"], map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }, +// } +// res := gou.NewProcess("xiang.workflow.Next", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) +// assert.Equal(t, "项目负责人审批", data.Get("node_name")) - args := []interface{}{"assign", - 1, wflow["id"], map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }, - } - res := gou.NewProcess("xiang.workflow.Next", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) - assert.Equal(t, "项目负责人审批", data.Get("node_name")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessGoto(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestProcessGoto(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// args := []interface{}{"assign", +// 2, id, "选择商务负责人", +// map[string]interface{}{"审批结果": "驳回"}, +// } +// res := gou.NewProcess("xiang.workflow.Goto", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) - args := []interface{}{"assign", - 2, id, "选择商务负责人", - map[string]interface{}{"审批结果": "驳回"}, - } - res := gou.NewProcess("xiang.workflow.Goto", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessStatus(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestProcessStatus(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// args := []interface{}{"assign", +// 2, id, "已完成", map[string]interface{}{"关闭原因": "测试完成"}, +// } +// res := gou.NewProcess("xiang.workflow.Status", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) +// assert.Equal(t, "已完成", data.Get("status")) - args := []interface{}{"assign", - 2, id, "已完成", map[string]interface{}{"关闭原因": "测试完成"}, - } - res := gou.NewProcess("xiang.workflow.Status", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) - assert.Equal(t, "已完成", data.Get("status")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessDone(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestProcessDone(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// args := []interface{}{"assign", +// 2, id, map[string]interface{}{"关闭原因": "测试完成"}, +// } +// res := gou.NewProcess("xiang.workflow.Done", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) +// assert.Equal(t, "已完成", data.Get("status")) - args := []interface{}{"assign", - 2, id, map[string]interface{}{"关闭原因": "测试完成"}, - } - res := gou.NewProcess("xiang.workflow.Done", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) - assert.Equal(t, "已完成", data.Get("status")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessClose(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestProcessClose(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// args := []interface{}{"assign", +// 2, id, map[string]interface{}{"关闭原因": "测试关闭"}, +// } +// res := gou.NewProcess("xiang.workflow.Close", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) +// assert.Equal(t, "已关闭", data.Get("status")) - args := []interface{}{"assign", - 2, id, map[string]interface{}{"关闭原因": "测试关闭"}, - } - res := gou.NewProcess("xiang.workflow.Close", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) - assert.Equal(t, "已关闭", data.Get("status")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestProcessReset(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestProcessReset(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// args := []interface{}{"assign", +// 2, id, map[string]interface{}{"驳回原因": "字段填写错误"}, +// } +// res := gou.NewProcess("xiang.workflow.Reset", args...).Run() +// data := any.Of(res).Map().MapStrAny.Dot() +// assert.Equal(t, wflow["id"], data.Get("id")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) - args := []interface{}{"assign", - 2, id, map[string]interface{}{"驳回原因": "字段填写错误"}, - } - res := gou.NewProcess("xiang.workflow.Reset", args...).Run() - data := any.Of(res).Map().MapStrAny.Dot() - assert.Equal(t, wflow["id"], data.Get("id")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } diff --git a/workflow/workflow.go b/workflow/workflow.go index 06e44bbc..e54bf63a 100644 --- a/workflow/workflow.go +++ b/workflow/workflow.go @@ -18,6 +18,8 @@ import ( "github.com/yaoapp/yao/share" ) +// WARNING: the Workflow widget will be removed from yao engine + // Process // 读取工作流 xiang.workflow.Find(name, workflow_id) // 读取工作流 xiang.workflow.Open(name, uid, data_id) diff --git a/workflow/workflow_test.go b/workflow/workflow_test.go index 5a28eec8..55a0240d 100644 --- a/workflow/workflow_test.go +++ b/workflow/workflow_test.go @@ -1,310 +1,296 @@ package workflow -import ( - "os" - "path" - "testing" +// WARNING: the Workflow widget will be removed from yao engine - "github.com/stretchr/testify/assert" - "github.com/yaoapp/kun/any" - "github.com/yaoapp/kun/maps" - "github.com/yaoapp/xun/capsule" - "github.com/yaoapp/yao/config" - "github.com/yaoapp/yao/flow" - "github.com/yaoapp/yao/model" - "github.com/yaoapp/yao/query" - "github.com/yaoapp/yao/share" -) +// func init() { +// share.DBConnect(config.Conf.DB) +// share.Load(config.Conf) +// model.Load(config.Conf) +// engineModels := path.Join(os.Getenv("YAO_DEV"), "xiang", "models") +// model.LoadFrom(engineModels, "xiang.") +// query.Load(config.Conf) +// flow.Load(config.Conf) +// Load(config.Conf) +// } -func init() { - share.DBConnect(config.Conf.DB) - share.Load(config.Conf) - model.Load(config.Conf) - engineModels := path.Join(os.Getenv("YAO_DEV"), "xiang", "models") - model.LoadFrom(engineModels, "xiang.") - query.Load(config.Conf) - flow.Load(config.Conf) - Load(config.Conf) -} +// func TestLoad(t *testing.T) { +// share.DBConnect(config.Conf.DB) +// share.Load(config.Conf) +// model.Load(config.Conf) +// query.Load(config.Conf) +// Load(config.Conf) +// LoadFrom("not a path", "404.") +// check(t) +// } -func TestLoad(t *testing.T) { - share.DBConnect(config.Conf.DB) - share.Load(config.Conf) - model.Load(config.Conf) - query.Load(config.Conf) - Load(config.Conf) - LoadFrom("not a path", "404.") - check(t) -} +// func TestSave(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) -func TestSave(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, int64(1), data.Get("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id")) +// assert.Equal(t, "云主机", data.Get("input.选择商务负责人.data.name")) +// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id")) +// assert.Equal(t, "张良明", data.Get("input.选择商务负责人.form.name")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - data := maps.Of(wflow).Dot() - assert.Equal(t, int64(1), data.Get("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id")) - assert.Equal(t, "云主机", data.Get("input.选择商务负责人.data.name")) - assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id")) - assert.Equal(t, "张良明", data.Get("input.选择商务负责人.form.name")) - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestSaveUpdate(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) -func TestSaveUpdate(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) +// wflow = assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云存储"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "李明博"}, +// }) - wflow = assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云存储"}, - Form: map[string]interface{}{"biz_id": 1, "name": "李明博"}, - }) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, int64(1), data.Get("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id")) +// assert.Equal(t, "云存储", data.Get("input.选择商务负责人.data.name")) +// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id")) +// assert.Equal(t, "李明博", data.Get("input.选择商务负责人.form.name")) - data := maps.Of(wflow).Dot() - assert.Equal(t, int64(1), data.Get("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id")) - assert.Equal(t, "云存储", data.Get("input.选择商务负责人.data.name")) - assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id")) - assert.Equal(t, "李明博", data.Get("input.选择商务负责人.form.name")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestOpen(t *testing.T) { +// assignFlow := Select("assign") +// assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// wflow := assignFlow.Open(1, 1) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, int64(1), data.Get("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, int64(1), data.Get("user_id")) +// assert.Equal(t, float64(1), data.Get("users.选择商务负责人")) -func TestOpen(t *testing.T) { - assignFlow := Select("assign") - assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - wflow := assignFlow.Open(1, 1) - data := maps.Of(wflow).Dot() - assert.Equal(t, int64(1), data.Get("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, int64(1), data.Get("user_id")) - assert.Equal(t, float64(1), data.Get("users.选择商务负责人")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestOpenEmpty(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Open(1, 1) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, false, data.Has("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, 1, data.Get("user_id")) +// assert.Equal(t, 1, data.Get("users.选择商务负责人")) +// } -func TestOpenEmpty(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Open(1, 1) - data := maps.Of(wflow).Dot() - assert.Equal(t, false, data.Has("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, 1, data.Get("user_id")) - assert.Equal(t, 1, data.Get("users.选择商务负责人")) -} +// func TestNext(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// wflow = assignFlow.Next(1, any.Of(wflow["id"]).CInt(), map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, int64(1), data.Get("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "项目负责人审批", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, int64(2), data.Get("user_id")) +// assert.Equal(t, true, data.Has("users")) +// assert.Equal(t, "测试项目", data.Get("output.项目名称")) +// assert.Equal(t, "林明波", data.Get("output.商务负责人名称")) -func TestNext(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - wflow = assignFlow.Next(1, any.Of(wflow["id"]).CInt(), map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) - data := maps.Of(wflow).Dot() - assert.Equal(t, int64(1), data.Get("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "项目负责人审批", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, int64(2), data.Get("user_id")) - assert.Equal(t, true, data.Has("users")) - assert.Equal(t, "测试项目", data.Get("output.项目名称")) - assert.Equal(t, "林明波", data.Get("output.商务负责人名称")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestNextWhen(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestNextWhen(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// // Next When +// wflow = assignFlow.Next(2, id, map[string]interface{}{"审批结果": "通过"}) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, int64(1), data.Get("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "审批通过", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, int64(1), data.Get("user_id")) +// assert.Equal(t, true, data.Has("users")) +// assert.Equal(t, "测试项目", data.Get("output.项目名称")) +// assert.Equal(t, "林明波", data.Get("output.商务负责人名称")) +// assert.Equal(t, "通过", data.Get("output.审批结果")) - // Next When - wflow = assignFlow.Next(2, id, map[string]interface{}{"审批结果": "通过"}) - data := maps.Of(wflow).Dot() - assert.Equal(t, int64(1), data.Get("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "审批通过", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, int64(1), data.Get("user_id")) - assert.Equal(t, true, data.Has("users")) - assert.Equal(t, "测试项目", data.Get("output.项目名称")) - assert.Equal(t, "林明波", data.Get("output.商务负责人名称")) - assert.Equal(t, "通过", data.Get("output.审批结果")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestGoto(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestGoto(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// wflow = assignFlow.Goto(2, id, "选择商务负责人", map[string]interface{}{"审批结果": "驳回"}) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, true, data.Has("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, int64(1), data.Get("user_id")) +// assert.Equal(t, float64(1), data.Get("users.选择商务负责人")) +// assert.Equal(t, float64(2), data.Get("users.项目负责人审批")) - wflow = assignFlow.Goto(2, id, "选择商务负责人", map[string]interface{}{"审批结果": "驳回"}) - data := maps.Of(wflow).Dot() - assert.Equal(t, true, data.Has("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, int64(1), data.Get("user_id")) - assert.Equal(t, float64(1), data.Get("users.选择商务负责人")) - assert.Equal(t, float64(2), data.Get("users.项目负责人审批")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestReset(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestReset(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// wflow = assignFlow.Reset(2, id, map[string]interface{}{"审批结果": "驳回"}) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, true, data.Has("id")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "选择商务负责人", data.Get("node_name")) +// assert.Equal(t, "进行中", data.Get("node_status")) +// assert.Equal(t, "进行中", data.Get("status")) +// assert.Equal(t, int64(1), data.Get("user_id")) +// assert.Equal(t, float64(1), data.Get("users.选择商务负责人")) +// assert.Equal(t, float64(2), data.Get("users.项目负责人审批")) - wflow = assignFlow.Reset(2, id, map[string]interface{}{"审批结果": "驳回"}) - data := maps.Of(wflow).Dot() - assert.Equal(t, true, data.Has("id")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "选择商务负责人", data.Get("node_name")) - assert.Equal(t, "进行中", data.Get("node_status")) - assert.Equal(t, "进行中", data.Get("status")) - assert.Equal(t, int64(1), data.Get("user_id")) - assert.Equal(t, float64(1), data.Get("users.选择商务负责人")) - assert.Equal(t, float64(2), data.Get("users.项目负责人审批")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestDone(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestDone(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// wflow = assignFlow.Done(2, id, map[string]interface{}{"关闭原因": "测试完成"}) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, "已完成", data.Get("status")) +// assert.Equal(t, "测试完成", data.Get("output.关闭原因")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - wflow = assignFlow.Done(2, id, map[string]interface{}{"关闭原因": "测试完成"}) - data := maps.Of(wflow).Dot() - assert.Equal(t, "已完成", data.Get("status")) - assert.Equal(t, "测试完成", data.Get("output.关闭原因")) - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestClose(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) -func TestClose(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// wflow = assignFlow.Close(2, id, map[string]interface{}{"关闭原因": "测试关闭"}) +// data := maps.Of(wflow).Dot() +// assert.Equal(t, "已关闭", data.Get("status")) +// assert.Equal(t, "测试关闭", data.Get("output.关闭原因")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - wflow = assignFlow.Close(2, id, map[string]interface{}{"关闭原因": "测试关闭"}) - data := maps.Of(wflow).Dot() - assert.Equal(t, "已关闭", data.Get("status")) - assert.Equal(t, "测试关闭", data.Get("output.关闭原因")) - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} +// func TestSetting(t *testing.T) { +// assignFlow := Select("assign") +// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ +// Data: map[string]interface{}{"id": 1, "name": "云主机"}, +// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, +// }) -func TestSetting(t *testing.T) { - assignFlow := Select("assign") - wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{ - Data: map[string]interface{}{"id": 1, "name": "云主机"}, - Form: map[string]interface{}{"biz_id": 1, "name": "张良明"}, - }) +// setting := assignFlow.Setting(1, 1) +// data := maps.Of(setting).Dot() +// assert.Equal(t, true, data.Get("read")) +// assert.Equal(t, "选择商务负责人", data.Get("node.label")) +// assert.Equal(t, true, data.Get("write")) - setting := assignFlow.Setting(1, 1) - data := maps.Of(setting).Dot() - assert.Equal(t, true, data.Get("read")) - assert.Equal(t, "选择商务负责人", data.Get("node.label")) - assert.Equal(t, true, data.Get("write")) +// id := any.Of(wflow["id"]).CInt() +// assignFlow.Next(1, id, map[string]interface{}{ +// "项目名称": "测试项目", +// "商务负责人名称": "林明波", +// }) - id := any.Of(wflow["id"]).CInt() - assignFlow.Next(1, id, map[string]interface{}{ - "项目名称": "测试项目", - "商务负责人名称": "林明波", - }) +// setting = assignFlow.Setting(1, 1) +// data = maps.Of(setting).Dot() +// assert.Equal(t, true, data.Get("read")) +// assert.Equal(t, false, data.Get("write")) +// assert.Equal(t, "项目负责人审批", data.Get("node.label")) +// assert.Equal(t, 2, data.Get("nodes.2.source")) +// assert.Equal(t, 2, data.Get("nodes.3.source")) +// assert.Equal(t, "assign", data.Get("name")) +// assert.Equal(t, "指派商务负责人", data.Get("label")) - setting = assignFlow.Setting(1, 1) - data = maps.Of(setting).Dot() - assert.Equal(t, true, data.Get("read")) - assert.Equal(t, false, data.Get("write")) - assert.Equal(t, "项目负责人审批", data.Get("node.label")) - assert.Equal(t, 2, data.Get("nodes.2.source")) - assert.Equal(t, 2, data.Get("nodes.3.source")) - assert.Equal(t, "assign", data.Get("name")) - assert.Equal(t, "指派商务负责人", data.Get("label")) +// // 清理数据 +// capsule.Query().From("xiang_workflow").Truncate() +// } - // 清理数据 - capsule.Query().From("xiang_workflow").Truncate() -} - -func check(t *testing.T) { - keys := []string{} - for key, workflow := range WorkFlows { - keys = append(keys, key) - workflow.Reload() - } - assert.Equal(t, 1, len(keys)) -} +// func check(t *testing.T) { +// keys := []string{} +// for key, workflow := range WorkFlows { +// keys = append(keys, key) +// workflow.Reload() +// } +// assert.Equal(t, 1, len(keys)) +// } diff --git a/xfs/process_test.go b/xfs/process_test.go index e0af529c..7e18f0f4 100644 --- a/xfs/process_test.go +++ b/xfs/process_test.go @@ -1,16 +1,9 @@ package xfs import ( - "fmt" "os" - "strings" "testing" - "time" - "github.com/aliyun/aliyun-oss-go-sdk/oss" - "github.com/stretchr/testify/assert" - "github.com/yaoapp/gou" - "github.com/yaoapp/kun/any" "github.com/yaoapp/yao/share" ) @@ -30,31 +23,33 @@ func init() { } func TestProcessGetToken(t *testing.T) { - args := []interface{}{"oss"} - process := gou.NewProcess("xiang.fs.GetToken", args...) - response := processGetToken(process) - assert.NotNil(t, response) - res := any.Of(response).Map() - assert.True(t, res.Has("AccessKeyId")) - assert.True(t, res.Has("AccessKeySecret")) - assert.True(t, res.Has("Expiration")) - assert.True(t, res.Has("SecurityToken")) - assert.True(t, res.Has("Endpoint")) + // the oss support will be using new process - // 使用token - client, err := oss.New( - res.Get("Endpoint").(string), - res.Get("AccessKeyId").(string), - res.Get("AccessKeySecret").(string), - oss.SecurityToken(res.Get("SecurityToken").(string)), - ) - assert.Nil(t, err) + // args := []interface{}{"oss"} + // process := gou.NewProcess("xiang.fs.GetToken", args...) + // response := processGetToken(process) + // assert.NotNil(t, response) + // res := any.Of(response).Map() + // assert.True(t, res.Has("AccessKeyId")) + // assert.True(t, res.Has("AccessKeySecret")) + // assert.True(t, res.Has("Expiration")) + // assert.True(t, res.Has("SecurityToken")) + // assert.True(t, res.Has("Endpoint")) - bucket, err := client.Bucket("image-appcook") - assert.Nil(t, err) + // // 使用token + // client, err := oss.New( + // res.Get("Endpoint").(string), + // res.Get("AccessKeyId").(string), + // res.Get("AccessKeySecret").(string), + // oss.SecurityToken(res.Get("SecurityToken").(string)), + // ) + // assert.Nil(t, err) - // 上传字符串。 - now := fmt.Sprintf("%d", time.Now().UnixNano()) - err = bucket.PutObject("xiang/unit-test."+now+".txt", strings.NewReader(now)) - assert.Nil(t, err) + // bucket, err := client.Bucket("image-appcook") + // assert.Nil(t, err) + + // // 上传字符串。 + // now := fmt.Sprintf("%d", time.Now().UnixNano()) + // err = bucket.PutObject("xiang/unit-test."+now+".txt", strings.NewReader(now)) + // assert.Nil(t, err) }