UNPKG

@nlighten/json-transform-core

Version:

Core types and utilities for handling JSON transformers

354 lines (353 loc) 9.57 kB
[ { "name": "object - strings (no args) - auto detect type", "given": { "input": ["c", "a", "b"], "definition": { "$$sort": "$" } }, "expect": { "equal": ["a", "b", "c"] } }, { "name": "object - numbers (no args) - auto detect type", "given": { "input": [3, 1, 2], "definition": { "$$sort": "$" } }, "expect": { "equal": [1, 2, 3] } }, { "name": "object - strings (order=desc) - auto detect type", "given": { "input": ["c", "a", "b"], "definition": { "$$sort": "$", "order": "desc" } }, "expect": { "equal": ["c", "b", "a"] } }, { "name": "object - strings (order*=desc) - auto detect type", "given": { "input": [["c", "a", "b"], null, "desc"], "definition": { "$$sort": "$[0]", "order": "$[2]" } }, "expect": { "equal": ["c", "b", "a"] } }, { "name": "object - numbers (type=number)", "given": { "input": [4, 2, 1, 3], "definition": { "$$sort": "$", "type": "number" } }, "expect": { "equal": [1, 2, 3, 4] } }, { "name": "object - numbers (type=number,order=desc)", "given": { "input": [4, 2, 1, 3], "definition": { "$$sort": "$", "type": "number", "order": "desc" } }, "expect": { "equal": [4, 3, 2, 1] } }, { "name": "object - booleans (type=boolean)", "given": { "input": [false, false, true], "definition": { "$$sort": "$", "type": "boolean" } }, "expect": { "equal": [false, false, true] } }, { "name": "object - booleans (type=boolean,order=desc)", "given": { "input": [false, false, true], "definition": { "$$sort": "$", "type": "boolean", "order": "desc" } }, "expect": { "equal": [true, false, false] } }, { "name": "object - objects (by=##current.name)", "given": { "input": [ { "name": "Dan" }, { "name": "Alice" }, { "name": "Carl" }, { "name": "Bob" } ], "definition": { "$$sort": "$", "by": "##current.name" } }, "expect": { "equal": [ { "name": "Alice" }, { "name": "Bob" }, { "name": "Carl" }, { "name": "Dan" } ] } }, { "name": "object - objects (type=string,by=##current.name,order=desc)", "given": { "input": [ { "name": "Dan" }, { "name": "Alice" }, { "name": "Carl" }, { "name": "Bob" } ], "definition": { "$$sort": "$", "type": "string", "order": "desc", "by": "##current.name" } }, "expect": { "equal": [ { "name": "Dan" }, { "name": "Carl" }, { "name": "Bob" }, { "name": "Alice" } ] } }, { "name": "inline - strings (no args) - auto detect type", "given": { "input": ["c", "a", "b"], "definition": "$$sort:$" }, "expect": { "equal": ["a", "b", "c"] } }, { "name": "inline - numbers (no args) - auto detect type", "given": { "input": [3, 1, 2], "definition": "$$sort:$" }, "expect": { "equal": [1, 2, 3] } }, { "name": "inline - strings (##current,DESC) - auto detect type", "given": { "input": ["c", "a", "b"], "definition": "$$sort(##current,DESC):$" }, "expect": { "equal": ["c", "b", "a"] } }, { "name": "inline - strings (##current,$[2]) - auto detect type", "given": { "input": [["c", "a", "b"], null, "desc"], "definition": "$$sort(##current,$[2]):$[0]" }, "expect": { "equal": ["c", "b", "a"] } }, { "name": "inline - numbers (##current,ASC,NUMBER)", "given": { "input": [4, 2, 1, 3], "definition": "$$sort(##current,ASC,NUMBER):$" }, "expect": { "equal": [1, 2, 3, 4] } }, { "name": "inline - numbers (##current,DESC,NUMBER)", "given": { "input": [4, 2, 1, 3], "definition": "$$sort(##current,DESC,NUMBER):$" }, "expect": { "equal": [4, 3, 2, 1] } }, { "name": "inline - booleans (##current,ASC,BOOLEAN)", "given": { "input": [false, false, true], "definition": "$$sort(##current,ASC,BOOLEAN):$" }, "expect": { "equal": [false, false, true] } }, { "name": "inline - booleans (##current,DESC,BOOLEAN)", "given": { "input": [false, false, true], "definition": "$$sort(##current,DESC,BOOLEAN):$" }, "expect": { "equal": [true, false, false] } }, { "name": "inline - objects (##current.name)", "given": { "input": [ { "name": "Dan" }, { "name": "Alice" }, { "name": "Carl" }, { "name": "Bob" } ], "definition": "$$sort(##current.name):$" }, "expect": { "equal": [ { "name": "Alice" }, { "name": "Bob" }, { "name": "Carl" }, { "name": "Dan" } ] } }, { "name": "inline - objects (##current.name,DESC,STRING)", "given": { "input": [ { "name": "Dan" }, { "name": "Alice" }, { "name": "Carl" }, { "name": "Bob" } ], "definition": "$$sort(##current.name,DESC,STRING):$" }, "expect": { "equal": [ { "name": "Dan" }, { "name": "Carl" }, { "name": "Bob" }, { "name": "Alice" } ] } }, { "name": "object - strings (by=func())", "given": { "input": ["A2", "B3", "C2", "D4", "B1", "B2", "D1"], "definition": { "$$sort": "$", "by": "$$substring(0,1):##current" } }, "expect": { "equal": ["A2", "B3", "B1", "B2", "C2", "D4", "D1"] } }, { "name": "object - strings (by=func(),then=by...)", "given": { "input": ["A2", "B3", "C2", "D4", "B1", "B2", "D1"], "definition": { "$$sort": "$", "by": "$$substring(0,1):##current", "then": [ { "by": "$$long:$$substring(-1):##current" } ] } }, "expect": { "equal": ["A2", "B1", "B2", "B3", "C2", "D1", "D4"] } }, { "name": "object - strings (by=func(),then=by(desc)...)", "given": { "input": ["A2", "B3", "C2", "D4", "B1", "B2", "D1"], "definition": { "$$sort": "$", "by": "$$substring(0,1):##current", "then": [ { "by": "$$long:$$substring(-1):##current", "order": "DESC" } ] } }, "expect": { "equal": ["A2", "B3", "B2", "B1", "C2", "D4", "D1"] } }, { "name": "object - strings (by=func(),order=desc,then=by(asc)...)", "given": { "input": ["A2", "B3", "C2", "D4", "B1", "B2", "D1"], "definition": { "$$sort": "$", "by": "$$substring(0,1):##current", "order": "DESC", "then": [ { "by": "$$long:$$substring(-1):##current", "order": "ASC" } ] } }, "expect": { "equal": ["D1", "D4", "C2", "B1", "B2", "B3", "A2"] } }, { "name": "object - strings (by=func(),order=desc,then=by(desc)..)", "given": { "input": ["A2", "B3", "C2", "D4", "B1", "B2", "D1"], "definition": { "$$sort": "$", "by": "$$substring(0,1):##current", "order": "DESC", "then": [ { "by": "$$long:$$substring(-1):##current", "order": "DESC" } ] } }, "expect": { "equal": ["D4", "D1", "C2", "B3", "B2", "B1", "A2"] } } ]