mirror of
https://github.com/alibaba/higress.git
synced 2026-06-26 02:35:02 +08:00
test(transformer): add end-to-end coverage and fix silent error wrapping (#3873)
Signed-off-by: jingze <daijingze.djz@alibaba-inc.com>
This commit is contained in:
@@ -5,8 +5,8 @@ go 1.24.1
|
||||
toolchain go1.24.4
|
||||
|
||||
require (
|
||||
github.com/higress-group/proxy-wasm-go-sdk v0.0.0-20250611100342-5654e89a7a80
|
||||
github.com/higress-group/wasm-go v1.0.2
|
||||
github.com/higress-group/proxy-wasm-go-sdk v0.0.0-20251103120604-77e9cce339d2
|
||||
github.com/higress-group/wasm-go v1.0.10-0.20260120033417-1c84f010156d
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/tidwall/gjson v1.18.0
|
||||
@@ -18,6 +18,7 @@ require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/tetratelabs/wazero v1.7.2 // indirect
|
||||
github.com/tidwall/match v1.1.1 // indirect
|
||||
github.com/tidwall/resp v0.1.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
|
||||
@@ -2,18 +2,18 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/higress-group/proxy-wasm-go-sdk v0.0.0-20250611100342-5654e89a7a80 h1:xqmtTZI0JQ2O+Lg9/CE6c+Tw9KD6FnvWw8EpLVuuvfg=
|
||||
github.com/higress-group/proxy-wasm-go-sdk v0.0.0-20250611100342-5654e89a7a80/go.mod h1:tRI2LfMudSkKHhyv1uex3BWzcice2s/l8Ah8axporfA=
|
||||
github.com/higress-group/wasm-go v1.0.0 h1:4Ik5n3FsJ5+r13KLQl2ky+8NuAE8dfWQwoKxXYD2KAw=
|
||||
github.com/higress-group/wasm-go v1.0.0/go.mod h1:ODBV27sjmhIW8Cqv3R74EUcTnbdkE69bmXBQFuRkY1M=
|
||||
github.com/higress-group/wasm-go v1.0.2 h1:8fQqR+wHts8tP+v7GYxmsCNyW5nAjn9wPYV0/+Seqzg=
|
||||
github.com/higress-group/wasm-go v1.0.2/go.mod h1:882/J8ccU4i+LeyFKmeicbHWAYLj8y7YZr60zk0OOCI=
|
||||
github.com/higress-group/proxy-wasm-go-sdk v0.0.0-20251103120604-77e9cce339d2 h1:NY33OrWCJJ+DFiLc+lsBY4Ywor2Ik61ssk6qkGF8Ypo=
|
||||
github.com/higress-group/proxy-wasm-go-sdk v0.0.0-20251103120604-77e9cce339d2/go.mod h1:tRI2LfMudSkKHhyv1uex3BWzcice2s/l8Ah8axporfA=
|
||||
github.com/higress-group/wasm-go v1.0.10-0.20260120033417-1c84f010156d h1:LgYbzEBtg0+LEqoebQeMVgAB6H5SgqG+KN+gBhNfKbM=
|
||||
github.com/higress-group/wasm-go v1.0.10-0.20260120033417-1c84f010156d/go.mod h1:uKVYICbRaxTlKqdm8E0dpjbysxM8uCPb9LV26hF3Km8=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/tetratelabs/wazero v1.7.2 h1:1+z5nXJNwMLPAWaTePFi49SSTL0IMx/i3Fg8Yc25GDc=
|
||||
github.com/tetratelabs/wazero v1.7.2/go.mod h1:ytl6Zuh20R/eROuyDaGPkp82O9C/DJfXAwJfQ3X6/7Y=
|
||||
github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
|
||||
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||
|
||||
@@ -709,8 +709,7 @@ func newTransformRule(rules []gjson.Result) (res []TransformRule, err error) {
|
||||
var tRule TransformRule
|
||||
tRule.operate = strings.ToLower(r.Get("operate").String())
|
||||
if !isValidOperation(tRule.operate) {
|
||||
errors.Wrapf(err, "invalid operate type %q", tRule.operate)
|
||||
return
|
||||
return nil, errors.Errorf("invalid operate type %q", tRule.operate)
|
||||
}
|
||||
|
||||
if tRule.operate == "map" {
|
||||
@@ -720,8 +719,7 @@ func newTransformRule(rules []gjson.Result) (res []TransformRule, err error) {
|
||||
} else {
|
||||
tRule.mapSource = mapSourceInJson.String()
|
||||
if !isValidMapSource(tRule.mapSource) {
|
||||
errors.Wrapf(err, "invalid map source %q", tRule.mapSource)
|
||||
return
|
||||
return nil, errors.Errorf("invalid map source %q", tRule.mapSource)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -738,8 +736,7 @@ func newTransformRule(rules []gjson.Result) (res []TransformRule, err error) {
|
||||
valueType = "string"
|
||||
}
|
||||
if !isValidJsonType(valueType) {
|
||||
errors.Wrapf(err, "invalid body params type %q", valueType)
|
||||
return
|
||||
return nil, errors.Errorf("invalid body params type %q", valueType)
|
||||
}
|
||||
tRule.body = append(tRule.body, constructParam(b, tRule.operate, valueType))
|
||||
}
|
||||
@@ -1110,7 +1107,7 @@ func (h jsonHandler) handle(host, path string, oriData []byte, mapSourceData map
|
||||
}
|
||||
convertedAppendValue, err := convertByJsonType(valueType, appendValue)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, errAppend.Error())
|
||||
return nil, errors.Wrap(err, errAppend.Error())
|
||||
}
|
||||
oldValue := gjson.GetBytes(data, key)
|
||||
if !oldValue.Exists() {
|
||||
@@ -1332,7 +1329,7 @@ func newKvtGroup(rules []TransformRule, typ string) (g []kvtOperation, isChange
|
||||
case "append":
|
||||
kvtOp.kvtOpType = AppendK
|
||||
default:
|
||||
return nil, false, false, errors.Wrap(err, "invalid operation type")
|
||||
return nil, false, false, errors.Errorf("invalid operation type %q", r.operate)
|
||||
}
|
||||
for _, p := range prams {
|
||||
switch r.operate {
|
||||
|
||||
1023
plugins/wasm-go/extensions/transformer/main_test.go
Normal file
1023
plugins/wasm-go/extensions/transformer/main_test.go
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user