d3/test/arrays/entries-test.js

40 строки
1.1 KiB
JavaScript

var vows = require("vows"),
load = require("../load"),
assert = require("../assert");
var suite = vows.describe("d3.entries");
suite.addBatch({
"entries": {
topic: load("arrays/entries").expression("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);