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