@@ -2,7 +2,9 @@ const test = require('ava')
22const {
33 isFunction, isObject, isString, isArray
44} = require ( 'core-util-is' )
5- const { parse, stringify} = require ( '../src' )
5+ const { parse, stringify, assign} = require ( '../src' )
6+
7+ const st = o => stringify ( o , null , 2 )
68
79const a1 = `[
810 // 0
@@ -20,6 +22,11 @@ const a2 = `[
2022 2
2123]`
2224
25+ const a3 = `[
26+ // 0
27+ 0
28+ ]`
29+
2330// ret: return value to expect
2431const texpect = ( t , ret , str , r , rr ) => {
2532 if ( isObject ( ret ) ) {
@@ -31,7 +38,7 @@ const texpect = (t, ret, str, r, rr) => {
3138 if ( isString ( rr ) ) {
3239 t . is ( rr , str )
3340 } else {
34- t . is ( stringify ( rr , null , 2 ) , str )
41+ t . is ( st ( rr ) , str )
3542 }
3643}
3744
@@ -102,10 +109,13 @@ const CASES = [
102109 'slice(0, - 2)' ,
103110 a1 ,
104111 array => array . slice ( 0 , - 2 ) ,
105- slice ( [ 0 ] , `[
106- // 0
107- 0
108- ]` )
112+ slice ( [ 0 ] , a3 )
113+ ] ,
114+ [
115+ 'slice(0, 1)' ,
116+ a1 ,
117+ array => array . slice ( 0 , 1 ) ,
118+ slice ( [ 0 ] , a3 )
109119 ] ,
110120 [
111121 'unshift()' ,
@@ -138,19 +148,30 @@ const CASES = [
138148 2
139149]` )
140150 ] ,
141- // [
142- // 'reverse',
143- // a1,
144- // array => array.reverse(),
145- // unshift([2, 1, 0], `[
146- // // 2
147- // 2,
148- // // 1
149- // 1,
150- // // 0
151- // 0
152- // ]`)
153- // ]
151+ [
152+ 'reverse' ,
153+ a1 ,
154+ array => array . reverse ( ) ,
155+ unshift ( [ 2 , 1 , 0 ] , `[
156+ // 2
157+ 2,
158+ // 1
159+ 1,
160+ // 0
161+ 0
162+ ]` )
163+ ] ,
164+ [
165+ 'pop' ,
166+ a1 ,
167+ array => array . pop ( ) ,
168+ unshift ( 2 , `[
169+ // 0
170+ 0,
171+ // 1
172+ 1
173+ ]` )
174+ ]
154175]
155176
156177CASES . forEach ( ( [ d , a , run , e , s ] ) => {
@@ -171,6 +192,28 @@ CASES.forEach(([d, a, run, e, s]) => {
171192 // clean ret
172193 ? [ ...ret ]
173194 : ret ,
174- stringify ( parsed , null , 2 ) , parsed , ret )
195+ st ( parsed ) , parsed , ret )
175196 } )
176197} )
198+
199+ test ( 'assign' , t => {
200+ const str = `{
201+ // a
202+ "a": 1,
203+ // b
204+ "b": 2
205+ }`
206+
207+ const parsed = parse ( str )
208+
209+ t . is ( st ( assign ( { } , parsed ) ) , str )
210+ t . is ( st ( assign ( { } ) ) , '{}' )
211+
212+ t . is ( st ( assign ( { } , parsed , [ 'a' , 'c' ] ) ) , `{
213+ // a
214+ "a": 1
215+ }` )
216+
217+ t . throws ( ( ) => assign ( { } , parsed , false ) , / k e y s / )
218+ t . throws ( ( ) => assign ( ) , / c o n v e r t / )
219+ } )
0 commit comments