mirror of https://github.com/BTCPrivate/copay.git
More tests on Identity
This commit is contained in:
parent
744278531a
commit
4ade9a893f
164
test/Identity.js
164
test/Identity.js
|
@ -146,28 +146,63 @@ describe('Identity model', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#open', function(done) {
|
describe('#open', function(done) {
|
||||||
it.skip('should return last focused wallet', function(done) {
|
it('should open a profile', function(done) {
|
||||||
var wallets = [{
|
var storage = sinon.stub();
|
||||||
id: 'wallet1',
|
storage.setCredentials = sinon.stub();
|
||||||
store: sinon.stub().yields(null),
|
|
||||||
netStart: sinon.stub(),
|
var opts = {
|
||||||
}, {
|
email: 'test@test.com',
|
||||||
id: 'wallet2',
|
password: '123',
|
||||||
store: sinon.stub().yields(null),
|
network: {
|
||||||
netStart: sinon.stub(),
|
testnet: {
|
||||||
}, {
|
url: 'https://test-insight.bitpay.com:443'
|
||||||
id: 'wallet3',
|
},
|
||||||
store: sinon.stub().yields(null),
|
livenet: {
|
||||||
netStart: sinon.stub(),
|
url: 'https://insight.bitpay.com:443'
|
||||||
}];
|
},
|
||||||
var args = createIdentity();
|
},
|
||||||
Identity.create(args.params, function(err, identity) {
|
storage: storage,
|
||||||
// TODO: Add checks for what is this testing
|
};
|
||||||
|
|
||||||
|
var iden = new Identity(opts);
|
||||||
|
|
||||||
|
storage.getItem = sinon.stub().yields(null, JSON.stringify(iden));
|
||||||
|
|
||||||
|
Identity.open(opts, function(err, res) {
|
||||||
|
should.not.exist(err);
|
||||||
|
should.exist(res);
|
||||||
|
res.should.be.deep.equal(iden);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#resendVerificationEmail', function(done) {
|
||||||
|
it('should resend verification email', function() {
|
||||||
|
var storage = sinon.stub();
|
||||||
|
storage.setCredentials = sinon.stub();
|
||||||
|
storage.resendVerificationEmail = sinon.stub().yields();
|
||||||
|
|
||||||
|
var opts = {
|
||||||
|
email: 'test@test.com',
|
||||||
|
password: '123',
|
||||||
|
network: {
|
||||||
|
testnet: {
|
||||||
|
url: 'https://test-insight.bitpay.com:443'
|
||||||
|
},
|
||||||
|
livenet: {
|
||||||
|
url: 'https://insight.bitpay.com:443'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
storage: storage,
|
||||||
|
};
|
||||||
|
|
||||||
|
var iden = new Identity(opts);
|
||||||
|
iden.resendVerificationEmail(function() {});
|
||||||
|
storage.resendVerificationEmail.calledOnce.should.be.true;
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#openWallets', function(done) {
|
describe('#openWallets', function(done) {
|
||||||
it('should emit noWallets', function() {
|
it('should emit noWallets', function() {
|
||||||
|
@ -179,6 +214,27 @@ describe('Identity model', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
describe('#setBackupNeeded', function(done) {
|
||||||
|
it('should set the flag backupNeeded to true', function() {
|
||||||
|
var iden = new Identity(getDefaultParams());
|
||||||
|
iden.verifyChecksum = sinon.stub().yields(null, true);
|
||||||
|
iden.setBackupNeeded(true);
|
||||||
|
iden.backupNeeded.should.be.true;
|
||||||
|
iden.store.calledOnce.should.be.true;
|
||||||
|
iden.store.getCall(0).args[0].noWallets.should.equal(true);
|
||||||
|
|
||||||
|
});
|
||||||
|
it('should set the flag backupNeeded to false', function() {
|
||||||
|
var iden = new Identity(getDefaultParams());
|
||||||
|
iden.verifyChecksum = sinon.stub().yields(null, true);
|
||||||
|
iden.setBackupNeeded(false);
|
||||||
|
iden.backupNeeded.should.be.false;
|
||||||
|
iden.store.calledOnce.should.be.true;
|
||||||
|
iden.store.getCall(0).args[0].noWallets.should.equal(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#close', function(done) {
|
describe('#close', function(done) {
|
||||||
it('should store profile', function(done) {
|
it('should store profile', function(done) {
|
||||||
var iden = new Identity(getDefaultParams());
|
var iden = new Identity(getDefaultParams());
|
||||||
|
@ -194,7 +250,7 @@ describe('Identity model', function() {
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('should not store profile', function(done) {
|
it('should not store profile when out of sync', function(done) {
|
||||||
var iden = new Identity(getDefaultParams());
|
var iden = new Identity(getDefaultParams());
|
||||||
sinon.spy(iden, 'emitAndKeepAlive');
|
sinon.spy(iden, 'emitAndKeepAlive');
|
||||||
sinon.spy(iden, '_cleanUp');
|
sinon.spy(iden, '_cleanUp');
|
||||||
|
@ -451,8 +507,6 @@ describe('Identity model', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#retrieveWalletFromStorage', function() {
|
describe('#retrieveWalletFromStorage', function() {
|
||||||
|
|
||||||
|
|
||||||
it('should return wallet', function(done) {
|
it('should return wallet', function(done) {
|
||||||
var args = createIdentity();
|
var args = createIdentity();
|
||||||
args.storage.getItem.onFirstCall().callsArgWith(1, null, '{"wallet": "fakeData"}');
|
args.storage.getItem.onFirstCall().callsArgWith(1, null, '{"wallet": "fakeData"}');
|
||||||
|
@ -476,6 +530,56 @@ describe('Identity model', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
describe('#importWalletFromObj', function() {
|
||||||
|
it('should import a wallet, call the right encryption functions', function(done) {
|
||||||
|
var args = createIdentity();
|
||||||
|
args.storage.getItem.onFirstCall().callsArgWith(1, null, '{"wallet": "fakeData"}');
|
||||||
|
var backup = Wallet.fromUntrustedObj;
|
||||||
|
args.params.noWallets = true;
|
||||||
|
sinon.stub().returns(args.wallet);
|
||||||
|
|
||||||
|
|
||||||
|
var fakeCrypto = {
|
||||||
|
kdf: sinon.stub().returns('passphrase'),
|
||||||
|
decrypt: sinon.stub().returns('{"walletId":123}'),
|
||||||
|
};
|
||||||
|
|
||||||
|
function getNewWallet2(args) {
|
||||||
|
var w = sinon.stub();
|
||||||
|
w.getId = sinon.stub().returns('wid1');
|
||||||
|
w.getStorageKey = sinon.stub().returns('wkey');
|
||||||
|
w.toObj = sinon.stub().returns({
|
||||||
|
obj: 1
|
||||||
|
});
|
||||||
|
w.getName = sinon.stub().returns('name');
|
||||||
|
w.setVersion = sinon.stub();
|
||||||
|
w.on = sinon.stub();
|
||||||
|
w.netStart = sinon.stub();
|
||||||
|
w.updateIndexes = sinon.stub().yields(null),
|
||||||
|
w.args = args;
|
||||||
|
return w;
|
||||||
|
}
|
||||||
|
|
||||||
|
var opts = {
|
||||||
|
importWallet: sinon.stub().returns(getNewWallet2()),
|
||||||
|
cryptoUtil: fakeCrypto,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Identity.create(args.params, function(err, iden) {
|
||||||
|
|
||||||
|
iden.importWalletFromObj(getNewWallet2(), opts, function(err) {
|
||||||
|
should.not.exist(err);
|
||||||
|
|
||||||
|
iden.store.restore();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// This is implemented in Compatibility
|
// This is implemented in Compatibility
|
||||||
describe.skip('#importWallet', function() {
|
describe.skip('#importWallet', function() {
|
||||||
it('should import a wallet, call the right encryption functions', function(done) {
|
it('should import a wallet, call the right encryption functions', function(done) {
|
||||||
|
@ -771,15 +875,23 @@ describe('Identity model', function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should open wallets', function() {
|
it('should open wallets', function(done) {
|
||||||
|
var c = 0;
|
||||||
|
var old = iden.readAndBindWallet;
|
||||||
|
|
||||||
iden.addWallet(w);
|
iden.addWallet(w);
|
||||||
iden.addWallet(w2);
|
iden.addWallet(w2);
|
||||||
iden.storage.getItem = sinon.stub().yields(w, JSON.stringify(iden));
|
|
||||||
iden.readAndBindWallet = sinon.spy();
|
|
||||||
iden.openWallets();
|
|
||||||
iden.walletIds.should.deep.equal(['32', '33']);
|
|
||||||
iden.readAndBindWallet.callCount.should.be.equal(1);
|
|
||||||
|
|
||||||
|
iden.readAndBindWallet = function(wid, myFunction) {
|
||||||
|
c++;
|
||||||
|
if (c == 2) {
|
||||||
|
iden.readAndBindWallet = old;
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
myFunction();
|
||||||
|
};
|
||||||
|
|
||||||
|
iden.openWallets();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not add same wallet twice', function() {
|
it('should not add same wallet twice', function() {
|
||||||
|
|
Loading…
Reference in New Issue