From 8b62a8bec288120eee71523886f4c2df83b136ff Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 18 Apr 2016 11:31:06 -0700 Subject: [PATCH 1/2] Fix plugin tests --- package.json | 3 ++- test/helper.js | 3 +++ test/unit/migrations-test.js | 13 ++++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index db0e2823a..f6bde2e4e 100644 --- a/package.json +++ b/package.json @@ -41,13 +41,14 @@ "metamask-logo": "^1.1.5", "multiplex": "^6.7.0", "pojo-migrator": "^2.1.0", + "polyfill-crypto.getrandomvalues": "^1.0.0", "pumpify": "^1.3.4", "react": "^0.14.3", "react-addons-css-transition-group": "^0.14.7", "react-dom": "^0.14.3", "react-hyperscript": "^2.2.2", - "readable-stream": "^2.0.5", "react-redux": "^4.0.3", + "readable-stream": "^2.0.5", "redux": "^3.0.5", "redux-logger": "^2.3.1", "redux-thunk": "^1.0.2", diff --git a/test/helper.js b/test/helper.js index 4c7f8b4c6..64fe5bd07 100644 --- a/test/helper.js +++ b/test/helper.js @@ -1,2 +1,5 @@ require('jsdom-global')() window.localStorage = {} + +if (!('crypto' in window)) { window.crypto = {} } +window.crypto.getRandomValues = require('polyfill-crypto.getrandomvalues') diff --git a/test/unit/migrations-test.js b/test/unit/migrations-test.js index 3a3213ac5..3429ffb1d 100644 --- a/test/unit/migrations-test.js +++ b/test/unit/migrations-test.js @@ -1,14 +1,17 @@ +var assert = require('assert') var test = require('tape') var path = require('path') var wallet1 = require(path.join('..', 'lib', 'migrations', '001.json')) var migration2 = require(path.join('..', '..', 'app', 'scripts', 'migrations', '002')) -test('wallet1 is migrated successfully', function(t) { - - var result = migration2.migrate(wallet1.data) - t.equal(result.config.provider.type, 'rpc', 'provider should be rpc') - t.equal(result.config.provider.rpcTarget, 'https://rpc.metamask.io/', 'provider should be our rpc') +describe('wallet1 is migrated successfully', function() { + it('should convert etherscan provider', function(done) { + var result = migration2.migrate(wallet1.data) + assert.equal(result.config.provider.type, 'rpc', 'provider should be rpc') + assert.equal(result.config.provider.rpcTarget, 'https://rpc.metamask.io/', 'provider should be our rpc') + done() + }) }) From 65d73d7bb4b091021988b6115d518cf3914952ed Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 18 Apr 2016 11:41:29 -0700 Subject: [PATCH 2/2] Unify test suites --- README.md | 13 +++---------- package.json | 7 ++----- {ui/test => test}/unit/actions/config_test.js | 4 ++-- .../unit/actions/restore_vault_test.js | 4 ++-- .../unit/actions/set_selected_account_test.js | 4 ++-- {ui/test => test}/unit/actions/tx_test.js | 4 ++-- {ui/test => test}/unit/actions/view_info_test.js | 4 ++-- {ui/test => test}/unit/actions/warning_test.js | 4 ++-- test/unit/migrations-test.js | 1 - {ui/test => test}/unit/util_test.js | 2 +- ui/test/setup.js | 8 -------- 11 files changed, 18 insertions(+), 37 deletions(-) rename {ui/test => test}/unit/actions/config_test.js (84%) rename {ui/test => test}/unit/actions/restore_vault_test.js (89%) rename {ui/test => test}/unit/actions/set_selected_account_test.js (78%) rename {ui/test => test}/unit/actions/tx_test.js (96%) rename {ui/test => test}/unit/actions/view_info_test.js (75%) rename {ui/test => test}/unit/actions/warning_test.js (76%) rename {ui/test => test}/unit/util_test.js (97%) delete mode 100644 ui/test/setup.js diff --git a/README.md b/README.md index 1d15fa204..1c5508a49 100644 --- a/README.md +++ b/README.md @@ -44,18 +44,11 @@ To enjoy the live-reloading that `gulp dev` offers while working on the `web3-pr ### Running Tests -Currently the tests are split between two suites (we recently merged the UI into the main plugin repository). There are two different test suites to be concerned with: - -Plugin tests, `npm test`. -UI tests, `npm run testUi`. - -You can also run both of these with continuously watching processes, via `npm run watch` and `npm run watchUi`. - -#### UI Testing Particulars - Requires `mocha` installed. Run `npm install -g mocha`. -You can either run the test suite once with `npm testUi`, or you can reload on file changes, by running `mocha watch ui/test/**/**`. +Then just run `npm test`. + +You can also test with a continuously watching process, via `npm run watch`. ### Deploying the UI diff --git a/package.json b/package.json index f6bde2e4e..3981f3058 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,8 @@ "private": true, "scripts": { "start": "gulp dev", - "test": "npm run testUi", - "testPlugin": "mocha --require test/helper.js --compilers js:babel-register --recursive", - "watch": "mocha watch --compilers js:babel-register --recursive", - "testUi": "mocha ui/test/**/**/*test.js", - "watchUi": "mocha watch ui/test/**/*test.js" + "test": "mocha --require test/helper.js --compilers js:babel-register --recursive", + "watch": "mocha watch --compilers js:babel-register --recursive" }, "browserify": { "transform": [ diff --git a/ui/test/unit/actions/config_test.js b/test/unit/actions/config_test.js similarity index 84% rename from ui/test/unit/actions/config_test.js rename to test/unit/actions/config_test.js index d38210bfc..6a0d20f31 100644 --- a/ui/test/unit/actions/config_test.js +++ b/test/unit/actions/config_test.js @@ -3,8 +3,8 @@ var assert = require('assert') var freeze = require('deep-freeze-strict') var path = require('path') -var actions = require(path.join(__dirname, '..', '..', '..', 'app', 'actions.js')) -var reducers = require(path.join(__dirname, '..', '..', '..', 'app', 'reducers.js')) +var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js')) +var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js')) describe ('config view actions', function() { diff --git a/ui/test/unit/actions/restore_vault_test.js b/test/unit/actions/restore_vault_test.js similarity index 89% rename from ui/test/unit/actions/restore_vault_test.js rename to test/unit/actions/restore_vault_test.js index da0d71ce7..5873a0181 100644 --- a/ui/test/unit/actions/restore_vault_test.js +++ b/test/unit/actions/restore_vault_test.js @@ -4,8 +4,8 @@ var freeze = require('deep-freeze-strict') var path = require('path') var sinon = require('sinon') -var actions = require(path.join(__dirname, '..', '..', '..', 'app', 'actions.js')) -var reducers = require(path.join(__dirname, '..', '..', '..', 'app', 'reducers.js')) +var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js')) +var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js')) describe('#recoverFromSeed(password, seed)', function() { diff --git a/ui/test/unit/actions/set_selected_account_test.js b/test/unit/actions/set_selected_account_test.js similarity index 78% rename from ui/test/unit/actions/set_selected_account_test.js rename to test/unit/actions/set_selected_account_test.js index 1af6c964f..0487bc5f0 100644 --- a/ui/test/unit/actions/set_selected_account_test.js +++ b/test/unit/actions/set_selected_account_test.js @@ -3,8 +3,8 @@ var assert = require('assert') var freeze = require('deep-freeze-strict') var path = require('path') -var actions = require(path.join(__dirname, '..', '..', '..', 'app', 'actions.js')) -var reducers = require(path.join(__dirname, '..', '..', '..', 'app', 'reducers.js')) +var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js')) +var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js')) describe('SET_SELECTED_ACCOUNT', function() { diff --git a/ui/test/unit/actions/tx_test.js b/test/unit/actions/tx_test.js similarity index 96% rename from ui/test/unit/actions/tx_test.js rename to test/unit/actions/tx_test.js index d83ae16c0..b15bee393 100644 --- a/ui/test/unit/actions/tx_test.js +++ b/test/unit/actions/tx_test.js @@ -3,8 +3,8 @@ var assert = require('assert') var freeze = require('deep-freeze-strict') var path = require('path') -var actions = require(path.join(__dirname, '..', '..', '..', 'app', 'actions.js')) -var reducers = require(path.join(__dirname, '..', '..', '..', 'app', 'reducers.js')) +var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js')) +var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js')) describe('tx confirmation screen', function() { var initialState, result diff --git a/ui/test/unit/actions/view_info_test.js b/test/unit/actions/view_info_test.js similarity index 75% rename from ui/test/unit/actions/view_info_test.js rename to test/unit/actions/view_info_test.js index 888712c67..0558c6e42 100644 --- a/ui/test/unit/actions/view_info_test.js +++ b/test/unit/actions/view_info_test.js @@ -3,8 +3,8 @@ var assert = require('assert') var freeze = require('deep-freeze-strict') var path = require('path') -var actions = require(path.join(__dirname, '..', '..', '..', 'app', 'actions.js')) -var reducers = require(path.join(__dirname, '..', '..', '..', 'app', 'reducers.js')) +var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js')) +var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js')) describe('SHOW_INFO_PAGE', function() { diff --git a/ui/test/unit/actions/warning_test.js b/test/unit/actions/warning_test.js similarity index 76% rename from ui/test/unit/actions/warning_test.js rename to test/unit/actions/warning_test.js index eee198656..37be9ee85 100644 --- a/ui/test/unit/actions/warning_test.js +++ b/test/unit/actions/warning_test.js @@ -3,8 +3,8 @@ var assert = require('assert') var freeze = require('deep-freeze-strict') var path = require('path') -var actions = require(path.join(__dirname, '..', '..', '..', 'app', 'actions.js')) -var reducers = require(path.join(__dirname, '..', '..', '..', 'app', 'reducers.js')) +var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js')) +var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js')) describe('action DISPLAY_WARNING', function() { diff --git a/test/unit/migrations-test.js b/test/unit/migrations-test.js index 3429ffb1d..092c0eccd 100644 --- a/test/unit/migrations-test.js +++ b/test/unit/migrations-test.js @@ -1,5 +1,4 @@ var assert = require('assert') -var test = require('tape') var path = require('path') var wallet1 = require(path.join('..', 'lib', 'migrations', '001.json')) diff --git a/ui/test/unit/util_test.js b/test/unit/util_test.js similarity index 97% rename from ui/test/unit/util_test.js rename to test/unit/util_test.js index b35d60812..7f8103d3b 100644 --- a/ui/test/unit/util_test.js +++ b/test/unit/util_test.js @@ -3,7 +3,7 @@ var sinon = require('sinon') const ethUtil = require('ethereumjs-util') var path = require('path') -var util = require(path.join(__dirname, '..', '..', 'app', 'util.js')) +var util = require(path.join(__dirname, '..', '..', 'ui', 'app', 'util.js')) describe('util', function() { var ethInWei = '1' diff --git a/ui/test/setup.js b/ui/test/setup.js deleted file mode 100644 index 7985e9a00..000000000 --- a/ui/test/setup.js +++ /dev/null @@ -1,8 +0,0 @@ -if (typeof process === 'object') { - // Initialize node environment - global.expect = require('chai').expect - require('mocha-jsdom')() -} else { - window.expect = window.chai.expect - window.require = function () { /* noop */ } -}