reorganize integration tests
This commit is contained in:
parent
67bea09fe8
commit
5ca8663c96
|
@ -269,6 +269,83 @@ describe('Wallet service', function() {
|
|||
done();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Address derivation strategy', function() {
|
||||
var server;
|
||||
beforeEach(function() {
|
||||
server = WalletService.getInstance();
|
||||
});
|
||||
it('should use BIP44 & P2PKH for 1-of-1 wallet if supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 1,
|
||||
n: 1,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP44');
|
||||
wallet.addressType.should.equal('P2PKH');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should use BIP45 & P2SH for 1-of-1 wallet if not supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 1,
|
||||
n: 1,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
supportBIP44AndP2PKH: false,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP45');
|
||||
wallet.addressType.should.equal('P2SH');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should use BIP44 & P2SH for shared wallet if supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 2,
|
||||
n: 3,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP44');
|
||||
wallet.addressType.should.equal('P2SH');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should use BIP45 & P2SH for shared wallet if supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 2,
|
||||
n: 3,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
supportBIP44AndP2PKH: false,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP45');
|
||||
wallet.addressType.should.equal('P2SH');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('#joinWallet', function() {
|
||||
|
@ -619,79 +696,133 @@ describe('Wallet service', function() {
|
|||
});
|
||||
});
|
||||
|
||||
describe('Address derivation strategy', function() {
|
||||
var server;
|
||||
beforeEach(function() {
|
||||
server = WalletService.getInstance();
|
||||
});
|
||||
it('should use BIP44 & P2PKH for 1-of-1 wallet if supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 1,
|
||||
n: 1,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP44');
|
||||
wallet.addressType.should.equal('P2PKH');
|
||||
done();
|
||||
describe('#removeWallet', function() {
|
||||
var server, wallet, clock;
|
||||
|
||||
beforeEach(function(done) {
|
||||
helpers.createAndJoinWallet(1, 1, function(s, w) {
|
||||
server = s;
|
||||
wallet = w;
|
||||
|
||||
helpers.stubUtxos(server, wallet, _.range(2), function() {
|
||||
var txOpts = {
|
||||
toAddress: '18PzpUFkFZE8zKWUPvfykkTxmB9oMR8qP7',
|
||||
amount: helpers.toSatoshi(0.1),
|
||||
};
|
||||
async.eachSeries(_.range(2), function(i, next) {
|
||||
server.createTxLegacy(txOpts, function(err, tx) {
|
||||
next();
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should use BIP45 & P2SH for 1-of-1 wallet if not supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 1,
|
||||
n: 1,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
supportBIP44AndP2PKH: false,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
|
||||
it('should delete a wallet', function(done) {
|
||||
server.removeWallet({}, function(err) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP45');
|
||||
wallet.addressType.should.equal('P2SH');
|
||||
done();
|
||||
server.getWallet({}, function(err, w) {
|
||||
should.exist(err);
|
||||
err.code.should.equal('WALLET_NOT_FOUND');
|
||||
should.not.exist(w);
|
||||
async.parallel([
|
||||
|
||||
function(next) {
|
||||
server.storage.fetchAddresses(wallet.id, function(err, items) {
|
||||
items.length.should.equal(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server.storage.fetchTxs(wallet.id, {}, function(err, items) {
|
||||
items.length.should.equal(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server.storage.fetchNotifications(wallet.id, null, 0, function(err, items) {
|
||||
items.length.should.equal(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
], function(err) {
|
||||
should.not.exist(err);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should use BIP44 & P2SH for shared wallet if supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 2,
|
||||
n: 3,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
|
||||
// creates 2 wallet, and deletes only 1.
|
||||
it('should delete a wallet, and only that wallet', function(done) {
|
||||
var server2, wallet2;
|
||||
async.series([
|
||||
|
||||
function(next) {
|
||||
helpers.createAndJoinWallet(1, 1, {
|
||||
offset: 1
|
||||
}, function(s, w) {
|
||||
server2 = s;
|
||||
wallet2 = w;
|
||||
|
||||
helpers.stubUtxos(server2, wallet2, _.range(1, 3), function() {
|
||||
var txOpts = helpers.createSimpleProposalOpts('18PzpUFkFZE8zKWUPvfykkTxmB9oMR8qP7', 0.1, TestData.copayers[1].privKey_1H_0, {
|
||||
message: 'some message'
|
||||
});
|
||||
async.eachSeries(_.range(2), function(i, next) {
|
||||
server2.createTxLegacy(txOpts, function(err, tx) {
|
||||
should.not.exist(err);
|
||||
next(err);
|
||||
});
|
||||
}, next);
|
||||
});
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server.removeWallet({}, next);
|
||||
},
|
||||
function(next) {
|
||||
server.getWallet({}, function(err, wallet) {
|
||||
should.exist(err);
|
||||
err.code.should.equal('WALLET_NOT_FOUND');
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getWallet({}, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
should.exist(wallet);
|
||||
wallet.id.should.equal(wallet2.id);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getMainAddresses({}, function(err, addresses) {
|
||||
should.not.exist(err);
|
||||
should.exist(addresses);
|
||||
addresses.length.should.above(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getTxs({}, function(err, txs) {
|
||||
should.not.exist(err);
|
||||
should.exist(txs);
|
||||
txs.length.should.equal(2);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getNotifications({}, function(err, notifications) {
|
||||
should.not.exist(err);
|
||||
should.exist(notifications);
|
||||
notifications.length.should.above(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
], function(err) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP44');
|
||||
wallet.addressType.should.equal('P2SH');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should use BIP45 & P2SH for shared wallet if supported', function(done) {
|
||||
var walletOpts = {
|
||||
name: 'my wallet',
|
||||
m: 2,
|
||||
n: 3,
|
||||
pubKey: TestData.keyPair.pub,
|
||||
supportBIP44AndP2PKH: false,
|
||||
};
|
||||
server.createWallet(walletOpts, function(err, wid) {
|
||||
should.not.exist(err);
|
||||
server.storage.fetchWallet(wid, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
wallet.derivationStrategy.should.equal('BIP45');
|
||||
wallet.addressType.should.equal('P2SH');
|
||||
done();
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -1433,7 +1564,6 @@ describe('Wallet service', function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -3668,20 +3798,6 @@ describe('Wallet service', function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('#createTx backoff time', function() {
|
||||
var server, wallet, txid;
|
||||
|
||||
beforeEach(function(done) {
|
||||
helpers.createAndJoinWallet(2, 2, function(s, w) {
|
||||
server = s;
|
||||
wallet = w;
|
||||
helpers.stubUtxos(server, wallet, _.range(2, 6), function() {
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('should ignore small utxos if fee is higher', function(done) {
|
||||
helpers.stubUtxos(server, wallet, [].concat(_.times(10, function() {
|
||||
return '30bit';
|
||||
|
@ -5119,137 +5235,6 @@ describe('Wallet service', function() {
|
|||
});
|
||||
});
|
||||
|
||||
describe('#removeWallet', function() {
|
||||
var server, wallet, clock;
|
||||
|
||||
beforeEach(function(done) {
|
||||
helpers.createAndJoinWallet(1, 1, function(s, w) {
|
||||
server = s;
|
||||
wallet = w;
|
||||
|
||||
helpers.stubUtxos(server, wallet, _.range(2), function() {
|
||||
var txOpts = {
|
||||
toAddress: '18PzpUFkFZE8zKWUPvfykkTxmB9oMR8qP7',
|
||||
amount: helpers.toSatoshi(0.1),
|
||||
};
|
||||
async.eachSeries(_.range(2), function(i, next) {
|
||||
server.createTxLegacy(txOpts, function(err, tx) {
|
||||
next();
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should delete a wallet', function(done) {
|
||||
server.removeWallet({}, function(err) {
|
||||
should.not.exist(err);
|
||||
server.getWallet({}, function(err, w) {
|
||||
should.exist(err);
|
||||
err.code.should.equal('WALLET_NOT_FOUND');
|
||||
should.not.exist(w);
|
||||
async.parallel([
|
||||
|
||||
function(next) {
|
||||
server.storage.fetchAddresses(wallet.id, function(err, items) {
|
||||
items.length.should.equal(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server.storage.fetchTxs(wallet.id, {}, function(err, items) {
|
||||
items.length.should.equal(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server.storage.fetchNotifications(wallet.id, null, 0, function(err, items) {
|
||||
items.length.should.equal(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
], function(err) {
|
||||
should.not.exist(err);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// creates 2 wallet, and deletes only 1.
|
||||
it('should delete a wallet, and only that wallet', function(done) {
|
||||
var server2, wallet2;
|
||||
async.series([
|
||||
|
||||
function(next) {
|
||||
helpers.createAndJoinWallet(1, 1, {
|
||||
offset: 1
|
||||
}, function(s, w) {
|
||||
server2 = s;
|
||||
wallet2 = w;
|
||||
|
||||
helpers.stubUtxos(server2, wallet2, _.range(1, 3), function() {
|
||||
var txOpts = helpers.createSimpleProposalOpts('18PzpUFkFZE8zKWUPvfykkTxmB9oMR8qP7', 0.1, TestData.copayers[1].privKey_1H_0, {
|
||||
message: 'some message'
|
||||
});
|
||||
async.eachSeries(_.range(2), function(i, next) {
|
||||
server2.createTxLegacy(txOpts, function(err, tx) {
|
||||
should.not.exist(err);
|
||||
next(err);
|
||||
});
|
||||
}, next);
|
||||
});
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server.removeWallet({}, next);
|
||||
},
|
||||
function(next) {
|
||||
server.getWallet({}, function(err, wallet) {
|
||||
should.exist(err);
|
||||
err.code.should.equal('WALLET_NOT_FOUND');
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getWallet({}, function(err, wallet) {
|
||||
should.not.exist(err);
|
||||
should.exist(wallet);
|
||||
wallet.id.should.equal(wallet2.id);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getMainAddresses({}, function(err, addresses) {
|
||||
should.not.exist(err);
|
||||
should.exist(addresses);
|
||||
addresses.length.should.above(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getTxs({}, function(err, txs) {
|
||||
should.not.exist(err);
|
||||
should.exist(txs);
|
||||
txs.length.should.equal(2);
|
||||
next();
|
||||
});
|
||||
},
|
||||
function(next) {
|
||||
server2.getNotifications({}, function(err, notifications) {
|
||||
should.not.exist(err);
|
||||
should.exist(notifications);
|
||||
notifications.length.should.above(0);
|
||||
next();
|
||||
});
|
||||
},
|
||||
], function(err) {
|
||||
should.not.exist(err);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('#removePendingTx', function() {
|
||||
var server, wallet, txp;
|
||||
beforeEach(function(done) {
|
||||
|
@ -6390,7 +6375,7 @@ describe('Wallet service', function() {
|
|||
});
|
||||
});
|
||||
|
||||
describe('Subscribe/unsubscribe', function() {
|
||||
describe('Push notifications', function() {
|
||||
var server, wallet;
|
||||
beforeEach(function(done) {
|
||||
helpers.createAndJoinWallet(2, 3, function(s, w) {
|
||||
|
|
Loading…
Reference in New Issue