toolkit/javascript/d3/test/core/entries-test.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     1 require("../env");
       
     2 require("../../d3");
       
     3 
       
     4 var vows = require("vows"),
       
     5     assert = require("assert");
       
     6 
       
     7 var suite = vows.describe("d3.entries");
       
     8 
       
     9 suite.addBatch({
       
    10   "entries": {
       
    11     topic: function() {
       
    12       return d3.entries;
       
    13     },
       
    14     "enumerates every entry": function(entries) {
       
    15       assert.deepEqual(entries({a: 1, b: 2}), [
       
    16         {key: "a", value: 1},
       
    17         {key: "b", value: 2}
       
    18       ]);
       
    19     },
       
    20     "includes entries defined on prototypes": function(entries) {
       
    21       function abc() {
       
    22         this.a = 1;
       
    23         this.b = 2;
       
    24       }
       
    25       abc.prototype.c = 3;
       
    26       assert.deepEqual(entries(new abc()), [
       
    27         {key: "a", value: 1},
       
    28         {key: "b", value: 2},
       
    29         {key: "c", value: 3}
       
    30       ]);
       
    31     },
       
    32     "includes null or undefined values": function(entries) {
       
    33       var v = entries({a: undefined, b: null, c: NaN});
       
    34       assert.equal(v.length, 3);
       
    35       assert.deepEqual(v[0], {key: "a", value: undefined});
       
    36       assert.deepEqual(v[1], {key: "b", value: null});
       
    37       assert.equal(v[2].key, "c");
       
    38       assert.isNaN(v[2].value);
       
    39     }
       
    40   }
       
    41 });
       
    42 
       
    43 suite.export(module);