2011-08-14 10:09:37 +04:00
|
|
|
require("../env");
|
|
|
|
|
|
|
|
var vows = require("vows"),
|
|
|
|
assert = require("assert");
|
|
|
|
|
|
|
|
var suite = vows.describe("d3.keys");
|
|
|
|
|
|
|
|
suite.addBatch({
|
|
|
|
"keys": {
|
|
|
|
topic: function() {
|
|
|
|
return d3.keys;
|
|
|
|
},
|
|
|
|
"enumerates every defined key": function(keys) {
|
2011-08-14 10:13:10 +04:00
|
|
|
assert.deepEqual(keys({a: 1, b: 1}), ["a", "b"]);
|
2011-08-14 10:09:37 +04:00
|
|
|
},
|
|
|
|
"includes keys defined on prototypes": function(keys) {
|
|
|
|
function abc() {
|
|
|
|
this.a = 1;
|
|
|
|
this.b = 2;
|
|
|
|
}
|
|
|
|
abc.prototype.c = 3;
|
2011-08-14 10:13:10 +04:00
|
|
|
assert.deepEqual(keys(new abc()), ["a", "b", "c"]);
|
2011-08-14 10:09:37 +04:00
|
|
|
},
|
|
|
|
"includes keys with null or undefined values": function(keys) {
|
2011-08-14 10:13:10 +04:00
|
|
|
assert.deepEqual(keys({a: undefined, b: null, c: NaN}), ["a", "b", "c"]);
|
2011-08-14 10:09:37 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
suite.export(module);
|