packages feed

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"
    }
]