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 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);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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++;
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user