diff -r efd9c589177a -r c0b4a8b5a012 toolkit/javascript/d3/test/core/entries-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/javascript/d3/test/core/entries-test.js Thu Apr 10 14:20:23 2014 +0200 @@ -0,0 +1,43 @@ +require("../env"); +require("../../d3"); + +var vows = require("vows"), + assert = require("assert"); + +var suite = vows.describe("d3.entries"); + +suite.addBatch({ + "entries": { + topic: function() { + return d3.entries; + }, + "enumerates every entry": function(entries) { + assert.deepEqual(entries({a: 1, b: 2}), [ + {key: "a", value: 1}, + {key: "b", value: 2} + ]); + }, + "includes entries defined on prototypes": function(entries) { + function abc() { + this.a = 1; + this.b = 2; + } + abc.prototype.c = 3; + assert.deepEqual(entries(new abc()), [ + {key: "a", value: 1}, + {key: "b", value: 2}, + {key: "c", value: 3} + ]); + }, + "includes null or undefined values": function(entries) { + var v = entries({a: undefined, b: null, c: NaN}); + assert.equal(v.length, 3); + assert.deepEqual(v[0], {key: "a", value: undefined}); + assert.deepEqual(v[1], {key: "b", value: null}); + assert.equal(v[2].key, "c"); + assert.isNaN(v[2].value); + } + } +}); + +suite.export(module);