You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							781 B
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							781 B
						
					
					
				var test = require('tape'); | 
						|
var traverse = require('../'); | 
						|
 | 
						|
test('sort test', function (t) { | 
						|
    var acc = []; | 
						|
    traverse({ | 
						|
        a: 30, | 
						|
        b: 22, | 
						|
        id: 9 | 
						|
    }).forEach(function (node) { | 
						|
        if ((! Array.isArray(node)) && typeof node === 'object') { | 
						|
            this.before(function(node) { | 
						|
                this.keys = Object.keys(node); | 
						|
                this.keys.sort(function(a, b) { | 
						|
                    a = [a === "id" ? 0 : 1, a]; | 
						|
                    b = [b === "id" ? 0 : 1, b]; | 
						|
                    return a < b ? -1 : a > b ? 1 : 0; | 
						|
                }); | 
						|
            }); | 
						|
        } | 
						|
        if (this.isLeaf) acc.push(node); | 
						|
    }); | 
						|
     | 
						|
    t.equal( | 
						|
        acc.join(' '), | 
						|
        '9 30 22', | 
						|
        'Traversal in a custom order' | 
						|
    ); | 
						|
     | 
						|
    t.end(); | 
						|
});
 | 
						|
 |