jest.spyOn( URLSearchParams.prototype, 'get' ).mockReturnValue( null )
I am expecting this code to cause get to evaluate to null but this doesn't appear to be the case, Istanbul is being used and the code below does not ever evaluate to the falsey condition (shown as a failure to cover ?? '':
const startDate: string = new URLSearchParams( queryParams ).get( 'start' ) ?? ''
const endDate: string = new URLSearchParams( queryParams ).get( 'end' ) ?? ''
Any idea what the issue might be?
For context here is the start of the relevant component and test:
// component under test:
const EmployeeTable = () => {
const queryParams = useLocation().search
const { id } = useParams<{ id: string }>()
const employeeId: number = Number( id )
const startDate: string = new URLSearchParams( queryParams ).get( 'start' ) ?? ''
const endDate: string = new URLSearchParams( queryParams ).get( 'end' ) ?? ''
// the jest test
it( 'should render the employee table page section without data', () => {
jest.spyOn( dataHooks, 'useEmployeeTimeSummaries' ).mockImplementation( (): any => ( {
data: null,
} ) )
jest.spyOn( URLSearchParams.prototype, 'get' ).mockReturnValue( null )
const { getByTestId } = render( <EmployeeTable />, { wrapper: reactQueryProvider } )
expect( getByTestId( TEST_ID_EMPLOYEE_TABLE ) ).toBeInTheDocument()
} )