diff --git a/test/jest/index.js b/test/jest/index.js index 098877489..9e6510ca8 100644 --- a/test/jest/index.js +++ b/test/jest/index.js @@ -1,3 +1,4 @@ +export { screen, fireEvent } from '@testing-library/react'; export { createSwapsMockStore } from './mock-store'; export { renderWithProvider } from './rendering'; export { setBackgroundConnection } from './background'; diff --git a/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-input-component.test.js b/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-input-component.test.js deleted file mode 100644 index 29b0e6702..000000000 --- a/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-input-component.test.js +++ /dev/null @@ -1,122 +0,0 @@ -import React from 'react'; -import sinon from 'sinon'; -import { mount } from 'enzyme'; -import AdvancedTabContent from './advanced-gas-inputs.container'; - -describe('Advanced Gas Inputs', () => { - let wrapper, clock; - - const props = { - updateCustomGasPrice: sinon.spy(), - updateCustomGasLimit: sinon.spy(), - showGasPriceInfoModal: sinon.spy(), - showGasLimitInfoModal: sinon.spy(), - customGasPrice: 0, - customGasLimit: 0, - insufficientBalance: false, - customPriceIsSafe: true, - isSpeedUp: false, - minimumGasLimit: 21000, - }; - - beforeEach(() => { - clock = sinon.useFakeTimers(); - - wrapper = mount(, { - context: { - t: (str) => str, - }, - }); - }); - - afterEach(() => { - clock.restore(); - }); - - it('wont update gasPrice in props before debounce', () => { - const event = { target: { value: 1 } }; - - wrapper.find('input').at(0).simulate('change', event); - clock.tick(499); - - expect(props.updateCustomGasPrice.callCount).toStrictEqual(0); - }); - - it('simulates onChange on gas price after debounce', () => { - const event = { target: { value: 1 } }; - - wrapper.find('input').at(0).simulate('change', event); - clock.tick(500); - - expect(props.updateCustomGasPrice.calledOnce).toStrictEqual(true); - expect(props.updateCustomGasPrice.calledWith(1)).toStrictEqual(true); - }); - - it('wont update gasLimit in props before debounce', () => { - const event = { target: { value: 21000 } }; - - wrapper.find('input').at(1).simulate('change', event); - clock.tick(499); - - expect(props.updateCustomGasLimit.callCount).toStrictEqual(0); - }); - - it('simulates onChange on gas limit after debounce', () => { - const event = { target: { value: 21000 } }; - - wrapper.find('input').at(1).simulate('change', event); - clock.tick(500); - - expect(props.updateCustomGasLimit.calledOnce).toStrictEqual(true); - expect(props.updateCustomGasLimit.calledWith(21000)).toStrictEqual(true); - }); - - it('errors when insufficientBalance under gas price and gas limit', () => { - wrapper.setProps({ insufficientBalance: true }); - const renderError = wrapper.find( - '.advanced-gas-inputs__gas-edit-row__error-text', - ); - expect(renderError).toHaveLength(2); - - expect(renderError.at(0).text()).toStrictEqual('insufficientBalance'); - expect(renderError.at(1).text()).toStrictEqual('insufficientBalance'); - }); - - it('errors zero gas price / speed up', () => { - wrapper.setProps({ isSpeedUp: true }); - - const renderError = wrapper.find( - '.advanced-gas-inputs__gas-edit-row__error-text', - ); - expect(renderError).toHaveLength(2); - - expect(renderError.at(0).text()).toStrictEqual( - 'zeroGasPriceOnSpeedUpError', - ); - expect(renderError.at(1).text()).toStrictEqual( - 'gasLimitTooLowWithDynamicFee', - ); - }); - - it('warns when custom gas price is too low', () => { - wrapper.setProps({ customPriceIsSafe: false }); - - const renderWarning = wrapper.find( - '.advanced-gas-inputs__gas-edit-row__warning-text', - ); - expect(renderWarning).toHaveLength(1); - - expect(renderWarning.text()).toStrictEqual('gasPriceExtremelyLow'); - }); - - it('errors when custom gas price is too excessive', () => { - wrapper.setProps({ customPriceIsExcessive: true }); - - const renderError = wrapper.find( - '.advanced-gas-inputs__gas-edit-row__error-text', - ); - - expect(renderError).toHaveLength(2); - expect(renderError.at(0).text()).toStrictEqual('gasPriceExcessiveInput'); - }); -}); diff --git a/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.component.js b/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.component.js index 21e15f395..128b8361f 100644 --- a/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.component.js +++ b/ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.component.js @@ -130,6 +130,7 @@ export default class AdvancedGasInputs extends Component { errorComponent, errorType, label, + testId, customMessageComponent, tooltipTitle, disabled, @@ -155,6 +156,7 @@ export default class AdvancedGasInputs extends Component { value={value} onChange={onChange} disabled={disabled} + data-testid={testId} />
{this.renderGasInput({ label: this.context.t('gasPrice'), + testId: 'gas-price', tooltipTitle: this.context.t('gasPriceInfoTooltipContent'), value: this.state.gasPrice, onChange: this.onChangeGasPrice, @@ -253,6 +256,7 @@ export default class AdvancedGasInputs extends Component { })} {this.renderGasInput({ label: this.context.t('gasLimit'), + testId: 'gas-limit', tooltipTitle: this.context.t('gasLimitInfoTooltipContent'), value: this.state.gasLimit, onChange: this.onChangeGasLimit,