Move tests to builtin_test.go

This commit is contained in:
Anton Medvedev
2023-08-30 12:11:57 +02:00
parent 7f85c0551f
commit cea6c64ab2
2 changed files with 13 additions and 32 deletions
+13 -5
View File
@@ -18,6 +18,13 @@ import (
)
func TestBuiltin(t *testing.T) {
env := map[string]any{
"ArrayOfString": []string{"foo", "bar", "baz"},
"ArrayOfInt": []int{1, 2, 3},
"ArrayOfAny": []any{1, "2", true},
"ArrayOfFoo": []mock.Foo{{Value: "a"}, {Value: "b"}, {Value: "c"}},
}
var tests = []struct {
input string
want any
@@ -87,13 +94,14 @@ func TestBuiltin(t *testing.T) {
{`get({foo: 1, bar: 2}, "unknown")`, nil},
{`"foo" in keys({foo: 1, bar: 2})`, true},
{`1 in values({foo: 1, bar: 2})`, true},
{`groupBy(1..9, # % 2)`, map[any][]any{0: {2, 4, 6, 8}, 1: {1, 3, 5, 7, 9}}},
{`groupBy(1..9, # % 2)[0]`, []any{2, 4, 6, 8}},
{`groupBy(1..3, # > 1)[true]`, []any{2, 3}},
{`groupBy(1..3, # > 1 ? nil : "")[nil]`, []any{2, 3}},
{`groupBy(ArrayOfFoo, .Value).a`, []any{mock.Foo{Value: "a"}}},
{`countBy(1..9, # % 2)`, map[any]int{0: 4, 1: 5}},
}
env := map[string]any{
"ArrayOfString": []string{"foo", "bar", "baz"},
"ArrayOfInt": []int{1, 2, 3},
"ArrayOfAny": []any{1, "2", true},
}
for _, test := range tests {
t.Run(test.input, func(t *testing.T) {
program, err := expr.Compile(test.input, expr.Env(env))
-27
View File
@@ -1040,33 +1040,6 @@ func TestExpr(t *testing.T) {
`4/2 == 2`,
true,
},
{
`groupBy(1..9, # % 2)`,
map[any][]any{
0: {2, 4, 6, 8},
1: {1, 3, 5, 7, 9},
},
},
{
`groupBy(1..9, # % 2)[0]`,
[]any{2, 4, 6, 8},
},
{
`groupBy(1..3, # > 1)[true]`,
[]any{2, 3},
},
{
`groupBy(1..3, # > 1 ? nil : "")[nil]`,
[]any{2, 3},
},
{
`groupBy(ArrayOfFoo, .Value).foo`,
[]any{env.ArrayOfFoo[0]},
},
{
`countBy(1..9, # % 2)`,
map[any]int{0: 4, 1: 5},
},
}
for _, tt := range tests {