diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/tests/var.extra.json b/tests/var.extra.json new file mode 100644 index 0000000..58e010a --- /dev/null +++ b/tests/var.extra.json @@ -0,0 +1,74 @@ +[ + { + "description": "var returns false when key exists with false value", + "rule": { "var": "active" }, + "data": { "active": false }, + "result": false + }, + { + "description": "var returns 0 when key exists with 0 value", + "rule": { "var": "count" }, + "data": { "count": 0 }, + "result": 0 + }, + { + "description": "var returns empty string when key exists with empty string", + "rule": { "var": "name" }, + "data": { "name": "" }, + "result": "" + }, + { + "description": "var with default does NOT use default when value is false", + "rule": { "var": ["active", true] }, + "data": { "active": false }, + "result": false + }, + { + "description": "var with default does NOT use default when value is 0", + "rule": { "var": ["count", 99] }, + "data": { "count": 0 }, + "result": 0 + }, + { + "description": "var with default does NOT use default when value is empty string", + "rule": { "var": ["name", "anonymous"] }, + "data": { "name": "" }, + "result": "" + }, + { + "description": "var with default DOES use default when key is missing", + "rule": { "var": ["missing", "default"] }, + "data": { "other": "value" }, + "result": "default" + }, + { + "description": "nested var returns false from nested path", + "rule": { "var": "user.active" }, + "data": { "user": { "active": false } }, + "result": false + }, + { + "description": "nested var returns 0 from nested path", + "rule": { "var": "user.score" }, + "data": { "user": { "score": 0 } }, + "result": 0 + }, + { + "description": "equality check with false value from var", + "rule": { "==": [{ "var": "is_beta" }, false] }, + "data": { "is_beta": false }, + "result": true + }, + { + "description": "negation of false value from var", + "rule": { "!": [{ "var": "disabled" }] }, + "data": { "disabled": false }, + "result": true + }, + { + "description": "and with false value from var", + "rule": { "and": [{ "var": "enabled" }, true] }, + "data": { "enabled": false }, + "result": false + } +]