54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
var sqlite3 = require('..'),
|
|
fs = require('fs'),
|
|
assert = require('assert'),
|
|
Buffer = require('buffer').Buffer;
|
|
|
|
// lots of elmo
|
|
var elmo = fs.readFileSync(__dirname + '/support/elmo.png');
|
|
|
|
describe('blob', function() {
|
|
var db;
|
|
before(function(done) {
|
|
db = new sqlite3.Database(':memory:');
|
|
db.run("CREATE TABLE elmos (id INT, image BLOB)", done);
|
|
});
|
|
|
|
var total = 10;
|
|
var inserted = 0;
|
|
var retrieved = 0;
|
|
|
|
|
|
it('should insert blobs', function(done) {
|
|
for (var i = 0; i < total; i++) {
|
|
db.run('INSERT INTO elmos (id, image) VALUES (?, ?)', i, elmo, function(err) {
|
|
if (err) throw err;
|
|
inserted++;
|
|
});
|
|
}
|
|
db.wait(function() {
|
|
assert.equal(inserted, total);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should retrieve the blobs', function(done) {
|
|
db.all('SELECT id, image FROM elmos ORDER BY id', function(err, rows) {
|
|
if (err) throw err;
|
|
for (var i = 0; i < rows.length; i++) {
|
|
assert.ok(Buffer.isBuffer(rows[i].image));
|
|
assert.ok(elmo.length, rows[i].image);
|
|
|
|
for (var j = 0; j < elmo.length; j++) {
|
|
if (elmo[j] !== rows[i].image[j]) {
|
|
assert.ok(false, "Wrong byte");
|
|
}
|
|
}
|
|
|
|
retrieved++;
|
|
}
|
|
|
|
assert.equal(retrieved, total);
|
|
done();
|
|
});
|
|
});
|
|
});
|