Fixed unit tests
This commit is contained in:
parent
41a7069398
commit
e2ffd04e6e
|
@ -23,9 +23,6 @@ it('sort root Array (json)', () => {
|
|||
const sorted2 = immutableJSONPatch(json, sort(json, [], 'asc')).json
|
||||
const sorted3 = immutableJSONPatch(json, sort(json, [], 'desc')).json
|
||||
|
||||
console.log(json)
|
||||
console.log(sorted1)
|
||||
|
||||
assertEqualEson(json, [1,3, 2]) // should be untouched
|
||||
assertEqualEson(sorted1, [1,2,3])
|
||||
assertEqualEson(sorted2, [1,2,3])
|
||||
|
|
|
@ -428,13 +428,14 @@ export function findSelectionIndices (root, rootPath, selection) {
|
|||
const end = (selection.after || selection.inside || selection.end)[rootPath.length]
|
||||
|
||||
// if no object we assume it's an Array
|
||||
const props = Object.keys(root).sort(naturalSort) // TODO: create a util function getSortedProps
|
||||
const startIndex = root[TYPE] === 'object' ? props.indexOf(start) : parseInt(start, 10)
|
||||
const endIndex = root[TYPE] === 'object' ? props.indexOf(end) : parseInt(end, 10)
|
||||
// TODO: create a util function getSortedProps, cache results?
|
||||
const rootIsObject = getType(root) === 'object'
|
||||
const props = rootIsObject ? Object.keys(root).sort(naturalSort) : undefined
|
||||
const startIndex = rootIsObject ? props.indexOf(start) : parseInt(start, 10)
|
||||
const endIndex = rootIsObject ? props.indexOf(end) : parseInt(end, 10)
|
||||
|
||||
const minIndex = Math.min(startIndex, endIndex)
|
||||
const maxIndex = Math.max(startIndex, endIndex) +
|
||||
((selection.after || selection.inside) ? 0 : 1) // include max index itself
|
||||
const maxIndex = Math.max(startIndex, endIndex) + ((selection.after || selection.inside) ? 0 : 1) // include max index itself
|
||||
|
||||
return { minIndex, maxIndex }
|
||||
}
|
||||
|
@ -519,8 +520,9 @@ export function pathsFromSelection (eson, selection) {
|
|||
|
||||
const { minIndex, maxIndex } = findSelectionIndices(root, rootPath, selection)
|
||||
|
||||
if (root[TYPE] === 'object') {
|
||||
if (getType(root) === 'object') {
|
||||
const props = Object.keys(root).sort(naturalSort) // TODO: create a util function getSortedProps
|
||||
|
||||
return times(maxIndex - minIndex, i => rootPath.concat(props[i + minIndex]))
|
||||
}
|
||||
else { // root[TYPE] === 'array'
|
||||
|
@ -550,6 +552,10 @@ export function getType (any) {
|
|||
return 'undefined'
|
||||
}
|
||||
|
||||
if (any && any[TYPE]) {
|
||||
return any[TYPE]
|
||||
}
|
||||
|
||||
if (Array.isArray(any)) {
|
||||
return 'array'
|
||||
}
|
||||
|
|
|
@ -447,12 +447,12 @@ test('selection (node)', () => {
|
|||
|
||||
test('pathsFromSelection (object)', () => {
|
||||
const json = {
|
||||
"bool": false,
|
||||
"nill": null,
|
||||
"obj": {
|
||||
"arr": [1,2, {"first":3,"last":4}]
|
||||
},
|
||||
"str": "hello world",
|
||||
"nill": null,
|
||||
"bool": false
|
||||
}
|
||||
const selection = {
|
||||
start: ['obj', 'arr', '2', 'last'],
|
||||
|
@ -460,9 +460,8 @@ test('pathsFromSelection (object)', () => {
|
|||
}
|
||||
|
||||
expect(pathsFromSelection(json, selection)).toEqual([
|
||||
['obj'],
|
||||
['str'],
|
||||
['nill']
|
||||
['nill'],
|
||||
['obj']
|
||||
])
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue