aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/migrations/029-test.js
blob: a2876487b6e2f41e5050ef0ff1b838fcd0d95ace (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const assert = require('assert')
const migration29 = require('../../../app/scripts/migrations/029')
const properTime = (new Date()).getTime()
const storage = {
  'meta': {},
  'data': {
    'TransactionController': {
      'transactions': [
        { 'status': 'approved', id: 1, submittedTime: 0 },
        { 'status': 'approved', id: 2, submittedTime: properTime },
        { 'status': 'confirmed', id: 3, submittedTime: properTime },
        { 'status': 'submitted', id: 4, submittedTime: properTime },
        { 'status': 'submitted', id: 5, submittedTime: 0 },
      ],
    },
  },
}

describe('storage is migrated successfully where transactions that are submitted have submittedTimes', () => {
  it('should auto fail transactions more than 12 hours old', (done) => {
    migration29.migrate(storage)
    .then((migratedData) => {
      const txs = migratedData.data.TransactionController.transactions
      const [ txMeta1 ] = txs
      assert.equal(migratedData.meta.version, 29)

      assert.equal(txMeta1.status, 'failed', 'old tx is auto failed')
      assert(txMeta1.err.message.includes('too long'), 'error message assigned')

      txs.forEach((tx) => {
        if (tx.id === 1) return
        assert.notEqual(tx.status, 'failed', 'other tx is not auto failed')
      })

      done()
    }).catch(done)
  })
})