flocore-node/test/integration/01-transactionouts.js
2014-02-04 04:06:03 -03:00

68 lines
1.9 KiB
JavaScript

#!/usr/bin/env node
'use strict';
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
var
assert = require('assert'),
fs = require('fs'),
util = require('util'),
config = require('../../config/config'),
TransactionDb = require('../../lib/TransactionDb').class();
var txItemsValid = JSON.parse(fs.readFileSync('test/integration/txitems.json'));
describe('TransactionDb', function(){
var tdb = new TransactionDb();
txItemsValid.forEach( function(v) {
if (v.disabled) return;
it('test a processing tx ' + v.txid, function(done) {
this.timeout(60000);
// Remove first
tdb.removeFromTxId(v.txid, v.toRm, function() {
tdb.fromTxId( v.txid, function(err, readItems) {
assert.equal(readItems.length,0);
var unmatch=[];
tdb.createFromArray([v.txid], null, function(err) {
if (err) return done(err);
tdb.fromTxId( v.txid, function(err, readItems) {
v.items.forEach(function(validItem){
unmatch[validItem.addr] =1;
});
assert.equal(readItems.length,v.items.length);
v.items.forEach(function(validItem){
var readItem = readItems.shift();
assert.equal(readItem.addr,validItem.addr);
assert.equal(readItem.value_sat,validItem.value_sat);
assert.equal(readItem.index,validItem.index);
assert.equal(readItem.spendIndex, null);
assert.equal(readItem.spendTxIdBuf, null);
delete unmatch[validItem.addr];
});
var valid = util.inspect(v.items, { depth: null });
assert(!Object.keys(unmatch).length,'\n\tUnmatchs:' + Object.keys(unmatch) + "\n\n" +valid + '\nvs.\n' + readItems);
return done();
});
});
});
});
});
});
});