1+ const chai = require ( 'chai' ) ;
2+ const index = require ( './index' ) ;
3+ const expect = chai . expect ;
4+ chai . should ( ) ;
5+
6+ describe ( 'asc & desc tests' , ( ) => {
7+ let json0 , json1 , json2 , json3 ;
8+ before ( ( ) => {
9+ json0 = {
10+ "go" : 0 ,
11+ "zebra" : 0 ,
12+ "apple" : 0 ,
13+ "mango" : 0
14+ } ;
15+ json1 = {
16+ "go" : 0 ,
17+ "zebra" : {
18+ "demons" : 0 ,
19+ "kettles" : 0 ,
20+ "blues" : 0
21+ } ,
22+ "apple" : 0 ,
23+ "mango" : 0
24+ } ;
25+ json2 = {
26+ "go" : 0 ,
27+ "zebra" : {
28+ "demons" : 0 ,
29+ "kettles" : 0 ,
30+ "blues" : {
31+ "road" : 0 ,
32+ "monster" : 0 ,
33+ "useless" : 0
34+ }
35+ } ,
36+ "apple" : 0 ,
37+ "mango" : 0
38+ } ;
39+ json3 = {
40+ "go" : 0 ,
41+ "zebra" : {
42+ "demons" : 0 ,
43+ "kettles" : 0 ,
44+ "blues" : {
45+ "road" : 0 ,
46+ "monster" : {
47+ "ghost" : 0 ,
48+ "scotland" : 0 ,
49+ "looming" : 0
50+ } ,
51+ "useless" : 0
52+ }
53+ } ,
54+ "apple" : 0 ,
55+ "mango" : 0
56+ }
57+ } ) ;
58+
59+ describe ( 'ascending tests' , ( ) => {
60+ before ( ( ) => {
61+ } ) ;
62+
63+ describe ( '1. sorting json with no nesting' , ( ) => {
64+ let sorted ;
65+ before ( ( ) => {
66+ sorted = index . sort ( json0 )
67+ } ) ;
68+ it ( 'should have 4 keys' , function ( ) {
69+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
70+ } ) ;
71+ it ( 'should have first key apple' , function ( ) {
72+ Object . keys ( sorted ) [ 0 ] . should . equal ( "apple" )
73+ } ) ;
74+ it ( 'should have last key zebra' , function ( ) {
75+ Object . keys ( sorted ) [ 3 ] . should . equal ( "zebra" )
76+ } ) ;
77+ } ) ;
78+
79+ describe ( '2. sorting json with single nested key' , ( ) => {
80+ let sorted ;
81+ before ( ( ) => {
82+ sorted = index . sort ( json1 )
83+ } ) ;
84+ it ( 'should have 4 keys' , function ( ) {
85+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
86+ } ) ;
87+ it ( 'should have first key apple' , function ( ) {
88+ Object . keys ( sorted ) [ 0 ] . should . equal ( "apple" )
89+ } ) ;
90+ it ( 'should have last key zebra' , function ( ) {
91+ Object . keys ( sorted ) [ 3 ] . should . equal ( "zebra" )
92+ } ) ;
93+ it ( 'expect zebra to be an object' , function ( ) {
94+ expect ( sorted . zebra ) . to . be . an ( 'object' )
95+ } ) ;
96+ it ( 'expect zebra to have length 3' , function ( ) {
97+ expect ( Object . keys ( sorted . zebra ) ) . to . have . lengthOf ( 3 )
98+ } ) ;
99+ it ( 'expect zebra to have first key blues' , function ( ) {
100+ Object . keys ( sorted . zebra ) [ 0 ] . should . equal ( "blues" )
101+ } ) ;
102+ it ( 'expect zebra to have last key kettles' , function ( ) {
103+ Object . keys ( sorted . zebra ) [ 2 ] . should . equal ( "kettles" )
104+ } ) ;
105+ } ) ;
106+
107+ describe ( '3. sorting json with 2 nesting in a key' , ( ) => {
108+ let sorted ;
109+ before ( ( ) => {
110+ sorted = index . sort ( json2 )
111+ } ) ;
112+ it ( 'should have 4 keys' , function ( ) {
113+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
114+ } ) ;
115+ it ( 'should have first key apple' , function ( ) {
116+ Object . keys ( sorted ) [ 0 ] . should . equal ( "apple" )
117+ } ) ;
118+ it ( 'should have last key zebra' , function ( ) {
119+ Object . keys ( sorted ) [ 3 ] . should . equal ( "zebra" )
120+ } ) ;
121+ it ( 'expect zebra to be an object' , function ( ) {
122+ expect ( sorted . zebra ) . to . be . an ( 'object' )
123+ } ) ;
124+ it ( 'expect zebra to have length 3' , function ( ) {
125+ expect ( Object . keys ( sorted . zebra ) ) . to . have . lengthOf ( 3 )
126+ } ) ;
127+ it ( 'expect zebra to have first key blues' , function ( ) {
128+ Object . keys ( sorted . zebra ) [ 0 ] . should . equal ( "blues" )
129+ } ) ;
130+ it ( 'expect zebra to have last key kettles' , function ( ) {
131+ Object . keys ( sorted . zebra ) [ 2 ] . should . equal ( "kettles" )
132+ } ) ;
133+ it ( 'expect blues to be an object' , function ( ) {
134+ expect ( sorted . zebra . blues ) . to . be . an ( 'object' )
135+ } ) ;
136+ it ( 'expect blues to have length 3' , function ( ) {
137+ expect ( Object . keys ( sorted . zebra . blues ) ) . to . have . lengthOf ( 3 )
138+ } ) ;
139+ it ( 'expect blues to have first key monster' , function ( ) {
140+ Object . keys ( sorted . zebra . blues ) [ 0 ] . should . equal ( "monster" )
141+ } ) ;
142+ it ( 'expect blues to have last key useless' , function ( ) {
143+ Object . keys ( sorted . zebra . blues ) [ 2 ] . should . equal ( "useless" )
144+ } ) ;
145+ } ) ;
146+
147+ describe ( '4. sorting json with 3 nesting in a key' , ( ) => {
148+ let sorted ;
149+ before ( ( ) => {
150+ sorted = index . sort ( json3 )
151+ } ) ;
152+ it ( 'should have 4 keys' , function ( ) {
153+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
154+ } ) ;
155+ it ( 'should have first key apple' , function ( ) {
156+ Object . keys ( sorted ) [ 0 ] . should . equal ( "apple" )
157+ } ) ;
158+ it ( 'should have last key zebra' , function ( ) {
159+ Object . keys ( sorted ) [ 3 ] . should . equal ( "zebra" )
160+ } ) ;
161+ it ( 'expect zebra to be an object' , function ( ) {
162+ expect ( sorted . zebra ) . to . be . an ( 'object' )
163+ } ) ;
164+ it ( 'expect zebra to have length 3' , function ( ) {
165+ expect ( Object . keys ( sorted . zebra ) ) . to . have . lengthOf ( 3 )
166+ } ) ;
167+ it ( 'expect zebra to have first key blues' , function ( ) {
168+ Object . keys ( sorted . zebra ) [ 0 ] . should . equal ( "blues" )
169+ } ) ;
170+ it ( 'expect zebra to have last key kettles' , function ( ) {
171+ Object . keys ( sorted . zebra ) [ 2 ] . should . equal ( "kettles" )
172+ } ) ;
173+ it ( 'expect blues to be an object' , function ( ) {
174+ expect ( sorted . zebra . blues ) . to . be . an ( 'object' )
175+ } ) ;
176+ it ( 'expect blues to have length 3' , function ( ) {
177+ expect ( Object . keys ( sorted . zebra . blues ) ) . to . have . lengthOf ( 3 )
178+ } ) ;
179+ it ( 'expect blues to have first key monster' , function ( ) {
180+ Object . keys ( sorted . zebra . blues ) [ 0 ] . should . equal ( "monster" )
181+ } ) ;
182+ it ( 'expect blues to have last key useless' , function ( ) {
183+ Object . keys ( sorted . zebra . blues ) [ 2 ] . should . equal ( "useless" )
184+ } ) ;
185+ it ( 'expect monster to be an object' , function ( ) {
186+ expect ( sorted . zebra . blues . monster ) . to . be . an ( 'object' )
187+ } ) ;
188+ it ( 'expect monster to have length 3' , function ( ) {
189+ expect ( Object . keys ( sorted . zebra . blues . monster ) ) . to . have . lengthOf ( 3 )
190+ } ) ;
191+ it ( 'expect monster to have first key ghost' , function ( ) {
192+ Object . keys ( sorted . zebra . blues . monster ) [ 0 ] . should . equal ( "ghost" )
193+ } ) ;
194+ it ( 'expect monster to have last key scotland' , function ( ) {
195+ Object . keys ( sorted . zebra . blues . monster ) [ 2 ] . should . equal ( "scotland" )
196+ } ) ;
197+ } ) ;
198+ } ) ;
199+
200+ describe ( 'descending tests' , ( ) => {
201+ before ( ( ) => {
202+ } ) ;
203+
204+ describe ( '1. sorting json with no nesting' , ( ) => {
205+ let sorted ;
206+ before ( ( ) => {
207+ sorted = index . sort ( json0 , false ) ;
208+ } ) ;
209+ it ( 'should have 4 keys' , function ( ) {
210+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
211+ } ) ;
212+ it ( 'should have first key zebra' , function ( ) {
213+ Object . keys ( sorted ) [ 0 ] . should . equal ( "zebra" )
214+ } ) ;
215+ it ( 'should have last key apple' , function ( ) {
216+ Object . keys ( sorted ) [ 3 ] . should . equal ( "apple" )
217+ } ) ;
218+ } ) ;
219+
220+ describe ( '2. sorting json with single nested key' , ( ) => {
221+ let sorted ;
222+ before ( ( ) => {
223+ sorted = index . sort ( json1 , false )
224+ } ) ;
225+ it ( 'should have 4 keys' , function ( ) {
226+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
227+ } ) ;
228+ it ( 'should have first key zebra' , function ( ) {
229+ Object . keys ( sorted ) [ 0 ] . should . equal ( "zebra" )
230+ } ) ;
231+ it ( 'should have last key apple' , function ( ) {
232+ Object . keys ( sorted ) [ 3 ] . should . equal ( "apple" )
233+ } ) ;
234+ it ( 'expect zebra to be an object' , function ( ) {
235+ expect ( sorted . zebra ) . to . be . an ( 'object' )
236+ } ) ;
237+ it ( 'expect zebra to have length 3' , function ( ) {
238+ expect ( Object . keys ( sorted . zebra ) ) . to . have . lengthOf ( 3 )
239+ } ) ;
240+ it ( 'expect zebra to have first key kettles' , function ( ) {
241+ Object . keys ( sorted . zebra ) [ 0 ] . should . equal ( "kettles" )
242+ } ) ;
243+ it ( 'expect zebra to have last key blues' , function ( ) {
244+ Object . keys ( sorted . zebra ) [ 2 ] . should . equal ( "blues" )
245+ } ) ;
246+ } ) ;
247+
248+ describe ( '3. sorting json with 2 nesting in a key' , ( ) => {
249+ let sorted ;
250+ before ( ( ) => {
251+ sorted = index . sort ( json2 , false )
252+ } ) ;
253+ it ( 'should have 4 keys' , function ( ) {
254+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
255+ } ) ;
256+ it ( 'should have first key zebra' , function ( ) {
257+ Object . keys ( sorted ) [ 0 ] . should . equal ( "zebra" )
258+ } ) ;
259+ it ( 'should have last key apple' , function ( ) {
260+ Object . keys ( sorted ) [ 3 ] . should . equal ( "apple" )
261+ } ) ;
262+ it ( 'expect zebra to be an object' , function ( ) {
263+ expect ( sorted . zebra ) . to . be . an ( 'object' )
264+ } ) ;
265+ it ( 'expect zebra to have length 3' , function ( ) {
266+ expect ( Object . keys ( sorted . zebra ) ) . to . have . lengthOf ( 3 )
267+ } ) ;
268+ it ( 'expect zebra to have first key kettles' , function ( ) {
269+ Object . keys ( sorted . zebra ) [ 0 ] . should . equal ( "kettles" )
270+ } ) ;
271+ it ( 'expect zebra to have last key blues' , function ( ) {
272+ Object . keys ( sorted . zebra ) [ 2 ] . should . equal ( "blues" )
273+ } ) ;
274+ it ( 'expect blues to be an object' , function ( ) {
275+ expect ( sorted . zebra . blues ) . to . be . an ( 'object' )
276+ } ) ;
277+ it ( 'expect blues to have length 3' , function ( ) {
278+ expect ( Object . keys ( sorted . zebra . blues ) ) . to . have . lengthOf ( 3 )
279+ } ) ;
280+ it ( 'expect blues to have first key useless' , function ( ) {
281+ Object . keys ( sorted . zebra . blues ) [ 0 ] . should . equal ( "useless" )
282+ } ) ;
283+ it ( 'expect blues to have last key monster' , function ( ) {
284+ Object . keys ( sorted . zebra . blues ) [ 2 ] . should . equal ( "monster" )
285+ } ) ;
286+ } ) ;
287+
288+ describe ( '4. sorting json with 3 nesting in a key' , ( ) => {
289+ let sorted ;
290+ before ( ( ) => {
291+ sorted = index . sort ( json3 , false )
292+ } ) ;
293+ it ( 'should have 4 keys' , function ( ) {
294+ Object . keys ( sorted ) . should . have . lengthOf ( 4 )
295+ } ) ;
296+ it ( 'should have first key zebra' , function ( ) {
297+ Object . keys ( sorted ) [ 0 ] . should . equal ( "zebra" )
298+ } ) ;
299+ it ( 'should have last key apple' , function ( ) {
300+ Object . keys ( sorted ) [ 3 ] . should . equal ( "apple" )
301+ } ) ;
302+ it ( 'expect zebra to be an object' , function ( ) {
303+ expect ( sorted . zebra ) . to . be . an ( 'object' )
304+ } ) ;
305+ it ( 'expect zebra to have length 3' , function ( ) {
306+ expect ( Object . keys ( sorted . zebra ) ) . to . have . lengthOf ( 3 )
307+ } ) ;
308+ it ( 'expect zebra to have first key kettles' , function ( ) {
309+ Object . keys ( sorted . zebra ) [ 0 ] . should . equal ( "kettles" )
310+ } ) ;
311+ it ( 'expect zebra to have last key blues' , function ( ) {
312+ Object . keys ( sorted . zebra ) [ 2 ] . should . equal ( "blues" )
313+ } ) ;
314+ it ( 'expect blues to be an object' , function ( ) {
315+ expect ( sorted . zebra . blues ) . to . be . an ( 'object' )
316+ } ) ;
317+ it ( 'expect blues to have length 3' , function ( ) {
318+ expect ( Object . keys ( sorted . zebra . blues ) ) . to . have . lengthOf ( 3 )
319+ } ) ;
320+ it ( 'expect blues to have first key useless' , function ( ) {
321+ Object . keys ( sorted . zebra . blues ) [ 0 ] . should . equal ( "useless" )
322+ } ) ;
323+ it ( 'expect blues to have last key monster' , function ( ) {
324+ Object . keys ( sorted . zebra . blues ) [ 2 ] . should . equal ( "monster" )
325+ } ) ;
326+ it ( 'expect monster to be an object' , function ( ) {
327+ expect ( sorted . zebra . blues . monster ) . to . be . an ( 'object' )
328+ } ) ;
329+ it ( 'expect monster to have length 3' , function ( ) {
330+ expect ( Object . keys ( sorted . zebra . blues . monster ) ) . to . have . lengthOf ( 3 )
331+ } ) ;
332+ it ( 'expect monster to have first key scotland' , function ( ) {
333+ Object . keys ( sorted . zebra . blues . monster ) [ 0 ] . should . equal ( "scotland" )
334+ } ) ;
335+ it ( 'expect monster to have last key ghost' , function ( ) {
336+ Object . keys ( sorted . zebra . blues . monster ) [ 2 ] . should . equal ( "ghost" )
337+ } ) ;
338+ } ) ;
339+ } ) ;
340+ } ) ;
0 commit comments