diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/message-manager-test.js | 4 | ||||
-rw-r--r-- | test/unit/network-contoller-test.js | 10 | ||||
-rw-r--r-- | test/unit/seed-phrase-verifier-test.js | 133 | ||||
-rw-r--r-- | test/unit/tx-state-manager-test.js | 4 |
4 files changed, 143 insertions, 8 deletions
diff --git a/test/unit/message-manager-test.js b/test/unit/message-manager-test.js index 9b76241ed..5e7039841 100644 --- a/test/unit/message-manager-test.js +++ b/test/unit/message-manager-test.js @@ -1,11 +1,11 @@ const assert = require('assert') -const MessageManger = require('../../app/scripts/lib/message-manager') +const MessageManager = require('../../app/scripts/lib/message-manager') describe('Message Manager', function () { let messageManager beforeEach(function () { - messageManager = new MessageManger() + messageManager = new MessageManager() }) describe('#getMsgList', function () { diff --git a/test/unit/network-contoller-test.js b/test/unit/network-contoller-test.js index 51ad09f87..dd0b52365 100644 --- a/test/unit/network-contoller-test.js +++ b/test/unit/network-contoller-test.js @@ -15,11 +15,8 @@ describe('# Network Controller', function () { beforeEach(function () { - nock('https://api.infura.io') - .get('/*/') - .reply(200) - nock('https://rinkeby.infura.io') + .persist() .post('/metamask') .reply(200) @@ -29,6 +26,11 @@ describe('# Network Controller', function () { networkController.initializeProvider(networkControllerProviderInit, provider) }) + + afterEach(function () { + nock.cleanAll() + }) + describe('network', function () { describe('#provider', function () { it('provider should be updatable without reassignment', function () { diff --git a/test/unit/seed-phrase-verifier-test.js b/test/unit/seed-phrase-verifier-test.js new file mode 100644 index 000000000..4e314806b --- /dev/null +++ b/test/unit/seed-phrase-verifier-test.js @@ -0,0 +1,133 @@ +const assert = require('assert') +const clone = require('clone') +const KeyringController = require('eth-keyring-controller') +const firstTimeState = require('../../app/scripts/first-time-state') +const seedPhraseVerifier = require('../../app/scripts/lib/seed-phrase-verifier') +const mockEncryptor = require('../lib/mock-encryptor') + +describe('SeedPhraseVerifier', function () { + + describe('verifyAccounts', function () { + + let password = 'passw0rd1' + let hdKeyTree = 'HD Key Tree' + + let keyringController + let vault + let primaryKeyring + + beforeEach(async function () { + keyringController = new KeyringController({ + initState: clone(firstTimeState), + encryptor: mockEncryptor, + }) + + assert(keyringController) + + vault = await keyringController.createNewVaultAndKeychain(password) + primaryKeyring = keyringController.getKeyringsByType(hdKeyTree)[0] + }) + + it('should be able to verify created account with seed words', async function () { + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 1) + + let serialized = await primaryKeyring.serialize() + let seedWords = serialized.mnemonic + assert.notEqual(seedWords.length, 0) + + let result = await seedPhraseVerifier.verifyAccounts(createdAccounts, seedWords) + }) + + it('should be able to verify created account (upper case) with seed words', async function () { + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 1) + + let upperCaseAccounts = [createdAccounts[0].toUpperCase()] + + let serialized = await primaryKeyring.serialize() + let seedWords = serialized.mnemonic + assert.notEqual(seedWords.length, 0) + + let result = await seedPhraseVerifier.verifyAccounts(upperCaseAccounts, seedWords) + }) + + it('should be able to verify created account (lower case) with seed words', async function () { + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 1) + let lowerCaseAccounts = [createdAccounts[0].toLowerCase()] + + let serialized = await primaryKeyring.serialize() + let seedWords = serialized.mnemonic + assert.notEqual(seedWords.length, 0) + + let result = await seedPhraseVerifier.verifyAccounts(lowerCaseAccounts, seedWords) + }) + + it('should return error with good but different seed words', async function () { + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 1) + + let serialized = await primaryKeyring.serialize() + let seedWords = 'debris dizzy just program just float decrease vacant alarm reduce speak stadium' + + try { + let result = await seedPhraseVerifier.verifyAccounts(createdAccounts, seedWords) + assert.fail("Should reject") + } catch (err) { + assert.ok(err.message.indexOf('Not identical accounts!') >= 0, 'Wrong error message') + } + }) + + it('should return error with undefined existing accounts', async function () { + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 1) + + let serialized = await primaryKeyring.serialize() + let seedWords = 'debris dizzy just program just float decrease vacant alarm reduce speak stadium' + + try { + let result = await seedPhraseVerifier.verifyAccounts(undefined, seedWords) + assert.fail("Should reject") + } catch (err) { + assert.equal(err.message, 'No created accounts defined.') + } + }) + + it('should return error with empty accounts array', async function () { + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 1) + + let serialized = await primaryKeyring.serialize() + let seedWords = 'debris dizzy just program just float decrease vacant alarm reduce speak stadium' + + try { + let result = await seedPhraseVerifier.verifyAccounts([], seedWords) + assert.fail("Should reject") + } catch (err) { + assert.equal(err.message, 'No created accounts defined.') + } + }) + + it('should be able to verify more than one created account with seed words', async function () { + + const keyState = await keyringController.addNewAccount(primaryKeyring) + const keyState2 = await keyringController.addNewAccount(primaryKeyring) + + let createdAccounts = await primaryKeyring.getAccounts() + assert.equal(createdAccounts.length, 3) + + let serialized = await primaryKeyring.serialize() + let seedWords = serialized.mnemonic + assert.notEqual(seedWords.length, 0) + + let result = await seedPhraseVerifier.verifyAccounts(createdAccounts, seedWords) + }) + }) +}) diff --git a/test/unit/tx-state-manager-test.js b/test/unit/tx-state-manager-test.js index 02dc52967..220bf501f 100644 --- a/test/unit/tx-state-manager-test.js +++ b/test/unit/tx-state-manager-test.js @@ -5,7 +5,7 @@ const TxStateManager = require('../../app/scripts/lib/tx-state-manager') const txStateHistoryHelper = require('../../app/scripts/lib/tx-state-history-helper') const noop = () => true -describe('TransactionStateManger', function () { +describe('TransactionStateManager', function () { let txStateManager const currentNetworkId = 42 const otherNetworkId = 2 @@ -281,4 +281,4 @@ describe('TransactionStateManger', function () { }) }) -})
\ No newline at end of file +}) |