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 ret=[];
// outs.
self.db.createReadStream({start: k, end: k + '~'})
.on('data', function (data) {
var k = data.key.split('-');
@ -84,8 +85,26 @@ function spec() {
.on('error', function (err) {
return cb(err);
})
.on('end', function (err) {
return cb(err, ret);
.on('end', function () {
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);
var ts = tx.timestamp;
var ts = tx.time;
async.series([
// Input Outpoints (mark them as spended)
@ -302,7 +320,6 @@ function spec() {
}
},
function(err) {
console.log('[TransactionDb.js.308]'); //TODO
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'),
fs = require('fs'),
util = require('util'),
async = require('async'),
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('TransactionOut Expenses', function(){
describe('TransactionDb Expenses', function(){
var tdb = new TransactionDb();
before(function(done) {
mongoose.connect(config.db);
// lets spend!
async.each(Object.keys(spentValid),
function(txid,c_out) {
async.each(spentValid[txid],
function(i,c_in) {
TransactionOut._explodeTransactionOuts(i.txid, function(err) {
tdb.createFromArray([i.txid], null, function(err) {
return c_in();
});
},
@ -40,24 +36,18 @@ describe('TransactionOut Expenses', function(){
);
},
function(err) {
console.log('[transactionouts.js.88]'); //TODO
return done();
}
);
});
after(function(done) {
mongoose.connection.close();
done();
});
Object.keys(spentValid).forEach( function(txid) {
it('test result of spending tx ' + txid, function(done) {
var s = spentValid[txid];
var c=0;
TransactionOut.fromTxId( txid, function(err, readItems) {
tdb.fromTxId( txid, function(err, readItems) {
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);
c++;
});