| 1528 | } |
| 1529 | |
| 1530 | func TestExpr_optional_chaining_nested_chains(t *testing.T) { |
| 1531 | env := map[string]any{ |
| 1532 | "foo": map[string]any{ |
| 1533 | "id": 1, |
| 1534 | "bar": []map[string]any{ |
| 1535 | 1: { |
| 1536 | "baz": "baz", |
| 1537 | }, |
| 1538 | }, |
| 1539 | }, |
| 1540 | } |
| 1541 | program, err := expr.Compile("foo?.bar[foo?.id]?.baz", expr.Env(env)) |
| 1542 | require.NoError(t, err) |
| 1543 | |
| 1544 | got, err := expr.Run(program, env) |
| 1545 | require.NoError(t, err) |
| 1546 | assert.Equal(t, "baz", got) |
| 1547 | } |
| 1548 | |
| 1549 | func TestExpr_optional_chaining_array(t *testing.T) { |
| 1550 | env := map[string]any{} |