Files
inji-wallet/components/DualMessageOverlay.test.tsx
Kaushik Gupta 33c6caa08a INJIMOB-3246 Code coverage for Inji-Wallet repo increase above 5% (#2108)
* INJIMOB-3246 Code coverage for Inji-Wallet repo increase above 5%

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

* INJIMOB-3246: added snapshot tests and coverage increased to +4%

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

* removed duplicated lines

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

* Added updateCredentialInformation tests

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

* added code rabbit changes

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

* removed platform-specific tests without mocking

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

* standardize mocks in VcItemContainerProfileImage tests

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>

---------

Signed-off-by: Kaushik Gupta <kausgpt97@gmail.com>
2025-11-07 11:10:37 +05:30

84 lines
2.4 KiB
TypeScript

import React from 'react';
import {render} from '@testing-library/react-native';
import {DualMessageOverlay} from './DualMessageOverlay';
import {Text} from 'react-native';
// Mock react-native-elements
jest.mock('react-native-elements', () => ({
Overlay: ({children}: {children: React.ReactNode}) => <>{children}</>,
Button: jest.fn(({title}) => <>{title}</>),
}));
// Mock ui components
jest.mock('./ui', () => ({
Button: jest.fn(
({title, children}: {title?: string; children?: React.ReactNode}) => (
<>{title || children}</>
),
),
Column: ({children}: {children: React.ReactNode}) => <>{children}</>,
Row: ({children}: {children: React.ReactNode}) => <>{children}</>,
Text: ({children}: {children: React.ReactNode}) => <>{children}</>,
}));
describe('DualMessageOverlay Component', () => {
const defaultProps = {
isVisible: true,
title: 'Confirm Action',
message: 'Are you sure you want to proceed?',
};
it('should match snapshot with title and message', () => {
const {toJSON} = render(<DualMessageOverlay {...defaultProps} />);
expect(toJSON()).toMatchSnapshot();
});
it('should match snapshot with both buttons', () => {
const {toJSON} = render(
<DualMessageOverlay
{...defaultProps}
onTryAgain={jest.fn()}
onIgnore={jest.fn()}
/>,
);
expect(toJSON()).toMatchSnapshot();
});
it('should match snapshot with only try again button', () => {
const {toJSON} = render(
<DualMessageOverlay {...defaultProps} onTryAgain={jest.fn()} />,
);
expect(toJSON()).toMatchSnapshot();
});
it('should match snapshot with only ignore button', () => {
const {toJSON} = render(
<DualMessageOverlay {...defaultProps} onIgnore={jest.fn()} />,
);
expect(toJSON()).toMatchSnapshot();
});
it('should match snapshot with hint text', () => {
const {toJSON} = render(
<DualMessageOverlay {...defaultProps} hint="Additional information" />,
);
expect(toJSON()).toMatchSnapshot();
});
it('should match snapshot with custom height', () => {
const {toJSON} = render(
<DualMessageOverlay {...defaultProps} customHeight={300} />,
);
expect(toJSON()).toMatchSnapshot();
});
it('should match snapshot with children', () => {
const {toJSON} = render(
<DualMessageOverlay {...defaultProps}>
<Text>Custom content here</Text>
</DualMessageOverlay>,
);
expect(toJSON()).toMatchSnapshot();
});
});