(t *testing.T)
| 1023 | } |
| 1024 | |
| 1025 | func TestStringFormatHeterogeneousLiterals(t *testing.T) { |
| 1026 | tests := []struct { |
| 1027 | expr string |
| 1028 | out string |
| 1029 | }{ |
| 1030 | { |
| 1031 | expr: `"list: %s".format([[[1, 2, [3.0, 4]]]])`, |
| 1032 | out: `list: [[1, 2, [3.000000, 4]]]`, |
| 1033 | }, |
| 1034 | { |
| 1035 | expr: `"list size: %d".format([[[1, 2, [3.0, 4]]].size()])`, |
| 1036 | out: `list size: 1`, |
| 1037 | }, |
| 1038 | { |
| 1039 | expr: `"list element: %s".format([[[1, 2, [3.0, 4]]][0]])`, |
| 1040 | out: `list element: [1, 2, [3.000000, 4]]`, |
| 1041 | }, |
| 1042 | } |
| 1043 | env, err := cel.NewEnv(Strings(StringsVersion(3)), cel.ASTValidators(cel.ValidateHomogeneousAggregateLiterals())) |
| 1044 | if err != nil { |
| 1045 | t.Fatalf("cel.NewEnv() failed: %v", err) |
| 1046 | } |
| 1047 | for _, tst := range tests { |
| 1048 | tc := tst |
| 1049 | t.Run(tc.expr, func(t *testing.T) { |
| 1050 | ast, iss := env.Compile(tc.expr) |
| 1051 | if iss.Err() != nil { |
| 1052 | t.Fatalf("env.Compile(%q) failed: %v", tc.expr, iss.Err()) |
| 1053 | } |
| 1054 | prg, err := env.Program(ast) |
| 1055 | if err != nil { |
| 1056 | t.Fatalf("env.Program() failed: %v", err) |
| 1057 | } |
| 1058 | out, _, err := prg.Eval(cel.NoVars()) |
| 1059 | if err != nil { |
| 1060 | t.Fatalf("Eval() failed: %v", err) |
| 1061 | } |
| 1062 | if out.Value() != tc.out { |
| 1063 | t.Errorf("Eval() got %v, wanted %v", out, tc.out) |
| 1064 | } |
| 1065 | }) |
| 1066 | } |
| 1067 | } |
| 1068 | |
| 1069 | func TestBadLocale(t *testing.T) { |
| 1070 | _, err := cel.NewEnv(Strings(StringsLocale("bad-locale"), StringsVersion(3))) |
nothing calls this directly
no test coverage detected