var assert = require('assert');
var Traverse = require('traverse');

exports['sort test'] = function () {
    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);
    });
    
    assert.equal(
        acc.join(' '),
        '9 30 22',
        'Traversal in a custom order'
    );
};
