MCPcopy Create free account
hub / github.com/cel-expr/cel-go / createResultMatcher

Method createResultMatcher

tools/celtest/test_runner.go:945–1015  ·  view source on GitHub ↗
(t *testing.T, testOutput *test.Output)

Source from the content-addressed store, hash-verified

943}
944
945func (tr *TestRunner) createResultMatcher(t *testing.T, testOutput *test.Output) (func(ref.Val, error) TestResult, error) {
946 t.Helper()
947 e, err := tr.CreateEnv()
948 if err != nil {
949 return nil, err
950 }
951 successResult := TestResult{Success: true}
952 if testOutput.Value != nil {
953 want := e.CELTypeAdapter().NativeToValue(testOutput.Value)
954 return func(out ref.Val, err error) TestResult {
955 if err != nil {
956 return TestResult{Success: false, Wanted: fmt.Sprintf("simple value %v", want), Error: err}
957 }
958 if out.Equal(want) == types.True {
959 return successResult
960 }
961 if optOut, ok := out.(*types.Optional); ok {
962 if optOut.HasValue() && optOut.GetValue().Equal(want) == types.True {
963 return successResult
964 }
965 }
966 return TestResult{Success: false, Wanted: fmt.Sprintf("simple value %v", want), Error: fmt.Errorf("policy eval got %v", out)}
967
968 }, nil
969 }
970 if testOutput.Expr != "" {
971 want, err := tr.eval(testOutput.Expr)
972 if err != nil {
973 return nil, fmt.Errorf("eval(%q) failed: %w", testOutput.Expr, err)
974 }
975 return func(out ref.Val, err error) TestResult {
976 if err != nil {
977 return TestResult{Success: false, Wanted: fmt.Sprintf("simple value %v", want), Error: err}
978 }
979 if out.Equal(want) == types.True {
980 return successResult
981 }
982 if optOut, ok := out.(*types.Optional); ok {
983 if optOut.HasValue() && optOut.GetValue().Equal(want) == types.True {
984 return successResult
985 }
986 }
987 return TestResult{Success: false, Wanted: fmt.Sprintf("simple value %v", want), Error: fmt.Errorf("policy eval got %v", out)}
988
989 }, nil
990 }
991 if testOutput.ErrorSet != nil {
992 return func(out ref.Val, err error) TestResult {
993 failureResult := TestResult{Success: false, Wanted: fmt.Sprintf("error %v", testOutput.ErrorSet)}
994 if err == nil {
995 return failureResult
996 }
997 for _, want := range testOutput.ErrorSet {
998 if strings.Contains(err.Error(), want) {
999 return successResult
1000 }
1001 }
1002 return failureResult

Callers 1

createTestsFromYAMLMethod · 0.95

Calls 13

evalMethod · 0.95
IsUnknownFunction · 0.92
compareUnknownIDsFunction · 0.85
CELTypeAdapterMethod · 0.80
HasValueMethod · 0.80
GetValueMethod · 0.80
CreateEnvMethod · 0.65
NativeToValueMethod · 0.65
EqualMethod · 0.65
ContainsMethod · 0.65
IDsMethod · 0.65
ValueMethod · 0.65

Tested by

no test coverage detected