Pipelining tested

pull/2/head
Louis Chatriot 12 years ago
parent 9f8d599628
commit 4dad94f971
  1. 35
      test/db.test.js

@ -1913,7 +1913,7 @@ describe('Database', function () {
}); // ==== End of 'Using indexes' ==== // }); // ==== End of 'Using indexes' ==== //
describe.only('Pipelining', function () { describe('Pipelining', function () {
it('Can insert documents and persist them', function (done) { it('Can insert documents and persist them', function (done) {
d = new Datastore({ filename: testDb, pipeline: true }); d = new Datastore({ filename: testDb, pipeline: true });
@ -1963,6 +1963,38 @@ describe('Database', function () {
d.remove({ f: 12 }, {}, function (err, doc31) { d.remove({ f: 12 }, {}, function (err, doc31) {
assert.isNull(err); assert.isNull(err);
// Need to wait a bit for persistence pipeline to be taken care of
// 2ms is enough but let's use 50 to be really sure tests don't fail for a bad reason
setTimeout(function () {
var rawData = fs.readFileSync(testDb, 'utf8')
, treatedData = Datastore.treatRawData(rawData)
;
treatedData.sort(function (a, b) { return a.f - b.f; });
treatedData.length.should.equal(1);
assert.deepEqual(treatedData[0], doc5);
done();
}, 50);
});
});
});
});
it('Can update documents in persistence file too', function (done) {
d = new Datastore({ filename: testDb, pipeline: true });
d.filename.should.equal(testDb);
d.pipeline.should.equal(true);
d.inMemoryOnly.should.equal(false);
assert.isDefined(d.persistenceExecutor);
d.insert({ f: 12 }, function (err, doc12) {
assert.isNull(err);
d.insert({ f: 5 }, function (err, doc5) {
assert.isNull(err);
d.update({ f: 12 }, { $set: { f: 555 } }, {}, function (err) {
assert.isNull(err);
// Need to wait a bit for persistence pipeline to be taken care of // Need to wait a bit for persistence pipeline to be taken care of
// 2ms is enough but let's use 50 to be really sure tests don't fail for a bad reason // 2ms is enough but let's use 50 to be really sure tests don't fail for a bad reason
setTimeout(function () { setTimeout(function () {
@ -1973,6 +2005,7 @@ describe('Database', function () {
treatedData.sort(function (a, b) { return a.f - b.f; }); treatedData.sort(function (a, b) { return a.f - b.f; });
treatedData.length.should.equal(2); treatedData.length.should.equal(2);
assert.deepEqual(treatedData[0], doc5); assert.deepEqual(treatedData[0], doc5);
assert.deepEqual(treatedData[1], { f: 555, _id: doc12._id });
done(); done();
}, 50); }, 50);

Loading…
Cancel
Save