Skip to content

Commit

Permalink
chore: update generic error message component for cashier and wallets (
Browse files Browse the repository at this point in the history
  • Loading branch information
jim-deriv authored Dec 19, 2024
1 parent c5bc484 commit 6e582cf
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 23 deletions.
8 changes: 4 additions & 4 deletions packages/cashier/src/components/error-state/error-state.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ type TProps = {
};

const ErrorState: React.FC<TProps> = ({ error }) => {
let message = localize('Something went wrong. Please refresh the page and try again.');
let message = localize('Please refresh the page and try again.');

if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {
message = error.message;
}

return (
<EmptyState
icon='IcCashierError'
title={localize('Oops, something went wrong!')}
icon='IcTriangleExclamationXl'
title={localize('Something went wrong')}
description={message}
action={{
label: localize('Try again'),
label: localize('Refresh page'),
onClick: () => window.location.reload(),
tertiary: true,
}}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ describe('WalletsErrorScreen', () => {
render(
<WalletsErrorScreen
message='Sorry an error occurred. Please try accessing our cashier again.'
title='Oops, something went wrong!'
title='Something went wrong'
/>
);
expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(
screen.getByText('Sorry an error occurred. Please try accessing our cashier again.')
).toBeInTheDocument();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ const DepositErrorScreen: React.FC<TProps> = ({ error }) => {
}, [currentLang, i18nLanguage]);

const defaultContent: TErrorContent = {
buttonText: <Localize i18n_default_text='Try again' />,
buttonText: <Localize i18n_default_text='Refresh page' />,
message: error.message,
onClick: () => window.location.reload(),
title: <Localize i18n_default_text='Oops, something went wrong!' />,
title: <Localize i18n_default_text='Something went wrong' />,
};

const depositErrorCodeHandlers: TErrorCodeHandlers = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ describe('DepositErrorScreen', () => {

render(<DepositErrorScreen error={error} />);

expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(screen.getByText('Error message')).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Try again' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Refresh page' })).toBeInTheDocument();
});

it('should show correct deposit error screen for crypto suspended currency error', () => {
Expand Down Expand Up @@ -89,9 +89,9 @@ describe('DepositErrorScreen', () => {

render(<DepositErrorScreen error={error} />);

expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(screen.getByText('Error message')).toBeInTheDocument();
const ReloadButton = screen.getByRole('button', { name: 'Try again' });
const ReloadButton = screen.getByRole('button', { name: 'Refresh page' });

fireEvent.click(ReloadButton);
expect(reloadMock).toHaveBeenCalled();
Expand All @@ -106,8 +106,8 @@ describe('DepositErrorScreen', () => {

render(<DepositErrorScreen error={error} />);

expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(screen.getByText('Error message')).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Try again' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Refresh page' })).toBeInTheDocument();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ const WithdrawalErrorScreen: React.FC<TProps> = ({ error, resetError, setResendE
}, [currentLang, i18nLanguage]);

const defaultContent: TErrorContent = {
buttonText: <Localize i18n_default_text='Try again' />,
buttonText: <Localize i18n_default_text='Refresh page' />,
buttonVariant: 'ghost',
message: error.message,
onClick: () => window.location.reload(),
title: <Localize i18n_default_text='Oops, something went wrong!' />,
title: <Localize i18n_default_text='Something went wrong' />,
};

const withdrawalErrorCodeHandlers: TErrorCodeHandlers = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ describe('WithdrawalErrorScreen', () => {

render(<WithdrawalErrorScreen error={error} resetError={resetError} setResendEmail={setResendEmail} />);

expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(screen.getByText('Error message')).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Try again' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Refresh page' })).toBeInTheDocument();
});

it('should show correct withdrawal error screen for crypto suspended currency error', () => {
Expand Down Expand Up @@ -158,9 +158,9 @@ describe('WithdrawalErrorScreen', () => {

render(<WithdrawalErrorScreen error={error} resetError={resetError} setResendEmail={setResendEmail} />);

expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(screen.getByText('Error message')).toBeInTheDocument();
const ReloadButton = screen.getByRole('button', { name: 'Try again' });
const ReloadButton = screen.getByRole('button', { name: 'Refresh page' });

await userEvent.click(ReloadButton);
expect(reloadMock).toHaveBeenCalled();
Expand All @@ -176,7 +176,7 @@ describe('WithdrawalErrorScreen', () => {

expect(screen.getByText('Error')).toBeInTheDocument();
expect(screen.getByText('Crypto Invalid Address')).toBeInTheDocument();
const ReloadButton = screen.getByRole('button', { name: 'Try again' });
const ReloadButton = screen.getByRole('button', { name: 'Refresh page' });

await userEvent.click(ReloadButton);
expect(resetError).toHaveBeenCalledTimes(1);
Expand All @@ -191,9 +191,9 @@ describe('WithdrawalErrorScreen', () => {

render(<WithdrawalErrorScreen error={error} resetError={resetError} setResendEmail={setResendEmail} />);

expect(screen.getByText('Oops, something went wrong!')).toBeInTheDocument();
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
expect(screen.getByText('Error message')).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Try again' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Refresh page' })).toBeInTheDocument();
});

it('should render without crashing when optional parameters are not received', async () => {
Expand Down

0 comments on commit 6e582cf

Please sign in to comment.