02 transaction tests passing

This commit is contained in:
Matias Alejo Garcia 2014-02-04 03:41:32 -03:00
parent 339f6f79fc
commit 65aad6d0ad
2 changed files with 30 additions and 23 deletions

View File

@ -71,6 +71,7 @@ function spec() {
var k = OUTS_ROOT + txid; var k = OUTS_ROOT + txid;
var ret=[]; var ret=[];
// outs.
self.db.createReadStream({start: k, end: k + '~'}) self.db.createReadStream({start: k, end: k + '~'})
.on('data', function (data) { .on('data', function (data) {
var k = data.key.split('-'); var k = data.key.split('-');
@ -84,8 +85,26 @@ function spec() {
.on('error', function (err) { .on('error', function (err) {
return cb(err); return cb(err);
}) })
.on('end', function (err) { .on('end', function () {
return cb(err, ret); var k = SPEND_ROOT + txid;
var l = ret.length;
self.db.createReadStream({start: k, end: k + '~'})
.on('data', function (data) {
var k = data.key.split('-');
var v = data.value.split(':');
for(var i=0; i<l; i++) {
if (ret[i].index === k[3]) {
ret[i].spendTxId= v[0];
ret[i].spendIndex=v[1];
}
}
})
.on('error', function (err) {
return cb(err);
})
.on('end', function (err) {
return cb(err, ret);
});
}); });
}; };
@ -194,8 +213,7 @@ function spec() {
if (tx.hash) self.adaptTxObject(tx); if (tx.hash) self.adaptTxObject(tx);
var ts = tx.timestamp; var ts = tx.time;
async.series([ async.series([
// Input Outpoints (mark them as spended) // Input Outpoints (mark them as spended)
@ -302,7 +320,6 @@ function spec() {
} }
}, },
function(err) { function(err) {
console.log('[TransactionDb.js.308]'); //TODO
return next(err, insertedTxs, updatedAddrs); return next(err, insertedTxs, updatedAddrs);
}); });
}; };

View File

@ -5,31 +5,27 @@ process.env.NODE_ENV = process.env.NODE_ENV || 'development';
var mongoose = require('mongoose'), var
assert = require('assert'), assert = require('assert'),
fs = require('fs'), fs = require('fs'),
util = require('util'), util = require('util'),
async = require('async'), async = require('async'),
config = require('../../config/config'), config = require('../../config/config'),
TransactionOut = require('../../app/models/TransactionOut'); TransactionDb = require('../../lib/TransactionDb').class();
var spentValid = JSON.parse(fs.readFileSync('test/model/spent.json')); var spentValid = JSON.parse(fs.readFileSync('test/integration/spent.json'));
mongoose.connection.on('error', function(err) { console.log(err); }); describe('TransactionDb Expenses', function(){
var tdb = new TransactionDb();
describe('TransactionOut Expenses', function(){
before(function(done) { before(function(done) {
mongoose.connect(config.db);
// lets spend! // lets spend!
async.each(Object.keys(spentValid), async.each(Object.keys(spentValid),
function(txid,c_out) { function(txid,c_out) {
async.each(spentValid[txid], async.each(spentValid[txid],
function(i,c_in) { function(i,c_in) {
TransactionOut._explodeTransactionOuts(i.txid, function(err) { tdb.createFromArray([i.txid], null, function(err) {
return c_in(); return c_in();
}); });
}, },
@ -40,24 +36,18 @@ describe('TransactionOut Expenses', function(){
); );
}, },
function(err) { function(err) {
console.log('[transactionouts.js.88]'); //TODO
return done(); return done();
} }
); );
}); });
after(function(done) {
mongoose.connection.close();
done();
});
Object.keys(spentValid).forEach( function(txid) { Object.keys(spentValid).forEach( function(txid) {
it('test result of spending tx ' + txid, function(done) { it('test result of spending tx ' + txid, function(done) {
var s = spentValid[txid]; var s = spentValid[txid];
var c=0; var c=0;
TransactionOut.fromTxId( txid, function(err, readItems) { tdb.fromTxId( txid, function(err, readItems) {
s.forEach( function(v) { s.forEach( function(v) {
assert.equal(readItems[c].spendTxIdBuf.toString('hex'),v.txid); assert.equal(readItems[c].spendTxId,v.txid);
assert.equal(readItems[c].spendIndex,v.n); assert.equal(readItems[c].spendIndex,v.n);
c++; c++;
}); });