|
@ -282,7 +282,120 @@ describe('DataSet', function () { |
|
|
{id: 3, content: 'Item 3'}, |
|
|
{id: 3, content: 'Item 3'}, |
|
|
{id: 4, content: 'Item 4'} |
|
|
{id: 4, content: 'Item 4'} |
|
|
]); |
|
|
]); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
describe('add', function () { |
|
|
|
|
|
it('adds nothing for an empty array', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
var dataItems = []; |
|
|
|
|
|
assert.equal(dataset.add(dataItems).length, 0) |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('adds items of an array', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
var dataItems = [ |
|
|
|
|
|
{_id: 1, content: 'Item 1', start: new Date(now.valueOf())}, |
|
|
|
|
|
{_id: 2, content: 'Item 2', start: new Date(now.valueOf())} |
|
|
|
|
|
]; |
|
|
|
|
|
assert.equal(dataset.add(dataItems).length, 2) |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('adds a single object', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
var dataItem = {_id: 1, content: 'Item 1', start: new Date(now.valueOf())}; |
|
|
|
|
|
assert.equal(dataset.add(dataItem).length, 1) |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('throws an error when passed bad datatypes', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
assert.throws(function () { dataset.add(null) }, Error, "null type throws error"); |
|
|
|
|
|
assert.throws(function () { dataset.add(undefined) }, Error, "undefined type throws error"); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
describe('setOptions', function () { |
|
|
|
|
|
var dataset = new DataSet([ |
|
|
|
|
|
{_id: 1, content: 'Item 1', start: new Date(now.valueOf())} |
|
|
|
|
|
], {queue: true}); |
|
|
|
|
|
|
|
|
|
|
|
it('does not update queue when passed an undefined queue', function () { |
|
|
|
|
|
var dataset = new DataSet([], {queue: true}); |
|
|
|
|
|
dataset.setOptions({queue: undefined}); |
|
|
|
|
|
assert.notEqual(dataset._queue, undefined) |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('destroys the queue when queue set to false', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
dataset.setOptions({queue: false}); |
|
|
|
|
|
assert.equal(dataset._queue, undefined) |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('udpates queue options', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
dataset.setOptions({queue: {max: 5, delay: 3}}); |
|
|
|
|
|
assert.equal(dataset._queue.max, 5); |
|
|
|
|
|
assert.equal(dataset._queue.delay, 3); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('creates new queue given if none is set', function () { |
|
|
|
|
|
var dataset = new DataSet([], {queue: true}); |
|
|
|
|
|
dataset._queue.destroy(); |
|
|
|
|
|
dataset._queue = null; |
|
|
|
|
|
dataset.setOptions({queue: {max: 5, delay: 3}}); |
|
|
|
|
|
assert.equal(dataset._queue.max, 5); |
|
|
|
|
|
assert.equal(dataset._queue.delay, 3); |
|
|
|
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
describe('on / off', function () { |
|
|
|
|
|
var dataset = new DataSet([ |
|
|
|
|
|
{_id: 1, content: 'Item 1', start: new Date(now.valueOf())} |
|
|
|
|
|
]); |
|
|
|
|
|
var count = 0; |
|
|
|
|
|
function inc() {count++;} |
|
|
|
|
|
|
|
|
|
|
|
it('fires for put', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
count = 0; |
|
|
|
|
|
// on
|
|
|
|
|
|
dataset.on('add', inc); |
|
|
|
|
|
dataset.add({_id: 1, content: 'Item 1', start: new Date(now.valueOf())}); |
|
|
|
|
|
assert.equal(count, 1); |
|
|
|
|
|
// off
|
|
|
|
|
|
dataset.off('add', inc); |
|
|
|
|
|
dataset.add({_id: 2, content: 'Item 2', start: new Date(now.valueOf())}); |
|
|
|
|
|
assert.equal(count, 1); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('fires for remove', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
count = 0; |
|
|
|
|
|
// on
|
|
|
|
|
|
dataset.on('remove', inc); |
|
|
|
|
|
var id = dataset.add({_id: 1, content: 'Item 1', start: new Date(now.valueOf())}); |
|
|
|
|
|
dataset.remove(id); |
|
|
|
|
|
assert.equal(count, 1); |
|
|
|
|
|
// off
|
|
|
|
|
|
dataset.off('remove', inc); |
|
|
|
|
|
id = dataset.add({_id: 1, content: 'Item 1', start: new Date(now.valueOf())}); |
|
|
|
|
|
dataset.remove(id); |
|
|
|
|
|
assert.equal(count, 1); |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
it('fires for update', function () { |
|
|
|
|
|
var dataset = new DataSet([]); |
|
|
|
|
|
count = 0; |
|
|
|
|
|
// on
|
|
|
|
|
|
dataset.on('update', inc); |
|
|
|
|
|
var id = dataset.add({_id: 1, content: 'Item 1', start: new Date(now.valueOf())}); |
|
|
|
|
|
dataset.update({id: id, content: 'beep boop'}); |
|
|
|
|
|
assert.equal(count, 1); |
|
|
|
|
|
// off
|
|
|
|
|
|
dataset.off('update', inc); |
|
|
|
|
|
id = dataset.add({_id: 1, content: 'Item 1', start: new Date(now.valueOf())}); |
|
|
|
|
|
dataset.update({id: id, content: 'beep boop'}); |
|
|
|
|
|
assert.equal(count, 1); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |