UNPKG

daily-storage

Version:

daily - The LevelDB storage abstaction

126 lines (105 loc) 2.88 kB
var test = require('tap').test; var setup = require('../setup.js')(); var match = require('../match.js'); var CURRENT_SECOND = Math.floor(Date.now() / 1000); setup.open(); test('write a few messages', function (t) { var writeRequest = { 'type': 'write', 'id': 0, 'seconds': 0, 'milliseconds': 500, 'level': 1, 'message': new Buffer(0) }; t.test('message 1', function (t) { writeRequest.level = 1; writeRequest.seconds = CURRENT_SECOND + 2000; writeRequest.message = new Buffer('message - 1'); setup.storage.write(writeRequest, function (err, response) { t.equal(err, null); t.equal(response.error, null); t.end(); }); }); t.test('message 2', function (t) { writeRequest.level = 2; writeRequest.seconds = CURRENT_SECOND + 2001; writeRequest.message = new Buffer('message - 2'); setup.storage.write(writeRequest, function (err, response) { t.equal(err, null); t.equal(response.error, null); t.end(); }); }); t.test('message 3', function (t) { writeRequest.level = 3; writeRequest.seconds = CURRENT_SECOND + 2999; writeRequest.message = new Buffer('message - 3'); setup.storage.write(writeRequest, function (err, response) { t.equal(err, null); t.equal(response.error, null); t.end(); }); }); t.test('message 4', function (t) { writeRequest.level = 4; writeRequest.seconds = CURRENT_SECOND + 3000; writeRequest.message = new Buffer('message - 4'); setup.storage.write(writeRequest, function (err, response) { t.equal(err, null); t.equal(response.error, null); t.end(); }); }); }); test('destroy on readable', function (t) { var stream = setup.storage.reader({ startSeconds: null, startMilliseconds: null, endSeconds: null, endMilliseconds: null, levels: [1, 9] }); var lastReadable = false; stream.once('readable', function () { stream.once('readable', function () { lastReadable = true; t.deepEqual(stream.read(), { 'type': 'read-stop', 'error': null }); stream.resume(); }); stream.destroy(); stream.read(); }); stream.once('end', function () { t.ok(lastReadable); t.end(); }); }); test('destroy on error', function (t) { var stream = setup.storage.reader({ startSeconds: null, startMilliseconds: null, endSeconds: null, endMilliseconds: null, levels: [1, 9] }); var lastReadable = false; stream.once('readable', function () { lastReadable = true; match(t, stream.read(), { 'type': 'read-stop', 'error': new Error('fake error') }); stream.resume(); }); stream._source.emit('error', new Error('fake error')); stream.once('end', function () { t.ok(lastReadable); t.end(); }); }); setup.close();