aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-03-26 05:51:19 +0800
committerDan Finlay <dan@danfinlay.com>2016-03-26 05:51:19 +0800
commita2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa (patch)
tree6687de5f0f366f10482b6793a57e78303226487f /test/unit
parent37fd45e5b70a66ff976cab0d1815374063e29d10 (diff)
downloadtangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.tar
tangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.tar.gz
tangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.tar.bz2
tangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.tar.lz
tangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.tar.xz
tangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.tar.zst
tangerine-wallet-browser-a2c7ccafa6b4cdbd5f1725f7bf40189ad987cffa.zip
Implemented BIP44 compliance test.
Also added the hdPath that Christian had told me to our calls to the LightWallet, but this does not seem to have made us generate the same accounts as `testrpc` yet.
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/idStore-test.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/unit/idStore-test.js b/test/unit/idStore-test.js
new file mode 100644
index 000000000..4494bf505
--- /dev/null
+++ b/test/unit/idStore-test.js
@@ -0,0 +1,81 @@
+var assert = require('assert')
+var IdentityStore = require('../../app/scripts/lib/idStore')
+
+describe('IdentityStore', function() {
+
+ describe('#createNewVault', function () {
+ let idStore
+ let password = 'password123'
+ let entropy = 'entripppppyy duuude'
+ let seedWords
+ let accounts = []
+ let originalKeystore
+
+ before(function(done) {
+ window.localStorage = {} // Hacking localStorage support into JSDom
+
+ idStore = new IdentityStore({
+ addAccount(acct) { accounts.push(acct) },
+ })
+
+ idStore.createNewVault(password, entropy, (err, seeds) => {
+ seedWords = seeds
+ originalKeystore = idStore._idmgmt.keyStore
+ done()
+ })
+ })
+
+ describe('#recoverFromSeed', function() {
+
+ before(function() {
+ window.localStorage = {} // Hacking localStorage support into JSDom
+ accounts = []
+
+ idStore = new IdentityStore({
+ addAccount(acct) { accounts.push(acct) },
+ })
+ })
+
+ it('should return the expected keystore', function (done) {
+
+ idStore.recoverFromSeed(password, seedWords, (err) => {
+ assert.ifError(err)
+
+ let newKeystore = idStore._idmgmt.keyStore
+ assert.equal(newKeystore, originalKeystore)
+ done()
+ })
+ })
+ })
+ })
+
+ describe('#recoverFromSeed BIP44 compliance', function() {
+ let seedWords = 'picnic injury awful upper eagle junk alert toss flower renew silly vague'
+ let firstAccount = '0xaceef0221414801dde7f732196b1c9d8ea60b637'
+ let password = 'secret!'
+ let accounts = []
+ let idStore
+
+ before(function() {
+ window.localStorage = {} // Hacking localStorage support into JSDom
+
+ idStore = new IdentityStore({
+ addAccount(acct) {
+ console.log(`pushing account ${acct}`)
+ accounts.push(acct)
+ },
+ })
+ })
+
+ it('should return the expected first account', function (done) {
+
+ idStore.recoverFromSeed(password, seedWords, (err) => {
+ assert.ifError(err)
+
+ let newKeystore = idStore._idmgmt.keyStore
+ assert.equal(accounts[0], firstAccount)
+ done()
+ })
+ })
+ })
+})