aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-04-19 07:39:35 +0800
committerDan Finlay <dan@danfinlay.com>2016-04-19 07:39:35 +0800
commita441e635bd5ae47a6f5b835becf3a40aaaab899d (patch)
treefeb3bb443c0dca53c89e741363adfe7f684aac25 /test/unit
parent65d73d7bb4b091021988b6115d518cf3914952ed (diff)
downloadtangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.tar
tangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.tar.gz
tangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.tar.bz2
tangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.tar.lz
tangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.tar.xz
tangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.tar.zst
tangerine-wallet-browser-a441e635bd5ae47a6f5b835becf3a40aaaab899d.zip
Persist transactions to config-manager
Transactions are now stored, and are never deleted, they only have their status updated. We can add deleting later if we'd like. I've hacked on emitting the new unconfirmedTx key to the UI in the format it received before, I want Aaron's opinion on where I should actually do that.
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/config-manager-test.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/test/unit/config-manager-test.js b/test/unit/config-manager-test.js
index 10b6716d6..84632b0ea 100644
--- a/test/unit/config-manager-test.js
+++ b/test/unit/config-manager-test.js
@@ -68,4 +68,83 @@ describe('config-manager', function() {
assert.equal(secondResult, secondRpc)
})
})
+
+ describe('transactions', function() {
+ beforeEach(function() {
+ configManager._saveTxList([])
+ })
+
+ describe('#getTxList', function() {
+ it('when new should return empty array', function() {
+ var result = configManager.getTxList()
+ assert.ok(Array.isArray(result))
+ assert.equal(result.length, 0)
+ })
+ })
+
+ describe('#_saveTxList', function() {
+ it('saves the submitted data to the tx list', function() {
+ var target = [{ foo: 'bar' }]
+ configManager._saveTxList(target)
+ var result = configManager.getTxList()
+ assert.equal(result[0].foo, 'bar')
+ })
+ })
+
+ describe('#addTx', function() {
+ it('adds a tx returned in getTxList', function() {
+ var tx = { id: 1 }
+ configManager.addTx(tx)
+ var result = configManager.getTxList()
+ assert.ok(Array.isArray(result))
+ assert.equal(result.length, 1)
+ assert.equal(result[0].id, 1)
+ })
+ })
+
+ describe('#confirmTx', function() {
+ it('sets the tx status to confirmed', function() {
+ var tx = { id: 1, status: 'unconfirmed' }
+ configManager.addTx(tx)
+ configManager.confirmTx(1)
+ var result = configManager.getTxList()
+ assert.ok(Array.isArray(result))
+ assert.equal(result.length, 1)
+ assert.equal(result[0].status, 'confirmed')
+ })
+ })
+
+ describe('#rejectTx', function() {
+ it('sets the tx status to rejected', function() {
+ var tx = { id: 1, status: 'unconfirmed' }
+ configManager.addTx(tx)
+ configManager.rejectTx(1)
+ var result = configManager.getTxList()
+ assert.ok(Array.isArray(result))
+ assert.equal(result.length, 1)
+ assert.equal(result[0].status, 'rejected')
+ })
+ })
+
+ describe('#unconfirmedTxs', function() {
+ it('returns unconfirmed txs in a hash', function() {
+ configManager.addTx({ id: '1', status: 'unconfirmed' })
+ configManager.addTx({ id: '2', status: 'confirmed' })
+ let result = configManager.unconfirmedTxs()
+ assert.equal(typeof result, 'object')
+ assert.equal(result['1'].status, 'unconfirmed')
+ assert.equal(result['0'], undefined)
+ assert.equal(result['2'], undefined)
+ })
+ })
+
+ describe('#getTx', function() {
+ it('returns a tx with the requested id', function() {
+ configManager.addTx({ id: '1', status: 'unconfirmed' })
+ configManager.addTx({ id: '2', status: 'confirmed' })
+ assert.equal(configManager.getTx('1').status, 'unconfirmed')
+ assert.equal(configManager.getTx('2').status, 'confirmed')
+ })
+ })
+ })
})