UNPKG

@nlighten/json-transform-core

Version:

Core types and utilities for handling JSON transformers

143 lines (142 loc) 3.73 kB
[ { "name": "primitives with duplicates", "given": { "input": ["a", "b", "b", "c", "b"], "definition": { "$$distinct": "$" } }, "expect": { "equal": ["a", "b", "c"] } }, { "name": "mixed primitives with duplicates", "given": { "input": ["a", 1, false, "b", "c", "b", 1, false, false], "definition": { "$$distinct": "$" } }, "expect": { "equal": ["a", 1, false, "b", "c"] } }, { "name": "primitives with nulls", "given": { "input": ["a", "a", null, null, "a", null], "definition": { "$$distinct": "$" } }, "expect": { "equal": ["a", null] } }, { "name": "objects with duplicates", "given": { "input": [{ "a": 1 }, { "a": 1 }, { "a": 1 }], "definition": { "$$distinct": "$" } }, "expect": { "equal": [{ "a": 1 }] } }, { "name": "arrays with duplicates", "given": { "input": [["a", 1], ["a", 2], ["a", 1], ["a", 1]], "definition": { "$$distinct": "$" } }, "expect": { "equal": [ ["a", 1], ["a", 2] ] } }, { "name": "objects with duplicates with by", "given": { "input": [{ "a": 1 }, { "a": 1 }, { "a": 1 }], "definition": { "$$distinct": "$", "by": "##current" } }, "expect": { "equal": [{ "a": 1 }] } }, { "name": "arrays with duplicates with by", "given": { "input": [["a", 1], ["a", 2], ["a", 1], ["a", 1]], "definition": { "$$distinct": "$", "by": "##current" } }, "expect": { "equal": [ ["a", 1], ["a", 2] ] } }, { "name": "withTransformation by a", "given": { "input": [{ "a": 1 }, { "a": 1, "b": 1 }, { "a": 1, "b": 2 }, { "a": 2, "b": 1 }], "definition": { "$$distinct": "$", "by": "##current.a" } }, "expect": { "equal": [{ "a": 1 }, { "a": 2, "b": 1 }] } }, { "name": "withTransformation by b", "given": { "input": [{ "a": 1 }, { "a": 1, "b": 1 }, { "a": 1, "b": 2 }, { "a": 2, "b": 1 }], "definition": { "$$distinct": "$", "by": "##current.b" } }, "expect": { "equal": [{ "a": 1 }, { "a": 1, "b": 1 }, { "a": 1, "b": 2 }] } }, { "name": "withTransformation without by and same arguments should stay the same", "given": { "input": [{ "a": 1 }, { "a": 1, "b": 1 }, { "a": 1, "b": 2 }, { "a": 2, "b": 1 }], "definition": { "$$distinct": "$" } }, "expect": { "equal": [{ "a": 1 }, { "a": 1, "b": 1 }, { "a": 1, "b": 2 }, { "a": 2, "b": 1 }] } }, { "name": "inline by a", "given": { "input": [{ "a": 1 }, { "a": 1, "b": 1 }, { "a": 1, "b": 2 }, { "a": 2, "b": 1 }], "definition": "$$distinct(##current.a):$" }, "expect": { "equal": [{ "a": 1 }, { "a": 2, "b": 1 }] } } ]