1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-01 13:47:06 +01:00
metamask-extension/ui/pages/send/send-footer/send-footer.container.test.js

93 lines
2.7 KiB
JavaScript
Raw Normal View History

import sinon from 'sinon';
import { addToAddressBook, cancelTx } from '../../../store/actions';
import { resetSendState, signTransaction } from '../../../ducks/send';
let mapDispatchToProps;
jest.mock('react-redux', () => ({
connect: (_, md) => {
mapDispatchToProps = md;
return () => ({});
},
}));
jest.mock('../../../store/actions.js', () => ({
addToAddressBook: jest.fn(),
cancelTx: jest.fn(),
}));
jest.mock('../../../ducks/metamask/metamask', () => ({
getSendToAccounts: (s) => [`mockToAccounts:${s}`],
}));
jest.mock('../../../ducks/send', () => ({
getGasPrice: (s) => `mockGasPrice:${s}`,
getSendTo: (s) => `mockTo:${s}`,
getSendErrors: (s) => `mockSendErrors:${s}`,
getSendStage: (s) => `mockStage:${s}`,
getDraftTransaction: (s) => ({ id: `draftTransaction:${s}` }),
resetSendState: jest.fn(),
signTransaction: jest.fn(),
}));
jest.mock('../../../selectors/custom-gas.js', () => ({
getRenderableEstimateDataForSmallButtonsFromGWEI: (s) => [
{ gasEstimateType: `mockGasEstimateType:${s}` },
],
}));
require('./send-footer.container.js');
describe('send-footer container', () => {
describe('mapDispatchToProps()', () => {
let dispatchSpy;
let mapDispatchToPropsObject;
beforeEach(() => {
dispatchSpy = sinon.spy();
mapDispatchToPropsObject = mapDispatchToProps(dispatchSpy);
});
describe('resetSendState()', () => {
it('should dispatch an action', () => {
mapDispatchToPropsObject.resetSendState();
expect(dispatchSpy.calledOnce).toStrictEqual(true);
expect(resetSendState).toHaveBeenCalled();
});
});
describe('cancelTx()', () => {
it('should dispatch an action', () => {
const draftTansaction = { id: 'ID' };
mapDispatchToPropsObject.cancelTx(draftTansaction);
expect(dispatchSpy.calledOnce).toStrictEqual(true);
expect(cancelTx).toHaveBeenCalledTimes(1);
expect(cancelTx).toHaveBeenCalledWith(draftTansaction);
});
});
describe('sign()', () => {
it('should dispatch a signTransaction action', () => {
mapDispatchToPropsObject.sign();
expect(dispatchSpy.calledOnce).toStrictEqual(true);
expect(signTransaction).toHaveBeenCalledTimes(1);
});
});
describe('addToAddressBookIfNew()', () => {
it('should dispatch an action', () => {
2020-11-03 00:41:28 +01:00
mapDispatchToPropsObject.addToAddressBookIfNew(
'mockNewAddress',
[{ address: 'mockToAccounts' }],
2020-11-03 00:41:28 +01:00
'mockNickname',
);
expect(dispatchSpy.calledOnce).toStrictEqual(true);
expect(addToAddressBook).toHaveBeenCalledWith(
2020-11-03 00:41:28 +01:00
'0xmockNewAddress',
'mockNickname',
);
});
});
});
});