Browse Source

add WalletComplete notification

activeAddress
Ivan Socolsky 10 years ago
parent
commit
1f2ac1296e
  1. 27
      lib/server.js
  2. 40
      test/integration/server.js

27
lib/server.js

@ -423,11 +423,28 @@ WalletService.prototype.joinWallet = function(opts, cb) {
self.storage.storeWalletAndUpdateCopayersLookup(wallet, function(err) { self.storage.storeWalletAndUpdateCopayersLookup(wallet, function(err) {
if (err) return cb(err); if (err) return cb(err);
self._notify('NewCopayer', {
walletId: opts.walletId, async.parallel([
copayerId: copayer.id,
copayerName: copayer.name, function(done) {
}, function() { self._notify('NewCopayer', {
walletId: opts.walletId,
copayerId: copayer.id,
copayerName: copayer.name,
}, done);
},
function(done) {
if (wallet.isComplete() && wallet.isShared()) {
self._notify('WalletComplete', {
walletId: opts.walletId,
}, {
isGlobal: true
}, done);
} else {
done();
}
},
], function() {
return cb(null, { return cb(null, {
copayerId: copayer.id, copayerId: copayer.id,
wallet: wallet wallet: wallet

40
test/integration/server.js

@ -478,7 +478,22 @@ describe('Wallet service', function() {
var copayer = wallet.copayers[0]; var copayer = wallet.copayers[0];
copayer.name.should.equal('me'); copayer.name.should.equal('me');
copayer.id.should.equal(copayerId); copayer.id.should.equal(copayerId);
done(); server.getNotifications({}, function(err, notifications) {
should.not.exist(err);
var notif = _.find(notifications, {
type: 'NewCopayer'
});
should.exist(notif);
notif.data.walletId.should.equal(walletId);
notif.data.copayerId.should.equal(copayerId);
notif.data.copayerName.should.equal('me');
notif = _.find(notifications, {
type: 'WalletComplete'
});
should.not.exist(notif);
done();
});
}); });
}); });
}); });
@ -548,7 +563,7 @@ describe('Wallet service', function() {
}); });
}); });
it('should fail two wallets with same xPubKey', function(done) { it('should fail to join two wallets with same xPubKey', function(done) {
var copayerOpts = helpers.getSignedCopayerOpts({ var copayerOpts = helpers.getSignedCopayerOpts({
walletId: walletId, walletId: walletId,
name: 'me', name: 'me',
@ -630,6 +645,27 @@ describe('Wallet service', function() {
should.not.exist(err); should.not.exist(err);
wallet.status.should.equal('complete'); wallet.status.should.equal('complete');
wallet.publicKeyRing.length.should.equal(3); wallet.publicKeyRing.length.should.equal(3);
server.getNotifications({}, function(err, notifications) {
should.not.exist(err);
var notif = _.find(notifications, {
type: 'WalletComplete'
});
should.exist(notif);
notif.data.walletId.should.equal(wallet.id);
done();
});
});
});
});
it('should not notify WalletComplete if 1-of-1', function(done) {
helpers.createAndJoinWallet(1, 1, function(server) {
server.getNotifications({}, function(err, notifications) {
should.not.exist(err);
var notif = _.find(notifications, {
type: 'WalletComplete'
});
should.not.exist(notif);
done(); done();
}); });
}); });

Loading…
Cancel
Save