[FIX] transaction without explicit remote

remote was instantiated as an object and checks through the class for `this.remote` would pass and cause 
unintended behavior

e.g. `.complete()` would view an undefined remote as untrusted and not allow local signing
e.g. calling `_computeFee()` with an undefined remote would crash ripple-lib
This commit is contained in:
Geert Weening
2014-10-23 12:10:15 -07:00
parent bc1f9f8a28
commit d3b6b8127c
2 changed files with 38 additions and 3 deletions

View File

@@ -229,6 +229,11 @@ describe('Transaction', function() {
assert.strictEqual(transaction._computeFee(), '72');
});
it('Compute fee, no remote', function() {
var transaction = new Transaction();
assert.strictEqual(transaction._computeFee(10), void(0));
});
it('Compute fee - no connected server', function() {
var remote = new Remote();
@@ -371,6 +376,16 @@ describe('Transaction', function() {
done();
});
it('Complete transaction, local signing, no remote', function(done) {
var transaction = new Transaction();
transaction._secret = 'sh2pTicynUEG46jjR4EoexHcQEoij';
transaction.tx_json.Account = 'rMWwx3Ma16HnqSd4H6saPisihX9aKpXxHJ';
assert(transaction.complete());
done();
});
it('Complete transaction - untrusted', function(done) {
var remote = new Remote();
var transaction = new Transaction(remote);
@@ -1505,6 +1520,18 @@ describe('Transaction', function() {
transaction.submit(submitCallback);
});
it('Submit transaction - submission error, no remote', function(done) {
var transaction = new Transaction();
transaction.once('error', function(error) {
assert(error);
assert.strictEqual(error.message, 'No remote found');
done();
});
transaction.submit();
});
it('Submit transaction - invalid account', function(done) {
var remote = new Remote();
var transaction = new Transaction(remote).accountSet('r36xtKNKR43SeXnGn7kN4r4JdQzcrkqpWe');