1+ /*global Mocha, assert*/
12var Sinon = require ( "sinon" )
2- var stringify = require ( ".." )
3+ var stringify = require ( '../../vendor/json-stringify-safe/stringify' ) ;
4+
35function jsonify ( obj ) { return JSON . stringify ( obj , null , 2 ) }
46
57describe ( "Stringify" , function ( ) {
68 it ( "must stringify circular objects" , function ( ) {
79 var obj = { name : "Alice" }
810 obj . self = obj
911 var json = stringify ( obj , null , 2 )
10- json . must . eql ( jsonify ( { name : "Alice" , self : "[Circular ~]" } ) )
12+ assert . deepEqual ( json , jsonify ( { name : "Alice" , self : "[Circular ~]" } ) )
1113 } )
1214
1315 it ( "must stringify circular objects with intermediaries" , function ( ) {
1416 var obj = { name : "Alice" }
1517 obj . identity = { self : obj }
1618 var json = stringify ( obj , null , 2 )
17- json . must . eql ( jsonify ( { name : "Alice" , identity : { self : "[Circular ~]" } } ) )
19+ assert . deepEqual ( json , jsonify ( { name : "Alice" , identity : { self : "[Circular ~]" } } ) )
1820 } )
1921
2022 it ( "must stringify circular objects deeper" , function ( ) {
2123 var obj = { name : "Alice" , child : { name : "Bob" } }
2224 obj . child . self = obj . child
2325
24- stringify ( obj , null , 2 ) . must . eql ( jsonify ( {
26+ assert . deepEqual ( stringify ( obj , null , 2 ) , jsonify ( {
2527 name : "Alice" ,
2628 child : { name : "Bob" , self : "[Circular ~.child]" }
2729 } ) )
@@ -31,7 +33,7 @@ describe("Stringify", function() {
3133 var obj = { name : "Alice" , child : { name : "Bob" } }
3234 obj . child . identity = { self : obj . child }
3335
34- stringify ( obj , null , 2 ) . must . eql ( jsonify ( {
36+ assert . deepEqual ( stringify ( obj , null , 2 ) , jsonify ( {
3537 name : "Alice" ,
3638 child : { name : "Bob" , identity : { self : "[Circular ~.child]" } }
3739 } ) )
@@ -41,7 +43,7 @@ describe("Stringify", function() {
4143 var obj = { name : "Alice" }
4244 obj . self = [ obj , obj ]
4345
44- stringify ( obj , null , 2 ) . must . eql ( jsonify ( {
46+ assert . deepEqual ( stringify ( obj , null , 2 ) , jsonify ( {
4547 name : "Alice" , self : [ "[Circular ~]" , "[Circular ~]" ]
4648 } ) )
4749 } )
@@ -51,7 +53,7 @@ describe("Stringify", function() {
5153 obj . children [ 0 ] . self = obj . children [ 0 ]
5254 obj . children [ 1 ] . self = obj . children [ 1 ]
5355
54- stringify ( obj , null , 2 ) . must . eql ( jsonify ( {
56+ assert . deepEqual ( stringify ( obj , null , 2 ) , jsonify ( {
5557 name : "Alice" ,
5658 children : [
5759 { name : "Bob" , self : "[Circular ~.children.0]" } ,
@@ -65,15 +67,15 @@ describe("Stringify", function() {
6567 obj . push ( obj )
6668 obj . push ( obj )
6769 var json = stringify ( obj , null , 2 )
68- json . must . eql ( jsonify ( [ "[Circular ~]" , "[Circular ~]" ] ) )
70+ assert . deepEqual ( json , jsonify ( [ "[Circular ~]" , "[Circular ~]" ] ) )
6971 } )
7072
7173 it ( "must stringify circular arrays with intermediaries" , function ( ) {
7274 var obj = [ ]
7375 obj . push ( { name : "Alice" , self : obj } )
7476 obj . push ( { name : "Bob" , self : obj } )
7577
76- stringify ( obj , null , 2 ) . must . eql ( jsonify ( [
78+ assert . deepEqual ( stringify ( obj , null , 2 ) , jsonify ( [
7779 { name : "Alice" , self : "[Circular ~]" } ,
7880 { name : "Bob" , self : "[Circular ~]" }
7981 ] ) )
@@ -85,7 +87,7 @@ describe("Stringify", function() {
8587 obj . alice1 = alice
8688 obj . alice2 = alice
8789
88- stringify ( obj , null , 2 ) . must . eql ( jsonify ( {
90+ assert . deepEqual ( stringify ( obj , null , 2 ) , jsonify ( {
8991 alice1 : { name : "Alice" } ,
9092 alice2 : { name : "Alice" }
9193 } ) )
@@ -95,7 +97,7 @@ describe("Stringify", function() {
9597 var alice = { name : "Alice" }
9698 var obj = [ alice , alice ]
9799 var json = stringify ( obj , null , 2 )
98- json . must . eql ( jsonify ( [ { name : "Alice" } , { name : "Alice" } ] ) )
100+ assert . deepEqual ( json , jsonify ( [ { name : "Alice" } , { name : "Alice" } ] ) )
99101 } )
100102
101103 it ( "must call given decycler and use its output" , function ( ) {
@@ -105,36 +107,36 @@ describe("Stringify", function() {
105107
106108 var decycle = Sinon . spy ( function ( ) { return decycle . callCount } )
107109 var json = stringify ( obj , null , 2 , decycle )
108- json . must . eql ( jsonify ( { a : 1 , b : 2 } , null , 2 ) )
110+ assert . deepEqual ( json , jsonify ( { a : 1 , b : 2 } , null , 2 ) )
109111
110- decycle . callCount . must . equal ( 2 )
111- decycle . thisValues [ 0 ] . must . equal ( obj )
112- decycle . args [ 0 ] [ 0 ] . must . equal ( "a" )
113- decycle . args [ 0 ] [ 1 ] . must . equal ( obj )
114- decycle . thisValues [ 1 ] . must . equal ( obj )
115- decycle . args [ 1 ] [ 0 ] . must . equal ( "b" )
116- decycle . args [ 1 ] [ 1 ] . must . equal ( obj )
112+ assert . strictEqual ( decycle . callCount , 2 )
113+ assert . strictEqual ( decycle . thisValues [ 0 ] , obj )
114+ assert . strictEqual ( decycle . args [ 0 ] [ 0 ] , "a" )
115+ assert . strictEqual ( decycle . args [ 0 ] [ 1 ] , obj )
116+ assert . strictEqual ( decycle . thisValues [ 1 ] , obj )
117+ assert . strictEqual ( decycle . args [ 1 ] [ 0 ] , "b" )
118+ assert . strictEqual ( decycle . args [ 1 ] [ 1 ] , obj )
117119 } )
118120
119121 it ( "must call replacer and use its output" , function ( ) {
120122 var obj = { name : "Alice" , child : { name : "Bob" } }
121123
122124 var replacer = Sinon . spy ( bangString )
123125 var json = stringify ( obj , replacer , 2 )
124- json . must . eql ( jsonify ( { name : "Alice!" , child : { name : "Bob!" } } ) )
125-
126- replacer . callCount . must . equal ( 4 )
127- replacer . args [ 0 ] [ 0 ] . must . equal ( "" )
128- replacer . args [ 0 ] [ 1 ] . must . equal ( obj )
129- replacer . thisValues [ 1 ] . must . equal ( obj )
130- replacer . args [ 1 ] [ 0 ] . must . equal ( "name" )
131- replacer . args [ 1 ] [ 1 ] . must . equal ( "Alice" )
132- replacer . thisValues [ 2 ] . must . equal ( obj )
133- replacer . args [ 2 ] [ 0 ] . must . equal ( "child" )
134- replacer . args [ 2 ] [ 1 ] . must . equal ( obj . child )
135- replacer . thisValues [ 3 ] . must . equal ( obj . child )
136- replacer . args [ 3 ] [ 0 ] . must . equal ( "name" )
137- replacer . args [ 3 ] [ 1 ] . must . equal ( "Bob" )
126+ assert . deepEqual ( json , jsonify ( { name : "Alice!" , child : { name : "Bob!" } } ) )
127+
128+ assert . strictEqual ( replacer . callCount , 4 )
129+ assert . strictEqual ( replacer . args [ 0 ] [ 0 ] , "" )
130+ assert . strictEqual ( replacer . args [ 0 ] [ 1 ] , obj )
131+ assert . strictEqual ( replacer . thisValues [ 1 ] , obj )
132+ assert . strictEqual ( replacer . args [ 1 ] [ 0 ] , "name" )
133+ assert . strictEqual ( replacer . args [ 1 ] [ 1 ] , "Alice" )
134+ assert . strictEqual ( replacer . thisValues [ 2 ] , obj )
135+ assert . strictEqual ( replacer . args [ 2 ] [ 0 ] , "child" )
136+ assert . strictEqual ( replacer . args [ 2 ] [ 1 ] , obj . child )
137+ assert . strictEqual ( replacer . thisValues [ 3 ] , obj . child )
138+ assert . strictEqual ( replacer . args [ 3 ] [ 0 ] , "name" )
139+ assert . strictEqual ( replacer . args [ 3 ] [ 1 ] , "Bob" )
138140 } )
139141
140142 it ( "must call replacer after describing circular references" , function ( ) {
@@ -143,17 +145,17 @@ describe("Stringify", function() {
143145
144146 var replacer = Sinon . spy ( bangString )
145147 var json = stringify ( obj , replacer , 2 )
146- json . must . eql ( jsonify ( { name : "Alice!" , self : "[Circular ~]!" } ) )
148+ assert . deepEqual ( json , jsonify ( { name : "Alice!" , self : "[Circular ~]!" } ) )
147149
148- replacer . callCount . must . equal ( 3 )
149- replacer . args [ 0 ] [ 0 ] . must . equal ( "" )
150- replacer . args [ 0 ] [ 1 ] . must . equal ( obj )
151- replacer . thisValues [ 1 ] . must . equal ( obj )
152- replacer . args [ 1 ] [ 0 ] . must . equal ( "name" )
153- replacer . args [ 1 ] [ 1 ] . must . equal ( "Alice" )
154- replacer . thisValues [ 2 ] . must . equal ( obj )
155- replacer . args [ 2 ] [ 0 ] . must . equal ( "self" )
156- replacer . args [ 2 ] [ 1 ] . must . equal ( "[Circular ~]" )
150+ assert . strictEqual ( replacer . callCount , 3 )
151+ assert . strictEqual ( replacer . args [ 0 ] [ 0 ] , "" )
152+ assert . strictEqual ( replacer . args [ 0 ] [ 1 ] , obj )
153+ assert . strictEqual ( replacer . thisValues [ 1 ] , obj )
154+ assert . strictEqual ( replacer . args [ 1 ] [ 0 ] , "name" )
155+ assert . strictEqual ( replacer . args [ 1 ] [ 1 ] , "Alice" )
156+ assert . strictEqual ( replacer . thisValues [ 2 ] , obj )
157+ assert . strictEqual ( replacer . args [ 2 ] [ 0 ] , "self" )
158+ assert . strictEqual ( replacer . args [ 2 ] [ 1 ] , "[Circular ~]" )
157159 } )
158160
159161 it ( "must call given decycler and use its output for nested objects" ,
@@ -164,13 +166,13 @@ describe("Stringify", function() {
164166
165167 var decycle = Sinon . spy ( function ( ) { return decycle . callCount } )
166168 var json = stringify ( obj , null , 2 , decycle )
167- json . must . eql ( jsonify ( { a : 1 , b : { self : 2 } } ) )
169+ assert . deepEqual ( json , jsonify ( { a : 1 , b : { self : 2 } } ) )
168170
169- decycle . callCount . must . equal ( 2 )
170- decycle . args [ 0 ] [ 0 ] . must . equal ( "a" )
171- decycle . args [ 0 ] [ 1 ] . must . equal ( obj )
172- decycle . args [ 1 ] [ 0 ] . must . equal ( "self" )
173- decycle . args [ 1 ] [ 1 ] . must . equal ( obj )
171+ assert . strictEqual ( decycle . callCount , 2 )
172+ assert . strictEqual ( decycle . args [ 0 ] [ 0 ] , "a" )
173+ assert . strictEqual ( decycle . args [ 0 ] [ 1 ] , obj )
174+ assert . strictEqual ( decycle . args [ 1 ] [ 0 ] , "self" )
175+ assert . strictEqual ( decycle . args [ 1 ] [ 1 ] , obj )
174176 } )
175177
176178 it ( "must use decycler's output when it returned null" , function ( ) {
@@ -179,7 +181,7 @@ describe("Stringify", function() {
179181 obj . selves = [ obj , obj ]
180182
181183 function decycle ( ) { return null }
182- stringify ( obj , null , 2 , decycle ) . must . eql ( jsonify ( {
184+ assert . deepEqual ( stringify ( obj , null , 2 , decycle ) , jsonify ( {
183185 a : "b" ,
184186 self : null ,
185187 selves : [ null , null ]
@@ -192,7 +194,7 @@ describe("Stringify", function() {
192194 obj . selves = [ obj , obj ]
193195
194196 function decycle ( ) { }
195- stringify ( obj , null , 2 , decycle ) . must . eql ( jsonify ( {
197+ assert . deepEqual ( stringify ( obj , null , 2 , decycle ) , jsonify ( {
196198 a : "b" ,
197199 selves : [ null , null ]
198200 } ) )
@@ -204,7 +206,7 @@ describe("Stringify", function() {
204206 var err
205207 function identity ( key , value ) { return value }
206208 try { stringify ( obj , null , 2 , identity ) } catch ( ex ) { err = ex }
207- err . must . be . an . instanceof ( TypeError )
209+ assert . ok ( err instanceof TypeError )
208210 } )
209211
210212 describe ( ".getSerialize" , function ( ) {
@@ -214,7 +216,7 @@ describe("Stringify", function() {
214216 obj . list = [ obj , obj ]
215217
216218 var json = JSON . stringify ( obj , stringify . getSerialize ( ) , 2 )
217- json . must . eql ( jsonify ( {
219+ assert . deepEqual ( json , jsonify ( {
218220 "a" : "b" ,
219221 "circularRef" : "[Circular ~]" ,
220222 "list" : [ "[Circular ~]" , "[Circular ~]" ]
@@ -233,10 +235,10 @@ describe("Stringify", function() {
233235 var serializer = stringify . getSerialize ( )
234236
235237 json = JSON . stringify ( obj , serializer , 2 )
236- json . must . eql ( jsonify ( { name : "Alice" , self : "[Circular ~]" } ) )
238+ assert . deepEqual ( json , jsonify ( { name : "Alice" , self : "[Circular ~]" } ) )
237239
238240 json = JSON . stringify ( obj , serializer , 2 )
239- json . must . eql ( jsonify ( { name : "Alice" , self : "[Circular ~]" } ) )
241+ assert . deepEqual ( json , jsonify ( { name : "Alice" , self : "[Circular ~]" } ) )
240242 } )
241243 } )
242244} )
0 commit comments