Storing the backup flag
This commit is contained in:
parent
d0c5e16865
commit
52fb680658
6 changed files with 34 additions and 98 deletions
|
|
@ -274,10 +274,17 @@ Identity.prototype.toObj = function() {
|
|||
|
||||
Identity.prototype.exportEncryptedWithWalletInfo = function(opts) {
|
||||
var crypto = opts.cryptoUtil || cryptoUtil;
|
||||
this.backupNeeded = false;
|
||||
|
||||
return crypto.encrypt(this.password, this.exportWithWalletInfo(opts));
|
||||
};
|
||||
|
||||
Identity.prototype.setBackupDone = function() {
|
||||
this.backupNeeded = false;
|
||||
this.store({
|
||||
noWallets: true
|
||||
}, function() {});
|
||||
}
|
||||
|
||||
Identity.prototype.exportWithWalletInfo = function(opts) {
|
||||
return _.extend({
|
||||
wallets: _.map(this.wallets, function(wallet) {
|
||||
|
|
@ -295,12 +302,13 @@ Identity.prototype.exportWithWalletInfo = function(opts) {
|
|||
Identity.prototype.store = function(opts, cb) {
|
||||
var self = this;
|
||||
opts = opts || {};
|
||||
opts.backupNeeded = false;
|
||||
|
||||
var storeFunction = opts.failIfExists ? self.storage.createItem : self.storage.setItem;
|
||||
|
||||
storeFunction.call(self.storage, this.getId(), this.toObj(), function(err) {
|
||||
if (err) return cb(err);
|
||||
if (err) {
|
||||
return cb(err);
|
||||
}
|
||||
|
||||
if (opts.noWallets)
|
||||
return cb();
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ BackupService.prototype.profileEncrypted = function(iden) {
|
|||
|
||||
BackupService.prototype.profileDownload = function(iden) {
|
||||
var ew = this.profileEncrypted(iden);
|
||||
iden.setBackupDone();
|
||||
var name = iden.fullName;
|
||||
var filename = name + '-profile.json';
|
||||
this._download(ew, name, filename)
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ angular.module('copayApp.services')
|
|||
passphraseConfig: config.passphraseConfig,
|
||||
failIfExists: true,
|
||||
}, function(err, iden) {
|
||||
|
||||
if (err) return cb(err);
|
||||
preconditions.checkState(iden);
|
||||
root.bind(iden);
|
||||
|
|
|
|||
|
|
@ -498,79 +498,4 @@ describe('Identity model', function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe.only('Identity backupNeeded', function() {
|
||||
|
||||
it('should create Profile with backupNeeded set to true', function(done) {
|
||||
var args = createIdentity();
|
||||
Identity.create(args.params, function(err, iden) {
|
||||
should.not.exist(err);
|
||||
iden.backupNeeded.should.be.true;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('making a backup should set backupNeeded set to false', function(done) {
|
||||
var args = createIdentity();
|
||||
Identity.create(args.params, function(err, iden) {
|
||||
should.not.exist(err);
|
||||
iden.exportEncryptedWithWalletInfo(iden.password)
|
||||
iden.backupNeeded.should.be.false;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('adding a wallet should set backupNeeded to true', function(done) {
|
||||
var args = createIdentity();
|
||||
Identity.create(args.params, function(err, iden) {
|
||||
should.not.exist(err);
|
||||
iden.exportEncryptedWithWalletInfo(iden.password);
|
||||
iden.createWallet({
|
||||
walletClass: walletClass,
|
||||
}, function(err, w2) {
|
||||
iden.backupNeeded.should.be.true;
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('joining a wallet should set backupNeeded to true', function(done) {
|
||||
var args = createIdentity();
|
||||
var net = null;
|
||||
var opts = {
|
||||
secret: '8WtTuiFTkhP5ao7AF2QErSwV39Cbur6pdMebKzQXFqL59RscXM',
|
||||
nickname: 'test',
|
||||
password: 'pass'
|
||||
};
|
||||
args.params.Async = net = sinon.stub();
|
||||
net = sinon.stub();
|
||||
net.on = sinon.stub();
|
||||
net.start = sinon.stub();
|
||||
net.start.onFirstCall().callsArg(1);
|
||||
net.greet = sinon.stub();
|
||||
|
||||
Identity.create(args.params, function(err, iden) {
|
||||
iden.createWallet = sinon.stub();
|
||||
should.not.exist(err);
|
||||
iden.exportEncryptedWithWalletInfo(iden.password);
|
||||
|
||||
var fakeWallet = {
|
||||
sendWalletReady: _.noop
|
||||
};
|
||||
iden.createWallet.onFirstCall().yields(null, fakeWallet);
|
||||
opts.privHex = 'tprv8ZgxMBicQKsPf7MCvCjnhnr4uiR2Z2gyNC27vgd9KUu98F9mM1tbaRrWMyddVju36GxLbeyntuSadBAttriwGGMWUkRgVmUUCg5nFioGZsd';
|
||||
opts.Async = net;
|
||||
iden.joinWallet(opts, function(err, w) {
|
||||
console.log('err', err);
|
||||
console.log('w', w);
|
||||
|
||||
console.log('join Wallet');
|
||||
iden.backupNeeded.should.be.true;
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ describe("Angular services", function() {
|
|||
a[Waddr] = 200;
|
||||
w.getBalance = sinon.stub().yields(null, 100000001, a, 90000002, 5);
|
||||
|
||||
|
||||
//retuns values in DEFAULT UNIT(bits)
|
||||
balanceService.update(w, function() {
|
||||
var b = w.balanceInfo;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue