From f7e34acae8ce52c0370d3c146b5bf5bdc240c9cb Mon Sep 17 00:00:00 2001 From: "Ryan X. Charles" Date: Sun, 15 Jun 2014 20:55:23 -0700 Subject: [PATCH] make mocha browser tests all run with no console errors ...except Wallet and WalletFactory. --- copay.js | 8 +------- js/models/core/WalletFactory.js | 18 ++++++++++++------ test/index.html | 4 ---- test/test.API.js | 6 +++++- test/test.AddressIndex.js | 6 +++++- test/test.Passphrase.js | 6 +++++- test/test.PrivateKey.js | 8 ++++++-- test/test.PublicKeyRing.js | 6 +++++- test/test.Structure.js | 6 +++++- test/test.TxProposals.js | 8 ++++++-- test/test.Wallet.js | 6 +++++- test/test.WalletFactory.js | 19 +++++++++++++------ test/test.blockchain.Insight.js | 6 +++++- util/build.js | 17 ++++++++++++----- 14 files changed, 85 insertions(+), 39 deletions(-) diff --git a/copay.js b/copay.js index 585fc1677..544b0eb45 100644 --- a/copay.js +++ b/copay.js @@ -1,4 +1,3 @@ - // core module.exports.PublicKeyRing = require('./js/models/core/PublicKeyRing'); module.exports.TxProposals = require('./js/models/core/TxProposals'); @@ -14,11 +13,6 @@ var Insight = module.exports.Insight = require('./js/models/blockchain/Insight') var StorageLocalPlain = module.exports.StorageLocalPlain = require('./js/models/storage/LocalPlain'); var StorageLocalEncrypted = module.exports.StorageLocalEncrypted = require('./js/models/storage/LocalEncrypted'); -var WalletFactory = require('soop').load('./js/models/core/WalletFactory',{ - Network: WebRTC, - Blockchain: Insight, - Storage: StorageLocalEncrypted, -}); -module.exports.WalletFactory = WalletFactory; +module.exports.WalletFactory = require('./js/models/core/WalletFactory'); module.exports.version = require('./version'); module.exports.API = require('./API'); diff --git a/js/models/core/WalletFactory.js b/js/models/core/WalletFactory.js index 6c00cc96a..9554ab531 100644 --- a/js/models/core/WalletFactory.js +++ b/js/models/core/WalletFactory.js @@ -1,15 +1,17 @@ 'use strict'; var imports = require('soop').imports(); -var Storage = imports.Storage; -var Network = imports.Network; -var Blockchain = imports.Blockchain; var TxProposals = require('./TxProposals'); var PublicKeyRing = require('./PublicKeyRing'); var PrivateKey = require('./PrivateKey'); var Wallet = require('./Wallet'); +var WebRTC = module.exports.WebRTC = require('../network/WebRTC'); +var Insight = module.exports.Insight = require('../blockchain/Insight'); +//var StorageLocalPlain = module.exports.StorageLocalPlain = require('../storage/LocalPlain'); +var StorageLocalEncrypted = module.exports.StorageLocalEncrypted = require('../storage/LocalEncrypted'); + /* * WalletFactory * @@ -19,9 +21,13 @@ function WalletFactory(config, version) { var self = this; config = config || {}; - this.storage = new Storage(config.storage); - this.network = new Network(config.network); - this.blockchain = new Blockchain(config.blockchain); + this.Storage = config.Storage || StorageLocalEncrypted; + this.Network = config.Network || WebRTC; + this.Blockchain = config.Blockchain || Insight; + + this.storage = new this.Storage(config.storage); + this.network = new this.Network(config.network); + this.blockchain = new this.Blockchain(config.blockchain); this.networkName = config.networkName; this.verbose = config.verbose; diff --git a/test/index.html b/test/index.html index 52dab4944..a2e2a06b5 100644 --- a/test/index.html +++ b/test/index.html @@ -14,15 +14,11 @@ - - diff --git a/test/test.API.js b/test/test.API.js index 14569a337..caeef8637 100644 --- a/test/test.API.js +++ b/test/test.API.js @@ -2,7 +2,11 @@ var chai = chai || require('chai'); var should = chai.should(); -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var API = API || copay.API; var Storage = Storage || require('../test/mocks/FakeStorage'); diff --git a/test/test.AddressIndex.js b/test/test.AddressIndex.js index d78ea3407..130ea99a2 100644 --- a/test/test.AddressIndex.js +++ b/test/test.AddressIndex.js @@ -5,7 +5,11 @@ var should = chai.should(); var bitcore = bitcore || require('bitcore'); var Address = bitcore.Address; var buffertools = bitcore.buffertools; -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var PublicKeyRing = copay.PublicKeyRing; var AddressIndex = copay.AddressIndex; diff --git a/test/test.Passphrase.js b/test/test.Passphrase.js index 6e2b58a02..882135f54 100644 --- a/test/test.Passphrase.js +++ b/test/test.Passphrase.js @@ -4,7 +4,11 @@ var chai = chai || require('chai'); var should = chai.should(); var bitcore = bitcore || require('bitcore'); var buffertools = bitcore.buffertools; -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var Passphrase = copay.Passphrase; diff --git a/test/test.PrivateKey.js b/test/test.PrivateKey.js index 0bfb820c8..7e002759c 100644 --- a/test/test.PrivateKey.js +++ b/test/test.PrivateKey.js @@ -7,11 +7,15 @@ var Transaction = bitcore.Transaction; var buffertools = bitcore.buffertools; var WalletKey = bitcore.WalletKey; var Key = bitcore.Key; -var bignum = bitcore.bignum; +var bignum = bitcore.Bignum; var networks = bitcore.networks; var Address = bitcore.Address; var BitcorePrivateKey = bitcore.PrivateKey; -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var PrivateKey = copay.PrivateKey || require('../js/models/core/PrivateKey'); var config = { diff --git a/test/test.PublicKeyRing.js b/test/test.PublicKeyRing.js index c21ed6dd8..b4c541178 100644 --- a/test/test.PublicKeyRing.js +++ b/test/test.PublicKeyRing.js @@ -5,7 +5,11 @@ var should = chai.should(); var bitcore = bitcore || require('bitcore'); var Address = bitcore.Address; var buffertools = bitcore.buffertools; -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var PublicKeyRing = copay.PublicKeyRing; var aMasterPubKey = 'tprv8ZgxMBicQKsPdSVTiWXEqCCzqRaRr9EAQdn5UVMpT9UHX67Dh1FmzEMbavPumpAicsUm2XvC6NTdcWB89yN5DUWx5HQ7z3KByUg7Ht74VRZ'; diff --git a/test/test.Structure.js b/test/test.Structure.js index 722497ab0..845032b14 100644 --- a/test/test.Structure.js +++ b/test/test.Structure.js @@ -3,7 +3,11 @@ var chai = chai || require('chai'); var should = chai.should(); var bitcore = bitcore || require('bitcore'); -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var Structure = require('../js/models/core/Structure'); describe('Structure model', function() { diff --git a/test/test.TxProposals.js b/test/test.TxProposals.js index 59beb4822..d95c20370 100644 --- a/test/test.TxProposals.js +++ b/test/test.TxProposals.js @@ -12,7 +12,11 @@ var Script = bitcore.Script; var Builder = bitcore.TransactionBuilder; var util = bitcore.util; var networks = bitcore.networks; -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var fakeStorage = copay.FakeStorage; var PrivateKey = copay.PrivateKey || require('../js/models/PrivateKey'); var TxProposals = copay.TxProposals || require('../js/models/TxProposal'); @@ -126,7 +130,7 @@ describe('TxProposals model', function() { var createTx = function(toAddress, amountSatStr, utxos, opts, priv, pkr) { opts = opts || {}; - var amountSat = bitcore.bignum(amountSatStr); + var amountSat = bitcore.Bignum(amountSatStr); if (!pkr.isComplete()) { throw new Error('publicKeyRing is not complete'); diff --git a/test/test.Wallet.js b/test/test.Wallet.js index 91f223bbd..eea60056b 100644 --- a/test/test.Wallet.js +++ b/test/test.Wallet.js @@ -3,7 +3,11 @@ var chai = chai || require('chai'); var should = chai.should(); var sinon = require('sinon'); -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var Wallet = require('../js/models/core/Wallet'); var Storage = require('./mocks/FakeStorage'); var Network = require('./mocks/FakeNetwork'); diff --git a/test/test.WalletFactory.js b/test/test.WalletFactory.js index aeec5faed..3bae8797d 100644 --- a/test/test.WalletFactory.js +++ b/test/test.WalletFactory.js @@ -7,17 +7,17 @@ var FakeNetwork = require('./mocks/FakeNetwork'); var Insight = require('../js/models/blockchain/Insight'); var FakeStorage = require('./mocks/FakeStorage'); -var WalletFactory = typeof copay === 'undefined' ? require('soop').load('../js/models/core/WalletFactory', { - Network: FakeNetwork, - Blockchain: Insight, - Storage: FakeStorage, -}) : copay.WalletFactory; +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} +var WalletFactory = require('../js/models/core/WalletFactory'); var blanket = require("blanket")({ "pattern": "/js/" }); - var addCopayers = function(w) { for (var i = 0; i < 4; i++) { w.publicKeyRing.addCopayer(); @@ -26,11 +26,15 @@ var addCopayers = function(w) { describe('WalletFactory model', function() { var config = { + Network: FakeNetwork, + Blockchain: Insight, + Storage: FakeStorage, wallet: { requiredCopayers: 3, totalCopayers: 5, spendUnconfirmed: 1, reconnectDelay: 100, + }, blockchain: { host: 'test.insight.is', @@ -82,6 +86,9 @@ describe('WalletFactory model', function() { it('BIP32 length problem', function() { var sconfig = { + Network: FakeNetwork, + Blockchain: Insight, + Storage: FakeStorage, "networkName": "testnet", "network": { "key": "g23ihfh82h35rf", diff --git a/test/test.blockchain.Insight.js b/test/test.blockchain.Insight.js index a17cb07ce..f27e9f511 100644 --- a/test/test.blockchain.Insight.js +++ b/test/test.blockchain.Insight.js @@ -3,7 +3,11 @@ var chai = chai || require('chai'); var should = chai.should(); var bitcore = bitcore || require('bitcore'); -var copay = copay || require('../copay'); +try { + var copay = require('copay'); //browser +} catch (e) { + var copay = require('../copay'); //node +} var Insight = copay.Insight || require('../js/models/blockchain/Insight'); var ID = '933bf321393459b7'; diff --git a/util/build.js b/util/build.js index 220162f47..2af0ca892 100755 --- a/util/build.js +++ b/util/build.js @@ -50,7 +50,9 @@ var createBundle = function(opts) { }); b.require('./version'); // b.external('bitcore'); - b.require('./js/models/core/WalletFactory'); + b.require('./js/models/core/WalletFactory', { + expose: '../js/models/core/WalletFactory' + }); b.require('./js/models/core/Wallet'); b.require('./js/models/core/Wallet', { expose: '../js/models/core/Wallet' @@ -58,6 +60,9 @@ var createBundle = function(opts) { b.require('./test/mocks/FakeStorage', { expose: './mocks/FakeStorage' }); + b.require('./test/mocks/FakeBlockchain', { + expose: './mocks/FakeBlockchain' + }); b.require('./js/models/core/Wallet', { expose: '../js/models/core/Wallet' }); @@ -81,10 +86,12 @@ var createBundle = function(opts) { }); if (opts.dontminify) { - b.require('sinon', { - expose: '../sinon' - }); + //include dev dependencies + b.require('sinon'); + b.require('blanket'); + b.require('soop'); } + if (!opts.dontminify) { b.transform({ global: true @@ -101,7 +108,7 @@ if (require.main === module) { var program = require('commander'); program .version('0.0.1') - .option('-d, --dontminify', 'Don\'t minify the code.') + .option('-d, --dontminify', 'Development. Don\'t minify the code.') .option('-o, --stdout', 'Specify output as stdout') .parse(process.argv);