const assert = require('assert')
const migration22 = require('../../../app/scripts/migrations/022')
const properTime = (new Date()).getTime()
const storage = {
  'meta': {},
  'data': {
    'TransactionController': {
      'transactions': [
        { 'status': 'submitted' },
        { 'status': 'submitted', 'submittedTime': properTime },
        {'status': 'confirmed'},
      ],
    },
  },
}

describe('storage is migrated successfully where transactions that are submitted have submittedTimes', () => {
  it('should add submittedTime key on the txMeta if appropriate', (done) => {
    migration22.migrate(storage)
    .then((migratedData) => {
      const [txMeta1, txMeta2, txMeta3] = migratedData.data.TransactionController.transactions
      assert.equal(migratedData.meta.version, 22)
      // should have written a submitted time
      assert(txMeta1.submittedTime)
      // should not have written a submitted time because it already has one
      assert.equal(txMeta2.submittedTime, properTime)
      // should not have written a submitted time
      assert(!txMeta3.submittedTime)
      done()
    }).catch(done)
  })
})
