import React from 'react' ;
import { renderWithProvider , screen } from '../../../../../test/jest' ;
import configureStore from '../../../../store/store' ;
import { GasFeeContext } from '../../../../contexts/gasFee' ;
import NetworkStatistics from './network-statistics' ;
const renderComponent = ( { gasFeeContext = { } , state = { } } = { } ) => {
const store = configureStore ( state ) ;
return renderWithProvider (
< GasFeeContext . Provider value = { gasFeeContext } >
< NetworkStatistics / >
< / G a s F e e C o n t e x t . P r o v i d e r > ,
store ,
) ;
} ;
describe ( 'NetworkStatistics' , ( ) => {
it ( 'should render the latest base fee rounded to no decimal places' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : {
estimatedBaseFee : '50.0112' ,
} ,
} ,
} ) ;
expect ( screen . getByText ( '50 GWEI' ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should not render the latest base fee if it is not present' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : {
estimatedBaseFee : null ,
} ,
} ,
} ) ;
expect (
screen . queryByTestId ( 'formatted-latest-base-fee' ) ,
) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should not render the latest base fee if no gas fee estimates are available' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : null ,
} ,
} ) ;
expect (
screen . queryByTestId ( 'formatted-latest-base-fee' ) ,
) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render the latest priority fee range, with the low end of the range rounded to 1 decimal place and the high end rounded to no decimal places' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : {
latestPriorityFeeRange : [ '1.100001668' , '2.5634234' ] ,
} ,
} ,
} ) ;
expect ( screen . getByText ( '1.1 - 3 GWEI' ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should not render the latest priority fee range if it is not present' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : {
latestPriorityFeeRange : null ,
} ,
} ,
} ) ;
expect (
screen . queryByTestId ( 'formatted-latest-priority-fee-range' ) ,
) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should not render the latest priority fee range if no gas fee estimates are available' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : null ,
} ,
} ) ;
expect (
screen . queryByTestId ( 'formatted-latest-priority-fee-range' ) ,
) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render the network status slider' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : {
networkCongestion : 0.5 ,
} ,
} ,
} ) ;
expect ( screen . getByText ( 'Stable' ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should not render the network status slider if the network congestion is not available' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : {
networkCongestion : null ,
} ,
} ,
} ) ;
expect ( screen . queryByTestId ( 'status-slider-label' ) ) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should not render the network status slider if no gas fee estimates are available' , ( ) => {
renderComponent ( {
gasFeeContext : {
gasFeeEstimates : null ,
} ,
} ) ;
expect ( screen . queryByTestId ( 'status-slider-label' ) ) . not . toBeInTheDocument ( ) ;
} ) ;
} ) ;