jsonlogic-hs-0.1.0.0: test/community/coalesce.json
[
"Test Specification for ??",
{
"description": "Coalesces a string alone",
"rule": { "??": ["hello"] },
"data": null,
"result": "hello"
},
{
"description": "Coalesces a number alone",
"rule": { "??": [1] },
"data": null,
"result": 1
},
{
"description": "Coalesces a boolean alone",
"rule": { "??": [true] },
"data": null,
"result": true
},
{
"description": "Coalesces an object from context alone",
"rule": { "??": [{ "val": "person" }]},
"data": { "person": { "name": "John" } },
"result": { "name": "John" }
},
{
"description": "Empty behavior",
"rule": { "??": [] },
"data": null,
"result": null
},
{
"description": "Coalesces a string with nulls before",
"rule": { "??": [null, "hello"] },
"data": null,
"result": "hello"
},
{
"description": "Coalesces a string with multiple nulls before",
"rule": { "??": [null, null, null, "hello"] },
"data": null,
"result": "hello"
},
{
"description": "Coalesces a string with nulls after",
"rule": { "??": ["hello", null] },
"data": null,
"result": "hello"
},
{
"description": "Coalesces a string with nulls both before and after",
"rule": { "??": [null, "hello", null] },
"data": null,
"result": "hello"
},
{
"description": "Coalesces a number with nulls both before and after",
"rule": { "??": [null, 1, null] },
"data": null,
"result": 1
},
{
"description": "Uses the first non-null value",
"rule": { "??": [null, 1, "hello"] },
"data": null,
"result": 1
},
{
"description": "Uses the first non-null value, even if it is false",
"rule": { "??": [null, false, "hello"] },
"data": null,
"result": false
},
{
"description": "Uses the first non-null value from context",
"rule": { "??": [{ "val": ["person", "name"] }, { "val": "name" }, "Unknown Name"] },
"data": { "person": { "name": "John" }, "name": "Jane" },
"result": "John"
},
{
"description": "Uses the first non-null value from context (with person undefined)",
"rule": { "??": [{ "val": ["person", "name"] }, { "val": "name" }, "Unknown Name"] },
"data": { "name": "Jane" },
"result": "Jane"
},
{
"description": "Uses the first non-null value from context (without any context)",
"rule": { "??": [{ "val": ["person", "name"] }, { "val": "name" }, "Unknown Name"] },
"data": {},
"result": "Unknown Name"
}
]