MCPcopy
hub / github.com/expr-lang/expr / TestRun_NilCoalescingOperator

Function TestRun_NilCoalescingOperator

expr_test.go:2123–2156  ·  view source on GitHub ↗

Nil coalescing operator

(t *testing.T)

Source from the content-addressed store, hash-verified

2121
2122// Nil coalescing operator
2123func TestRun_NilCoalescingOperator(t *testing.T) {
2124 env := map[string]any{
2125 "foo": map[string]any{
2126 "bar": "value",
2127 },
2128 }
2129
2130 t.Run("value", func(t *testing.T) {
2131 p, err := expr.Compile(`foo.bar ?? "default"`, expr.Env(env))
2132 assert.NoError(t, err)
2133
2134 out, err := expr.Run(p, env)
2135 assert.NoError(t, err)
2136 assert.Equal(t, "value", out)
2137 })
2138
2139 t.Run("default", func(t *testing.T) {
2140 p, err := expr.Compile(`foo.baz ?? "default"`, expr.Env(env))
2141 assert.NoError(t, err)
2142
2143 out, err := expr.Run(p, env)
2144 assert.NoError(t, err)
2145 assert.Equal(t, "default", out)
2146 })
2147
2148 t.Run("default with chain", func(t *testing.T) {
2149 p, err := expr.Compile(`foo?.bar ?? "default"`, expr.Env(env))
2150 assert.NoError(t, err)
2151
2152 out, err := expr.Run(p, map[string]any{})
2153 assert.NoError(t, err)
2154 assert.Equal(t, "default", out)
2155 })
2156}
2157
2158func TestEval_nil_in_maps(t *testing.T) {
2159 env := map[string]any{

Callers

nothing calls this directly

Calls 6

CompileFunction · 0.92
EnvStruct · 0.92
NoErrorFunction · 0.92
RunFunction · 0.92
EqualFunction · 0.92
RunMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…