To go along w/ that, I wrote:

    test('forEach does stuff', function() {
      var list = new Drafts.List([d1, d2, d3, d4]);
      var collect = [];
      list.forEach(function(elem, index, array) {
        collect.push([index, elem, array.length]);
      });
      assert.deepEqual(collect[0], [0, d1, 4]);
    });
    test('forEach cannot mutate the array', function() {
      var list = new Drafts.List([d1, d2, d3, d4]);
      list.forEach(function(elem, index, array) {
        Array.prototype.splice.call(array, index, 1);
      });
      assert.equal(list.length, 4, 'Drafts.List with four drafts has length 4');
    });