mirror of https://github.com/BTCPrivate/copay.git
Added more test to Wallet
This commit is contained in:
parent
fc824a1c11
commit
bf82fa0760
|
@ -713,6 +713,10 @@ Wallet.prototype._onData = function(senderId, data, ts) {
|
||||||
|
|
||||||
this.updateSyncedTimestamp(ts);
|
this.updateSyncedTimestamp(ts);
|
||||||
|
|
||||||
|
console.log('data.type ', data.type);
|
||||||
|
console.log('this.id ', this.id);
|
||||||
|
console.log('data.walletId ', data.walletId);
|
||||||
|
|
||||||
if (data.type !== 'walletId' && this.id !== data.walletId) {
|
if (data.type !== 'walletId' && this.id !== data.walletId) {
|
||||||
log.debug('Wallet:' + this.id + ' Received corrupt message:', data)
|
log.debug('Wallet:' + this.id + ' Received corrupt message:', data)
|
||||||
this.emitAndKeepAlive('corrupt', senderId);
|
this.emitAndKeepAlive('corrupt', senderId);
|
||||||
|
|
218
test/Wallet.js
218
test/Wallet.js
|
@ -521,6 +521,18 @@ describe('Wallet model', function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should call emitAndKeepAlive', function() {
|
||||||
|
var data = {
|
||||||
|
type: "typeUnknown",
|
||||||
|
walletId: '00001111'
|
||||||
|
};
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, 'emitAndKeepAlive');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
it('should call sendWalletReady', function() {
|
it('should call sendWalletReady', function() {
|
||||||
var data = {
|
var data = {
|
||||||
type: "walletId",
|
type: "walletId",
|
||||||
|
@ -532,6 +544,109 @@ describe('Wallet model', function() {
|
||||||
sinon.assert.callCount(spy, 1);
|
sinon.assert.callCount(spy, 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should call sendPublicKeyRing', function() {
|
||||||
|
var data = {
|
||||||
|
type: "walletReady",
|
||||||
|
walletId: w.id
|
||||||
|
};
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, 'sendPublicKeyRing');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call _onPublicKeyRing', function() {
|
||||||
|
var data = {
|
||||||
|
type: "publicKeyRing",
|
||||||
|
walletId: w.id,
|
||||||
|
publicKeyRing: {
|
||||||
|
networkName: 'testnet',
|
||||||
|
requiredCopayers: 3,
|
||||||
|
totalCopayers: 3,
|
||||||
|
indexes: [],
|
||||||
|
nicknameFor: 'NickName',
|
||||||
|
copayersExtPubKeys: [],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, '_onPublicKeyRing');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call _onReject', function() {
|
||||||
|
var data = {
|
||||||
|
type: "reject",
|
||||||
|
walletId: w.id,
|
||||||
|
ntxid: '12345',
|
||||||
|
};
|
||||||
|
|
||||||
|
//todo: add a txp
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, '_onReject');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call _onSeen', function() {
|
||||||
|
var data = {
|
||||||
|
type: "seen",
|
||||||
|
walletId: w.id,
|
||||||
|
ntxid: '12345',
|
||||||
|
};
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, '_onSeen');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call _onTxProposal', function() {
|
||||||
|
var data = {
|
||||||
|
type: "txProposal",
|
||||||
|
walletId: w.id,
|
||||||
|
ntxid: '12345',
|
||||||
|
txProposal: '0001'
|
||||||
|
};
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, '_onTxProposal');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call _onSignature', function() {
|
||||||
|
var data = {
|
||||||
|
type: "signature",
|
||||||
|
walletId: w.id,
|
||||||
|
};
|
||||||
|
|
||||||
|
var spy = sinon.spy(w, '_onSignature');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it('should call _onIndexes', function() {
|
||||||
|
var data = {
|
||||||
|
type: "indexes",
|
||||||
|
walletId: w.id,
|
||||||
|
indexes: []
|
||||||
|
};
|
||||||
|
var spy = sinon.spy(w, '_onIndexes');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call _onAddressBook', function() {
|
||||||
|
var data = {
|
||||||
|
type: "addressbook",
|
||||||
|
walletId: w.id,
|
||||||
|
};
|
||||||
|
var spy = sinon.spy(w, '_onAddressBook');
|
||||||
|
w._onData(sender, data, ts);
|
||||||
|
sinon.assert.callCount(spy, 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -1061,6 +1176,80 @@ describe('Wallet model', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
describe('#_processTxProposalPayPro', function() {
|
||||||
|
it('should return without error', function(done) {
|
||||||
|
var w = cachedCreateW2();
|
||||||
|
|
||||||
|
var utxos = [{
|
||||||
|
txid: 'txid0',
|
||||||
|
vout: 'vout1',
|
||||||
|
}, {
|
||||||
|
txid: 'txid0',
|
||||||
|
vout: 'vout2',
|
||||||
|
}];
|
||||||
|
|
||||||
|
var txp = {
|
||||||
|
ntxid: 'txid1',
|
||||||
|
isPending: true,
|
||||||
|
builder: {
|
||||||
|
utxos: [utxos[0]],
|
||||||
|
},
|
||||||
|
paymentProtocolURL: null
|
||||||
|
};
|
||||||
|
txp.addMerchantData = sinon.spy();
|
||||||
|
w.getTxProposals = sinon.stub().returns([txp]);
|
||||||
|
w.blockchain.getUnspent = sinon.stub().yields(null, utxos);
|
||||||
|
|
||||||
|
w._processTxProposalPayPro(txp, function(err) {
|
||||||
|
should.not.exist(err);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it('should call addMerchantData', function(done) {
|
||||||
|
var w = cachedCreateW2();
|
||||||
|
|
||||||
|
var utxos = [{
|
||||||
|
txid: 'txid0',
|
||||||
|
vout: 'vout1',
|
||||||
|
}, {
|
||||||
|
txid: 'txid0',
|
||||||
|
vout: 'vout2',
|
||||||
|
}];
|
||||||
|
|
||||||
|
var txp = {
|
||||||
|
ntxid: 'txid1',
|
||||||
|
isPending: true,
|
||||||
|
builder: {
|
||||||
|
utxos: [utxos[0]],
|
||||||
|
},
|
||||||
|
paymentProtocolURL: 'http://mydomain.com'
|
||||||
|
};
|
||||||
|
txp.addMerchantData = sinon.spy();
|
||||||
|
w.getTxProposals = sinon.stub().returns([txp]);
|
||||||
|
w.blockchain.getUnspent = sinon.stub().yields(null, utxos);
|
||||||
|
|
||||||
|
sinon.stub(w, 'fetchPaymentRequest').yields(null, {
|
||||||
|
outs: [{
|
||||||
|
address: 'n2Wz7KjyzBJVaNMBN88Lj1YUHMDZSAGeMV',
|
||||||
|
amountSatStr: '123400',
|
||||||
|
}],
|
||||||
|
request_url: 'url',
|
||||||
|
pr: {
|
||||||
|
signature: '123',
|
||||||
|
},
|
||||||
|
total: '123400',
|
||||||
|
});
|
||||||
|
|
||||||
|
w._processTxProposalPayPro(txp, function(err) {
|
||||||
|
should.not.exist(err);
|
||||||
|
|
||||||
|
txp.addMerchantData.calledOnce.should.be.true;
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#fetchPaymentRequest', function() {
|
describe('#fetchPaymentRequest', function() {
|
||||||
it('should fetch a payment request', function(done) {
|
it('should fetch a payment request', function(done) {
|
||||||
var w = cachedCreateW2();
|
var w = cachedCreateW2();
|
||||||
|
@ -1535,6 +1724,35 @@ describe('Wallet model', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
describe('#changeSettings', function() {
|
||||||
|
it('should call emitAndKeepAlive', function() {
|
||||||
|
var w = cachedCreateW2();
|
||||||
|
w.emitAndKeepAlive = sinon.spy();
|
||||||
|
var settings = {
|
||||||
|
unitName: 'bits',
|
||||||
|
unitToSatoshi: 100,
|
||||||
|
alternativeName: 'US Dollar',
|
||||||
|
alternativeIsoCode: 'USD',
|
||||||
|
};
|
||||||
|
w.changeSettings(settings);
|
||||||
|
w.emitAndKeepAlive.calledOnce.should.equal(true);
|
||||||
|
w.emitAndKeepAlive.getCall(0).args[0].should.equal('settingsUpdated');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
describe('#_onNoMessages', function() {
|
||||||
|
it('should call sendWalletReady', function() {
|
||||||
|
var w = cachedCreateW2();
|
||||||
|
w.sendWalletReady = sinon.spy();
|
||||||
|
w._onNoMessages();
|
||||||
|
w.sendWalletReady.calledOnce.should.equal(true);
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#netStart', function() {
|
describe('#netStart', function() {
|
||||||
it('should call Network.start', function() {
|
it('should call Network.start', function() {
|
||||||
var w = cachedCreateW2();
|
var w = cachedCreateW2();
|
||||||
|
|
Loading…
Reference in New Issue