mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-24 10:46:10 +01:00
65f17bfc31
The main purpose is to refactor the legacy `unknwon/com` package. 1. Remove most imports of `unknwon/com`, only `util/legacy.go` imports the legacy `unknwon/com` 2. Use golangci's depguard to process denied packages 3. Fix some incorrect values in golangci.yml, eg, the version should be quoted string `"1.18"` 4. Use correctly escaped content for `go-import` and `go-source` meta tags 5. Refactor `com.Expand` to our stable (and the same fast) `vars.Expand`, our `vars.Expand` can still return partially rendered content even if the template is not good (eg: key mistach).
73 lines
1.3 KiB
Go
73 lines
1.3 KiB
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package vars
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestExpandVars(t *testing.T) {
|
|
kases := []struct {
|
|
tmpl string
|
|
data map[string]string
|
|
out string
|
|
error bool
|
|
}{
|
|
{
|
|
tmpl: "{a}",
|
|
data: map[string]string{
|
|
"a": "1",
|
|
},
|
|
out: "1",
|
|
},
|
|
{
|
|
tmpl: "expand {a}, {b} and {c}, with non-var { } {#}",
|
|
data: map[string]string{
|
|
"a": "1",
|
|
"b": "2",
|
|
"c": "3",
|
|
},
|
|
out: "expand 1, 2 and 3, with non-var { } {#}",
|
|
},
|
|
{
|
|
tmpl: "中文内容 {一}, {二} 和 {三} 中文结尾",
|
|
data: map[string]string{
|
|
"一": "11",
|
|
"二": "22",
|
|
"三": "33",
|
|
},
|
|
out: "中文内容 11, 22 和 33 中文结尾",
|
|
},
|
|
{
|
|
tmpl: "expand {{a}, {b} and {c}",
|
|
data: map[string]string{
|
|
"a": "foo",
|
|
"b": "bar",
|
|
},
|
|
out: "expand {{a}, bar and {c}",
|
|
error: true,
|
|
},
|
|
{
|
|
tmpl: "expand } {} and {",
|
|
out: "expand } {} and {",
|
|
error: true,
|
|
},
|
|
}
|
|
|
|
for _, kase := range kases {
|
|
t.Run(kase.tmpl, func(t *testing.T) {
|
|
res, err := Expand(kase.tmpl, kase.data)
|
|
assert.EqualValues(t, kase.out, res)
|
|
if kase.error {
|
|
assert.Error(t, err)
|
|
} else {
|
|
assert.NoError(t, err)
|
|
}
|
|
})
|
|
}
|
|
}
|