1
1
const assert = require ( 'assert' )
2
2
const { describe, it } = require ( 'mocha' ) ;
3
- const { handleNested, reduceArray, reduceObject, commonReduceLogic } = require ( './de_nest.js' )
4
- const { varInfo, updatePv, ecma2015ArrMerge } = require ( './js_nest_helpers.js' )
3
+ const { flattenAnything , handleNested, reduceArray, reduceObject, commonReduceLogic } = require ( './de_nest.js' )
4
+ const { varInfo, updatePv, ecma2015ArrMerge, convertObjectToArrays } = require ( './js_nest_helpers.js' )
5
5
6
6
const obj = { a : 7 , b : 2 , c : { value :3 } } ;
7
7
describe ( 'sanity' , ( ) => {
@@ -18,12 +18,23 @@ describe('de-nest is working properly for', () => {
18
18
const arr = [ 7 , undefined , { value : undefined , value2 : 4 } , 1 , 2 , 3 , 4 ] ;
19
19
const obj = { a : 7 , b : 2 , c : { value :3 } } ;
20
20
21
+ it ( 'flattenAnything, evaluate an array as an array' , ( ) => {
22
+ assert . equal (
23
+ JSON . stringify ( flattenAnything ( { arr} ) ) ,
24
+ '{"keys":["arr[0]","arr[2].value2","arr[3]","arr[4]","arr[5]","arr[6]"],"values":[7,4,1,2,3,4]}'
25
+ ) ;
26
+ } )
27
+
21
28
it ( 'handleNested, evaluate an array as an array' , ( ) => {
22
- assert . equal ( JSON . stringify ( handleNested ( { arr} ) ) , '{"arr[0]":7,"arr[2].value2":4,"arr[3]":1,"arr[4]":2,"arr[5]":3,"arr[6]":4}' ) ;
29
+ assert . equal (
30
+ JSON . stringify ( handleNested ( { arr} ) ) ,
31
+ '{"arr[0]":7,"arr[2].value2":4,"arr[3]":1,"arr[4]":2,"arr[5]":3,"arr[6]":4}'
32
+ ) ;
23
33
} )
24
34
25
35
it ( 'reduce array method should give array syntax top level with either as it nests deeper' , ( ) => {
26
- assert . equal ( JSON . stringify ( reduceArray ( [ 'arr' , arr ] ) ) , '{"arr[0]":7,"arr[2].value2":4,"arr[3]":1,"arr[4]":2,"arr[5]":3,"arr[6]":4}' ) ;
36
+ assert . equal ( JSON . stringify ( reduceArray ( [ 'arr' , arr ] ) ) ,
37
+ '{"arr[0]":7,"arr[2].value2":4,"arr[3]":1,"arr[4]":2,"arr[5]":3,"arr[6]":4}' ) ;
27
38
} )
28
39
29
40
it ( 'reduce a array method should not give object syntax top level' , ( ) => {
@@ -39,6 +50,10 @@ describe('de-nest is working properly for', () => {
39
50
const obj = { a : 7 , b : 2 , c : { value :3 } } ;
40
51
const arr = [ 7 , undefined , { value : undefined , value2 : 4 } , 1 , 2 , 3 , 4 ] ;
41
52
53
+ it ( 'flattenAnything, evaluate an object as an object' , ( ) => {
54
+ assert . equal ( JSON . stringify ( flattenAnything ( { obj} ) ) , '{"keys":["obj.a","obj.b","obj.c.value"],"values":[7,2,3]}' ) ;
55
+ } )
56
+
42
57
it ( 'handleNested, evaluate an object as an object' , ( ) => {
43
58
assert . equal ( JSON . stringify ( handleNested ( { obj} ) ) , '{"obj.a":7,"obj.b":2,"obj.c.value":3}' ) ;
44
59
} )
@@ -60,4 +75,9 @@ describe('de-nest is working properly for', () => {
60
75
assert . equal ( JSON . stringify ( ecma2015ArrMerge ( mergeObj1 , mergeObj2 ) ) , '{"c":{"value":3},"d":2,"a":7,"b":2}' ) ;
61
76
} )
62
77
} )
63
- } )
78
+
79
+ describe ( '#convert' , ( ) => {
80
+ const obj = { "obj.a" :7 , "obj.b" :2 , "obj.c.value" :3 }
81
+ assert . equal ( JSON . stringify ( convertObjectToArrays ( obj ) ) , '{"keys":["obj.a","obj.b","obj.c.value"],"values":[7,2,3]}' )
82
+ } )
83
+ } )
0 commit comments