Skip to content

Commit

Permalink
UIIN-1765 JEST/RTL test cases for CreateHolding
Browse files Browse the repository at this point in the history
  • Loading branch information
KetineniM committed Apr 14, 2023
1 parent 5565487 commit d9626d0
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions src/Holding/CreateHolding/CreateHolding.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import '../../../test/jest/__mock__';

import { MemoryRouter } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from 'react-query';
import { render, screen } from '@testing-library/react';
import { Promise } from 'core-js';
import { instance } from '../../../test/fixtures/instance';
import {
useHolding,
useInstance,
} from '../../common/hooks';
import { useHoldingMutation } from '../../hooks';
import HoldingsForm from '../../edit/holdings/HoldingsForm';
import CreateHolding from './CreateHolding';


jest.mock('../../edit/holdings/HoldingsForm', () => jest.fn().mockReturnValue('HoldingsForm'));
jest.mock('../../hooks', () => ({
...jest.requireActual('../../hooks'),
useCallout: jest.fn().mockReturnValue({ sendCallout: jest.fn() }),
useHoldingMutation: jest.fn().mockReturnValue({ mutateHolding: jest.fn() }),
}));
jest.mock('../../common/hooks', () => ({
...jest.requireActual('../../common/hooks'),
useInstance: jest.fn().mockReturnValue({ instance: {}, isLoading: false }),
useHolding: jest.fn().mockReturnValue({ holding: {}, isLoading: false }),
}));

const defaultProps = {
goTo: jest.fn(),
instanceId: instance.id,
holdingId: 'holdingId',
referenceData: {},
mutator:{
GET:jest.fn().mockReturnValue({}),
POST:jest.fn().mockReturnValue({}),
holding: {
POST:jest.fn(() => Promise.resolve({ data:{} }))
},
}
};

const queryClient = new QueryClient();

const wrapper = ({ children }) => (
<MemoryRouter>
<QueryClientProvider client={queryClient}>
{children}
</QueryClientProvider>
</MemoryRouter>
);

const renderCreateHolding = (props = {}) => render(
<CreateHolding
{...defaultProps}
{...props}
/>,
{ wrapper },
);

describe('CreateHolding', () => {
const mockMutate = jest.fn();

beforeEach(() => {
useInstance.mockClear();
useHolding.mockClear();
useHoldingMutation.mockClear().mockReturnValue({ mutateHolding: mockMutate });
});

it('should render HoldingsForm', () => {
renderCreateHolding();

expect(screen.getByText('HoldingsForm')).toBeInTheDocument();
});

it('should render LoadingView if page is loading', () => {
useInstance.mockReturnValue({ isLoading: true });

renderCreateHolding();

expect(screen.getByText('LoadingView')).toBeInTheDocument();
});

it('should call holding mutation when the holding form is submitted', () => {
renderCreateHolding();
HoldingsForm.mock.calls[0][0].onSubmit();
});
});

0 comments on commit d9626d0

Please sign in to comment.