02 transaction tests passing
This commit is contained in:
parent
339f6f79fc
commit
65aad6d0ad
|
@ -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);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -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++;
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue