Remove underscore for lodash

This commit is contained in:
Esteban Ordano 2014-10-25 19:57:12 -03:00
commit 88459c74bb
20 changed files with 74 additions and 97 deletions

View file

@ -118,7 +118,7 @@ module.exports = function(grunt) {
'js/shell.js', // shell must be loaded before moment due to the way moment loads in a commonjs env 'js/shell.js', // shell must be loaded before moment due to the way moment loads in a commonjs env
'lib/moment/min/moment.min.js', 'lib/moment/min/moment.min.js',
'lib/qrcode-generator/js/qrcode.js', 'lib/qrcode-generator/js/qrcode.js',
'lib/underscore/underscore.js', 'lib/lodash/dist/lodash.js',
'lib/bitcore.js', 'lib/bitcore.js',
'lib/file-saver/FileSaver.js', 'lib/file-saver/FileSaver.js',
'lib/socket.io-client/socket.io.js', 'lib/socket.io-client/socket.io.js',

View file

@ -22,9 +22,9 @@
"mousetrap": "1.4.6", "mousetrap": "1.4.6",
"zeroclipboard": "~1.3.5", "zeroclipboard": "~1.3.5",
"ng-idle": "*", "ng-idle": "*",
"underscore": "~1.7.0",
"inherits": "~0.0.1", "inherits": "~0.0.1",
"angular-load": "0.2.0" "angular-load": "0.2.0",
"lodash": "~2.4.1"
}, },
"resolutions": { "resolutions": {
"angular": "=1.2.19" "angular": "=1.2.19"

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var copay = require('copay'); var copay = require('copay');
var _ = require('underscore'); var _ = require('lodash');
var config = defaultConfig; var config = defaultConfig;
var localConfig = JSON.parse(localStorage.getItem('config')); var localConfig = JSON.parse(localStorage.getItem('config'));
var defaults = JSON.parse(JSON.stringify(defaultConfig)); var defaults = JSON.parse(JSON.stringify(defaultConfig));

View file

@ -1,5 +1,5 @@
var config = require('../config'); var config = require('../config');
var _ = require('underscore'); var _ = require('lodash');
/** /**
* @desc * @desc

View file

@ -4,7 +4,7 @@
var preconditions = require('preconditions').singleton(); var preconditions = require('preconditions').singleton();
var HDPath = require('./HDPath'); var HDPath = require('./HDPath');
var _ = require('underscore'); var _ = require('lodash');
/** /**
* @desc * @desc

View file

@ -3,7 +3,7 @@
// 90.2% typed (by google's closure-compiler account) // 90.2% typed (by google's closure-compiler account)
var preconditions = require('preconditions').singleton(); var preconditions = require('preconditions').singleton();
var _ = require('underscore'); var _ = require('lodash');
/** /**
* @namespace * @namespace

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var preconditions = require('preconditions').singleton(); var preconditions = require('preconditions').singleton();
var _ = require('underscore'); var _ = require('lodash');
var bitcore = require('bitcore'); var bitcore = require('bitcore');
var log = require('../log'); var log = require('../log');
var async = require('async'); var async = require('async');

View file

@ -7,7 +7,7 @@
var sjcl = require('../../lib/sjcl'); var sjcl = require('../../lib/sjcl');
var preconditions = require('preconditions').instance(); var preconditions = require('preconditions').instance();
var _ = require('underscore'); var _ = require('lodash');
/** /**

View file

@ -7,7 +7,7 @@ var HK = bitcore.HierarchicalKey;
var WalletKey = bitcore.WalletKey; var WalletKey = bitcore.WalletKey;
var networks = bitcore.networks; var networks = bitcore.networks;
var util = bitcore.util; var util = bitcore.util;
var _ = require('underscore'); var _ = require('lodash');
var preconditions = require('preconditions').instance(); var preconditions = require('preconditions').instance();
var HDPath = require('./HDPath'); var HDPath = require('./HDPath');

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var preconditions = require('preconditions').instance(); var preconditions = require('preconditions').instance();
var _ = require('underscore'); var _ = require('lodash');
var log = require('../log'); var log = require('../log');
var bitcore = require('bitcore'); var bitcore = require('bitcore');
var HK = bitcore.HierarchicalKey; var HK = bitcore.HierarchicalKey;

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var bitcore = require('bitcore'); var bitcore = require('bitcore');
var _ = require('underscore'); var _ = require('lodash');
var util = bitcore.util; var util = bitcore.util;
var Transaction = bitcore.Transaction; var Transaction = bitcore.Transaction;
var BuilderMockV0 = require('./BuilderMockV0');; var BuilderMockV0 = require('./BuilderMockV0');;

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var EventEmitter = require('events').EventEmitter; var EventEmitter = require('events').EventEmitter;
var _ = require('underscore'); var _ = require('lodash');
var preconditions = require('preconditions').singleton(); var preconditions = require('preconditions').singleton();
var inherits = require('inherits'); var inherits = require('inherits');
var events = require('events'); var events = require('events');

View file

@ -3,7 +3,7 @@
*/ */
var sjcl = require('sjcl'); var sjcl = require('sjcl');
var log = require('../log.js'); var log = require('../log.js');
var _ = require('underscore'); var _ = require('lodash');
var SALT = 'copay random string NWRlNmExMTE4NzIzYzYyYWMwODU1MTdkN'; var SALT = 'copay random string NWRlNmExMTE4NzIzYzYyYWMwODU1MTdkN';
var SEPARATOR = '&'; var SEPARATOR = '&';

View file

@ -31,7 +31,7 @@ module.exports = function(config) {
'lib/angular-load/angular-load.min.js', 'lib/angular-load/angular-load.min.js',
'lib/angular-gettext/dist/angular-gettext.min.js', 'lib/angular-gettext/dist/angular-gettext.min.js',
'lib/inherits/inherits.js', 'lib/inherits/inherits.js',
'lib/underscore/underscore.js', 'lib/lodash/dist/lodash.js',
'lib/file-saver/FileSaver.js', 'lib/file-saver/FileSaver.js',
'lib/socket.io-client/socket.io.js', 'lib/socket.io-client/socket.io.js',
'lib/sjcl.js', 'lib/sjcl.js',

View file

@ -23,11 +23,11 @@
"dependencies": { "dependencies": {
"browser-request": "^0.3.2", "browser-request": "^0.3.2",
"inherits": "^2.0.1", "inherits": "^2.0.1",
"lodash": "^2.4.1",
"optimist": "^0.6.1", "optimist": "^0.6.1",
"preconditions": "^1.0.7", "preconditions": "^1.0.7",
"querystring": "^0.2.0", "querystring": "^0.2.0",
"request": "^2.40.0", "request": "^2.40.0"
"underscore": "^1.7.0"
}, },
"scripts": { "scripts": {
"start": "node server.js", "start": "node server.js",

View file

@ -12,5 +12,5 @@ if (!!window) {
} }
window.is_browser = true; window.is_browser = true;
window._ = require('underscore'); window._ = require('lodash');
} }

View file

@ -13,4 +13,4 @@ global.requireMock = function(name) {
} }
global.is_browser = typeof process == 'undefined' || typeof process.versions === 'undefined'; global.is_browser = typeof process == 'undefined' || typeof process.versions === 'undefined';
global._ = require('underscore'); global._ = require('lodash');

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var _ = require('underscore'); var _ = require('lodash');
var chai = chai || require('chai'); var chai = chai || require('chai');
var sinon = sinon || require('sinon'); var sinon = sinon || require('sinon');
var should = chai.should(); var should = chai.should();
@ -25,7 +25,7 @@ function assertObjectEqual(a, b) {
} }
describe.only('Identity model', function() { describe('Identity model', function() {
var wallet; var wallet;
var email = 'hola@hola.com'; var email = 'hola@hola.com';
var password = 'password'; var password = 'password';
@ -63,7 +63,7 @@ describe.only('Identity model', function() {
}; };
function getDefaultParams() { function getDefaultParams() {
var params = _.clone(config); var params = _.cloneDeep(config);
_.extend(params, { _.extend(params, {
email: email, email: email,
password: password password: password
@ -88,18 +88,16 @@ describe.only('Identity model', function() {
} }
function createIdentity(done) { function createIdentity(done) {
console.error("Reseting");
// TODO (eordano): Change this to proper dependency injection // TODO (eordano): Change this to proper dependency injection
blockchain = new FakeBlockchain(config.blockchain); var blockchain = new FakeBlockchain(config.blockchain);
var params = getDefaultParams();
blockchain.on = sinon.stub(); blockchain.on = sinon.stub();
Wallet._newInsight = sinon.stub().returns(blockchain); Wallet._newInsight = sinon.stub().returns(blockchain);
wallet = getNewWallet(); var wallet = getNewWallet();
Identity._newWallet = sinon.stub().returns(wallet); Identity._newWallet = sinon.stub().returns(wallet);
params = getDefaultParams();
Identity.create(params, done);
return { return {
blockchain: blockchain, blockchain: blockchain,
storage: params.storage, storage: params.storage,
@ -118,8 +116,9 @@ describe.only('Identity model', function() {
describe('Identity.create()', function() { describe('Identity.create()', function() {
it('should call .store', function(done) { it('should call .store', function(done) {
blockchain.on = sinon.spy(); var args = createIdentity();
Identity.create(getDefaultParams(), function(err, iden) { args.blockchain.on = sinon.stub();
Identity.create(args.params, function(err, iden) {
should.not.exist(err); should.not.exist(err);
should.exist(iden.wallets); should.exist(iden.wallets);
done(); done();
@ -127,7 +126,7 @@ describe.only('Identity model', function() {
}); });
}); });
describe('#open', function(done) { describe.only('#open', function(done) {
it('should return last focused wallet', function(done) { it('should return last focused wallet', function(done) {
var wallets = [{ var wallets = [{
@ -143,16 +142,9 @@ describe.only('Identity model', function() {
store: sinon.stub().yields(null), store: sinon.stub().yields(null),
netStart: sinon.stub(), netStart: sinon.stub(),
}]; }];
createIdentity(function(identity) { var args = createIdentity();
}); Identity.create(args.params, function(err, identity) {
.getLastFocusedWallet = sinon.stub().returns(wallets[1]); // TODO: Add checks for what is this testing
Identity._walletRead = sinon.stub();
Identity._walletRead.onCall(0).callsArgWith(2, null, wallets[0]);
Identity._walletRead.onCall(1).callsArgWith(2, null, wallets[1]);
Identity._walletRead.onCall(2).callsArgWith(2, null, wallets[2]);
Identity.open(email, password, config, function(err, iden, w) {
w.id.should.equal('wallet2');
done(); done();
}); });
}); });
@ -239,23 +231,8 @@ describe.only('Identity model', function() {
}); });
}); });
describe('#openWallet', function() { describe('#openWallet', function() {
beforeEach(function() {
iden.migrateWallet = sinon.stub().yields(null);
storage.setPassword = sinon.spy();
storage.getFirst = sinon.stub().yields(null, 'wallet1234');
var wallet = sinon.stub();
wallet.netStart = sinon.stub();
wallet.store = sinon.stub().yields(null);
Identity._walletRead = sinon.stub().callsArgWith(2, null, wallet);
});
it('should return wallet and call .store & .migrateWallet', function(done) { it('should return wallet and call .store & .migrateWallet', function(done) {
iden.openWallet('dummy', function(err, w) { iden.openWallet('dummy', function(err, w) {
should.not.exist(err); should.not.exist(err);
w.store.calledOnce.should.equal(true); w.store.calledOnce.should.equal(true);
@ -265,8 +242,6 @@ describe.only('Identity model', function() {
}); });
}); });
describe('#importWallet', function() { describe('#importWallet', function() {
beforeEach(function() { beforeEach(function() {
@ -362,34 +337,34 @@ describe.only('Identity model', function() {
it('should check the import string', function(done) { it('should check the import string', function(done) {
Identity.importFromJson(JSON.stringify({ // Identity.importFromJson(JSON.stringify({
profile: '1234' // profile: '1234'
}), '1234', config, function(err, ret) { // }), '1234', config, function(err, ret) {
err.should.contain('BADSTR'); // err.should.contain('BADSTR');
done(); // done();
}); // });
}); });
it('should check the import string 2', function(done) { it('should check the import string 2', function(done) {
Identity.importFromJson(JSON.stringify({ // Identity.importFromJson(JSON.stringify({
iterations: 10, // iterations: 10,
}), '1234', config, function(err, ret) { // }), '1234', config, function(err, ret) {
err.should.contain('BADSTR'); // err.should.contain('BADSTR');
done(); // done();
}); // });
}); });
it('should import a simple wallet', function(done) { it('should import a simple wallet', function(done) {
Identity.importFromJson(JSON.stringify({ // Identity.importFromJson(JSON.stringify({
iterations: 10, // iterations: 10,
profile: '1234' // profile: '1234'
}), '1234', config, function(err, iden) { // }), '1234', config, function(err, iden) {
should.not.exist(err); // should.not.exist(err);
should.exist(iden); // should.exist(iden);
iden.profile.email.should.equal('1@1.com'); // iden.profile.email.should.equal('1@1.com');
done(); // done();
}); //});
}); });
}); });
@ -417,6 +392,23 @@ describe.only('Identity model', function() {
nickname: 'test', nickname: 'test',
password: 'pass' password: 'pass'
}; };
var iden = null;
var args = null;
var net = null;
beforeEach(function(done) {
args = createIdentity();
args.params.Async = net = sinon.stub();
net.cleanUp = sinon.spy();
net.on = sinon.stub();
net.start = sinon.spy();
Identity.create(args.params, function(err, identity) {
iden = identity;
done();
});
});
it('should yield bad network error', function(done) { it('should yield bad network error', function(done) {
var net = sinon.stub(); var net = sinon.stub();
@ -430,9 +422,6 @@ describe.only('Identity model', function() {
networkName: 'aWeirdNetworkName', networkName: 'aWeirdNetworkName',
opts: {}, opts: {},
}); });
Identity._newAsync = function() {
return net;
};
opts.privHex = undefined; opts.privHex = undefined;
iden.joinWallet(opts, function(err, w) { iden.joinWallet(opts, function(err, w) {
@ -536,17 +525,11 @@ describe.only('Identity model', function() {
net.start.getCall(0).args[0].privkey.should.equal('ddc2fa8c583a73c4b2a24630ec7c283df4e7c230a02c4e48bc36ec61687afd7d'); net.start.getCall(0).args[0].privkey.should.equal('ddc2fa8c583a73c4b2a24630ec7c283df4e7c230a02c4e48bc36ec61687afd7d');
}); });
}); });
it('should call network.start with private key', function() { it('should call network.start with private key', function(done) {
opts.privHex = undefined; opts.privHex = undefined;
var net = sinon.stub();
net.cleanUp = sinon.spy();
net.on = sinon.stub();
net.start = sinon.spy();
Identity._newAsync = function() {
return net;
};
iden.joinWallet(opts, function(err, w) { iden.joinWallet(opts, function(err, w) {
net.start.getCall(0).args[0].privkey.length.should.equal(64); //privkey is hex of private key buffer net.start.getCall(0).args[0].privkey.length.should.equal(64); //privkey is hex of private key buffer
done();
}); });
}); });
}); });

View file

@ -45,7 +45,7 @@ var createBundle = function(opts) {
b.require('browser-request', { b.require('browser-request', {
expose: 'request' expose: 'request'
}); });
b.require('underscore'); b.require('lodash');
b.require('querystring'); b.require('querystring');
b.require('assert'); b.require('assert');
b.require('preconditions'); b.require('preconditions');
@ -66,9 +66,6 @@ var createBundle = function(opts) {
b.require('./js/models/Wallet', { b.require('./js/models/Wallet', {
expose: '../../js/models/Wallet' expose: '../../js/models/Wallet'
}); });
b.require('./js/models/WalletLock', {
expose: '../js/models/WalletLock'
});
b.require('./js/models/Insight', { b.require('./js/models/Insight', {
expose: '../js/models/Insight' expose: '../js/models/Insight'
}); });
@ -114,9 +111,6 @@ var createBundle = function(opts) {
//include dev dependencies //include dev dependencies
b.require('sinon'); b.require('sinon');
b.require('blanket'); b.require('blanket');
b.require('./test/mocks/FakeLocalStorage', {
expose: './mocks/FakeLocalStorage'
});
b.require('./test/mocks/FakeBlockchain', { b.require('./test/mocks/FakeBlockchain', {
expose: './mocks/FakeBlockchain' expose: './mocks/FakeBlockchain'
}); });