wallet model basic functions (WIP)
This commit is contained in:
parent
bd8271d0ec
commit
3bf02173c5
3 changed files with 138 additions and 25 deletions
14
test/FakeStorage.js
Normal file
14
test/FakeStorage.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
var FakeStorage = function(){
|
||||
this.storage = {};
|
||||
};
|
||||
|
||||
FakeStorage.prototype.read = function (id) {
|
||||
return this.storage[id];
|
||||
};
|
||||
|
||||
FakeStorage.prototype.save = function(id, payload) {
|
||||
this.storage[id] = payload;
|
||||
}
|
||||
|
||||
module.exports = require('soop')(FakeStorage);
|
||||
|
|
@ -6,8 +6,7 @@ var bitcore = bitcore || require('../node_modules/bitcore');
|
|||
|
||||
var cosign = cosign || {};
|
||||
|
||||
var fakeStorage = {}; // TODO
|
||||
|
||||
var fakeStorage = require('./FakeStorage');
|
||||
var Wallet = cosign.Wallet || require('soop').load('../js/models/Wallet', {Storage: fakeStorage});
|
||||
|
||||
|
||||
|
|
@ -15,6 +14,22 @@ var config = {
|
|||
network:'livenet',
|
||||
};
|
||||
|
||||
var createW = function () {
|
||||
var w = new Wallet(config);
|
||||
should.exist(w);
|
||||
|
||||
var cosigners = [];
|
||||
for(var i=0; i<4; i++) {
|
||||
var c = new Wallet(config);
|
||||
w.haveAllNeededPubKeys().should.equal(false);
|
||||
|
||||
w.addCosignerExtendedPubKey(c.getExtendedPubKey());
|
||||
cosigners.push(c);
|
||||
}
|
||||
|
||||
return {w:w, cosigners: cosigners};
|
||||
};
|
||||
|
||||
describe('Wallet model', function() {
|
||||
|
||||
it('should create an instance (livenet)', function () {
|
||||
|
|
@ -51,33 +66,44 @@ describe('Wallet model', function() {
|
|||
should.exist(w2.getExtendedPubKey());
|
||||
});
|
||||
|
||||
it('should fail to generate shared pub keys', function () {
|
||||
it('should fail to generate shared pub keys wo extended key', function () {
|
||||
var w2 = new Wallet(config);
|
||||
should.exist(w2);
|
||||
w2.getChangeAddress.bind(0).should.throw();
|
||||
|
||||
w2.registeredCosigners().should.equal(1);
|
||||
w2.haveAllNeededPubKeys().should.equal(false);
|
||||
|
||||
w2.getChangeAddress.bind(0).should.throw();
|
||||
});
|
||||
|
||||
it('should add and check when adding shared pub keys', function () {
|
||||
var w = new Wallet(config);
|
||||
should.exist(w);
|
||||
var k = createW();
|
||||
var w = k.w;
|
||||
var cosigners = k.cosigners;
|
||||
|
||||
var cosigners = [];
|
||||
for(var i=0; i<4; i++) {
|
||||
var c = new Wallet(config);
|
||||
w.haveAllNeededPubKeys().should.equal(false);
|
||||
|
||||
w.addCosignerExtendedPubKey(c.getExtendedPubKey());
|
||||
cosigners.push(c);
|
||||
}
|
||||
w.haveAllNeededPubKeys().should.equal(true);
|
||||
w.addCosignerExtendedPubKey.bind(w.getExtendedPubKey()).should.throw();
|
||||
w.addCosignerExtendedPubKey.bind(cosigners[0].getExtendedPubKey()).should.throw();
|
||||
w.addCosignerExtendedPubKey.bind((new Wallet(config)).getExtendedPubKey()).should.throw();
|
||||
});
|
||||
|
||||
it('show be able to store and retrieve', function () {
|
||||
var k = createW();
|
||||
var w = k.w;
|
||||
var cosigners = k.cosigners;
|
||||
|
||||
w.store().should.equal(true);
|
||||
var ID = w.id;
|
||||
delete w['id'];
|
||||
w.store.bind().should.throw();
|
||||
|
||||
var w2 = Wallet.read(ID);
|
||||
w2.haveAllNeededPubKeys().should.equal(true);
|
||||
w2.addCosignerExtendedPubKey.bind(w.getExtendedPubKey()).should.throw();
|
||||
w2.addCosignerExtendedPubKey.bind(cosigners[0].getExtendedPubKey()).should.throw();
|
||||
w2.addCosignerExtendedPubKey.bind((new Wallet(config)).getExtendedPubKey()).should.throw();
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue