github.com/expr-lang/expr@v1.16.9/test/crowdsec/crowdsec_test.go (about) 1 package crowdsec_test 2 3 import ( 4 "encoding/json" 5 "os" 6 "testing" 7 8 "github.com/expr-lang/expr/internal/testify/require" 9 10 "github.com/expr-lang/expr" 11 "github.com/expr-lang/expr/test/crowdsec" 12 ) 13 14 func TestCrowdsec(t *testing.T) { 15 b, err := os.ReadFile("../../testdata/crowdsec.json") 16 require.NoError(t, err) 17 18 var examples []string 19 err = json.Unmarshal(b, &examples) 20 require.NoError(t, err) 21 22 env := map[string]any{ 23 "evt": &crowdsec.Event{}, 24 } 25 26 var opt = []expr.Option{ 27 expr.Env(env), 28 } 29 for _, fn := range crowdsec.CustomFunctions { 30 opt = append( 31 opt, 32 expr.Function( 33 fn.Name, 34 func(params ...any) (any, error) { 35 return nil, nil 36 }, 37 fn.Func..., 38 ), 39 ) 40 } 41 42 for _, line := range examples { 43 t.Run(line, func(t *testing.T) { 44 _, err = expr.Compile(line, opt...) 45 require.NoError(t, err) 46 }) 47 } 48 }