add basic integration with wallet

...and further tests and stuff
This commit is contained in:
Ryan X. Charles 2014-04-15 14:50:14 -03:00
parent 01ca3763d8
commit c1ff96ab1b
2 changed files with 53 additions and 15 deletions

29
API.js
View File

@ -1,6 +1,4 @@
var imports = require('soop').imports(); var imports = require('soop').imports();
var PublicKeyRing = imports.PublicKeyRing || require('./js/models/core/PublicKeyRing');
//var Wallet = imports.Wallet || require('../js/models/core/Wallet');
var API = function(opts) { var API = function(opts) {
this._init(opts); this._init(opts);
@ -10,20 +8,25 @@ API.prototype._init = function(opts) {
var self = this; var self = this;
opts = opts ? opts : {}; opts = opts ? opts : {};
self.opts = opts;
self.optsList = [ var Wallet = require('soop').load('./js/models/core/Wallet', {
'publicKeyRing', Storage: opts.Storage ? opts.Storage : require('./test/FakeStorage'),
'wallet' Network: opts.Network ? opts.Network : require('./js/models/Network/WebRTC'),
]; Blockchain: opts.Blockchain ? opts.Blockchain : require('./js/models/Blockchain/Insight')
});
self.opts = {}; var config = {
for (var a in self.optsList) { wallet: {
if (opts.hasOwnProperty(a)) requiredCopayers: opts.requiredCopayers ? opts.requiredCopayers : 3,
self.opts[a] = opts[a]; totalCopayers: opts.totalCopayers ? opts.totalCopayers : 5,
} }
};
self.publicKeyRing = self.opts.publicKeyRing ? self.opts.publicKeyRing : new PublicKeyRing(); var walletConfig = opts.walletConfig ? opts.walletConfig : config;
//self.wallet = self.opts.wallet ? self.opts.wallet : new Wallet(); var walletOpts = opts.walletOpts ? opts.walletOpts : {};
self.wallet = self.opts.wallet ? self.opts.wallet : Wallet.factory.create(walletConfig, walletOpts);
}; };
API._coerceArgTypes = function(args, argTypes) { API._coerceArgTypes = function(args, argTypes) {
@ -174,7 +177,7 @@ API.prototype.getCommands.argTypes =
API.prototype.getPublicKeyRingId = function getPublicKeyRingId(callback) { API.prototype.getPublicKeyRingId = function getPublicKeyRingId(callback) {
var self = this; var self = this;
return callback(null, self.publicKeyRing.id); return callback(null, self.wallet.publicKeyRing.walletId);
}; };
API.prototype.getPublicKeyRingId.argTypes = API.prototype.getPublicKeyRingId.argTypes =

View File

@ -46,4 +46,39 @@ describe('API', function() {
} }
}); });
describe('#echo', function() {
it('should echo a string', function(done) {
var api = new API();
var str = 'mystr';
api.echo(str, function(err, result) {
result.should.equal(str);
done();
});
});
});
describe('#echoNumber', function() {
it('should echo a number', function(done) {
var api = new API();
var num = 500;
api.echo(num, function(err, result) {
result.should.equal(num);
(typeof result).should.equal('number');
done();
});
});
});
describe('#echoObject', function() {
it('should echo an object', function(done) {
var api = new API();
var obj = {test:'test'};
api.echo(obj, function(err, result) {
result.test.should.equal(obj.test);
(typeof result).should.equal('object');
done();
});
});
});
}); });