From 2bb671151641d08802cf5e2d471380671d4ef1a6 Mon Sep 17 00:00:00 2001
From: Max
Date: Fri, 25 Feb 2022 20:51:51 +0800
Subject: [PATCH 1/3] test
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 4c068fab..fd093bc1 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
YAO
+ YAO App Engine
From f66d6bc4ac335fbb1c21768fb11a5fdb1c17851a Mon Sep 17 00:00:00 2001
From: Max
Date: Thu, 1 Sep 2022 14:36:19 +0800
Subject: [PATCH 2/3] [change] unit-tests workflow & remove OSS support
---
.github/workflows/unit-test.yml | 10 +-
.gitignore | 3 +-
go.mod | 4 -
tests/plugins/user/README.md | 1 -
workflow/api_test.go | 21 +-
workflow/process.go | 2 +
workflow/process_test.go | 412 ++++++++++++------------
workflow/workflow.go | 2 +
workflow/workflow_test.go | 538 ++++++++++++++++----------------
xfs/process_test.go | 57 ++--
10 files changed, 508 insertions(+), 542 deletions(-)
delete mode 100644 tests/plugins/user/README.md
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)
}
From 56d26f4d22d73d96afab5e11cf09757de959a943 Mon Sep 17 00:00:00 2001
From: Max
Date: Thu, 1 Sep 2022 14:43:48 +0800
Subject: [PATCH 3/3] [debug] unit-tests workflow
---
.github/workflows/unit-test.yml | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index d76baed9..b1a197c0 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -22,6 +22,9 @@ env:
OSS_TEST_ID: ${{ secrets.OSS_TEST_ID}}
OSS_TEST_SECRET: ${{ secrets.OSS_TEST_SECRET}}
ROOT_PLUGIN: ${{ github.WORKSPACE }}/../../../data/gou-unit/plugins
+ REPO_KUN: ${{ github.repository_owner }}/kun
+ REPO_XUN: ${{ github.repository_owner }}/xun
+ REPO_GOU: ${{ github.repository_owner }}/gou
jobs:
unit-test:
@@ -44,19 +47,19 @@ jobs:
- name: Checkout Kun
uses: actions/checkout@v2
with:
- repository: ${{ github.event.org.login }}/kun
+ repository: ${{ env.REPO_KUN }}
path: kun
- name: Checkout Xun
uses: actions/checkout@v2
with:
- repository: ${{ github.event.org.login }}/xun
+ repository: ${{ env.REPO_XUN }}
path: xun
- name: Checkout Gou
uses: actions/checkout@v2
with:
- repository: ${{ github.event.org.login }}/gou
+ repository: ${{ env.REPO_GOU }}
path: gou
- name: Checkout V8Go