deno.land / x / rambda@v9.1.1 / source / sortObject.spec.js

sortObject.spec.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { runTests } from 'helpers-fn'
import { allTrue } from './allTrue.js'import { equals } from './equals.js'import { sortObject } from './sortObject.js'
const obj = { c : 1, a : 2, b : 3,}
const predicateA = ( propA, propB, valueA, valueB) => propA > propB ? -1 : 1
const expectationA = [ 'c', 'b', 'a' ]
const predicateB = ( propA, propB, valueA, valueB) => propA < propB ? -1 : 1const expectationB = [ 'a', 'b', 'c' ]const predicateC = ( propA, propB, valueA, valueB) => valueA > valueB ? -1 : 1const expectationC = [ 'b', 'a', 'c' ]
const fn = ([ predicate, expectation ]) => { const result = sortObject(predicate, obj) const curriedResult = sortObject(predicate)(obj) const sortedKeys = Object.keys(result) const sortedKeysCurried = Object.keys(curriedResult) const isSameObject = equals(obj, result) const isSameObjectCurried = equals(obj, curriedResult)
return allTrue( isSameObject, isSameObjectCurried, equals(sortedKeys, expectation), equals(sortedKeysCurried, expectation) )}
const testData = { label : 'foo', data : [ { ok : [ predicateA, expectationA ] }, { ok : [ predicateB, expectationB ] }, { ok : [ predicateC, expectationC ] }, ], fn,}
runTests(testData)
rambda

Version Info

Tagged at
2 months ago