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.
35 lines
780 B
35 lines
780 B
var assert = require('assert'); |
|
var Traverse = require('traverse'); |
|
|
|
exports.dateEach = function () { |
|
var obj = { x : new Date, y : 10, z : 5 }; |
|
|
|
var counts = {}; |
|
|
|
Traverse(obj).forEach(function (node) { |
|
var t = (node instanceof Date && 'Date') || typeof node; |
|
counts[t] = (counts[t] || 0) + 1; |
|
}); |
|
|
|
assert.deepEqual(counts, { |
|
object : 1, |
|
Date : 1, |
|
number : 2, |
|
}); |
|
}; |
|
|
|
exports.dateMap = function () { |
|
var obj = { x : new Date, y : 10, z : 5 }; |
|
|
|
var res = Traverse(obj).map(function (node) { |
|
if (typeof node === 'number') this.update(node + 100); |
|
}); |
|
|
|
assert.ok(obj.x !== res.x); |
|
assert.deepEqual(res, { |
|
x : obj.x, |
|
y : 110, |
|
z : 105, |
|
}); |
|
}; |
|
|
|
|