| 'use strict'; | 
|   | 
| 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 (beforeNode) { | 
|                 this.keys = Object.keys(beforeNode); | 
|                 this.keys.sort(function (a, b) { | 
|                     var aA = [a === 'id' ? 0 : 1, a]; | 
|                     var bA = [b === 'id' ? 0 : 1, b]; | 
|                     return aA < bA ? -1 : aA > bA ? 1 : 0; | 
|                 }); | 
|             }); | 
|         } | 
|         if (this.isLeaf) { acc.push(node); } | 
|     }); | 
|   | 
|     t.equal( | 
|         acc.join(' '), | 
|         '9 30 22', | 
|         'Traversal in a custom order' | 
|     ); | 
|   | 
|     t.end(); | 
| }); |