prioritize error messages

This commit is contained in:
Ivan Socolsky 2015-09-07 18:52:07 -03:00
parent 69ae9a63e7
commit 3bf7b4d51f
2 changed files with 21 additions and 4 deletions

View File

@ -587,12 +587,12 @@ WalletService.prototype.joinWallet = function(opts, cb) {
return cb(new ClientError()); return cb(new ClientError());
} }
if (wallet.copayers.length == wallet.n) return cb(Errors.WALLET_FULL);
if (_.find(wallet.copayers, { if (_.find(wallet.copayers, {
xPubKey: opts.xPubKey xPubKey: opts.xPubKey
})) return cb(Errors.COPAYER_IN_WALLET); })) return cb(Errors.COPAYER_IN_WALLET);
if (wallet.copayers.length == wallet.n) return cb(Errors.WALLET_FULL);
self._addCopayerToWallet(wallet, opts, cb); self._addCopayerToWallet(wallet, opts, cb);
}); });
}); });

View File

@ -940,8 +940,8 @@ describe('Wallet service', function() {
server = new WalletService(); server = new WalletService();
var walletOpts = { var walletOpts = {
name: 'my wallet', name: 'my wallet',
m: 2, m: 1,
n: 3, n: 2,
pubKey: TestData.keyPair.pub, pubKey: TestData.keyPair.pub,
}; };
server.createWallet(walletOpts, function(err, wId) { server.createWallet(walletOpts, function(err, wId) {
@ -1054,6 +1054,23 @@ describe('Wallet service', function() {
}); });
}); });
it('should return copayer in wallet error before full wallet', function(done) {
helpers.createAndJoinWallet(1, 1, function(s, wallet) {
var copayerOpts = helpers.getSignedCopayerOpts({
walletId: wallet.id,
name: 'me',
xPubKey: TestData.copayers[0].xPubKey_44H_0H_0H,
requestPubKey: TestData.copayers[0].pubKey_1H_0,
supportBIP44AndP2PKH: true,
});
server.joinWallet(copayerOpts, function(err) {
should.exist(err);
err.code.should.equal('COPAYER_IN_WALLET');
done();
});
});
});
it('should fail to re-join wallet', function(done) { it('should fail to re-join wallet', function(done) {
var copayerOpts = helpers.getSignedCopayerOpts({ var copayerOpts = helpers.getSignedCopayerOpts({
walletId: walletId, walletId: walletId,