mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
b0b99fa748
The "global" action constants (the ones previously in `actions.js`) have been moved to a separate module. This was necessary to avoid a circular dependency in an upcoming change that was causing problems. In general the "ducks" pattern of organizing Redux stores does result in circular dependency problems. This is because reuse of actions between reducers is encouraged, so it's not uncommon for two reducers to want to reference an action from the other. Going forward we can avoid this problem by moving action constants that are shared between reducers into this shared module.
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import assert from 'assert'
|
|
import configureMockStore from 'redux-mock-store'
|
|
import thunk from 'redux-thunk'
|
|
import * as actions from '../../../ui/app/store/actions'
|
|
import actionConstants from '../../../ui/app/store/actionConstants'
|
|
|
|
const middlewares = [thunk]
|
|
const mockStore = configureMockStore(middlewares)
|
|
|
|
describe('tx confirmation screen', function () {
|
|
const txId = 1457634084250832
|
|
const initialState = {
|
|
appState: {
|
|
},
|
|
metamask: {
|
|
unapprovedTxs: {
|
|
[txId]: {
|
|
id: txId,
|
|
status: 'unconfirmed',
|
|
time: 1457634084250,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
const store = mockStore(initialState)
|
|
|
|
describe('cancelTx', function () {
|
|
it('creates COMPLETED_TX with the cancelled transaction ID', async function () {
|
|
actions._setBackgroundConnection({
|
|
approveTransaction (_, cb) {
|
|
cb('An error!')
|
|
},
|
|
cancelTransaction (_, cb) {
|
|
cb()
|
|
},
|
|
getState (cb) {
|
|
cb()
|
|
},
|
|
})
|
|
|
|
await store.dispatch(actions.cancelTx({ id: txId }))
|
|
const storeActions = store.getActions()
|
|
const completedTxAction = storeActions.find(({ type }) => type === actionConstants.COMPLETED_TX)
|
|
const { id } = completedTxAction.value
|
|
assert.equal(id, txId)
|
|
})
|
|
})
|
|
})
|