diff --git a/packages/appstore/src/components/elements/text/__tests__/balance-text.spec.tsx b/packages/appstore/src/components/elements/text/__tests__/balance-text.spec.tsx new file mode 100644 index 000000000000..00616cfbe344 --- /dev/null +++ b/packages/appstore/src/components/elements/text/__tests__/balance-text.spec.tsx @@ -0,0 +1,101 @@ +import React from 'react'; +import BalanceText from '../balance-text'; +import { render, screen } from '@testing-library/react'; +import { StoreProvider, mockStore } from '@deriv/stores'; + +const createWrapper = (mock: ReturnType) => { + const wrapper = ({ children }: { children: JSX.Element }) => {children}; + + return wrapper; +}; + +describe('BalanceText', () => { + it('should render the component', () => { + const mock = mockStore({}); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + }); + + it('should render the correct balance and currency', () => { + const mock = mockStore({}); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + expect(screen.getByText('1,000.00')).toBeInTheDocument(); + expect(screen.getByText('USD')).toBeInTheDocument(); + }); + + it('should render the correct div class for dotted underline_style', () => { + const mock = mockStore({}); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + expect(screen.getByTestId('dt_balance_text_container')).toHaveClass('balance-text--dotted'); + }); + + it('should have classname ending with demo if user has selected_account_type demo and has an active real account ', () => { + const mock = mockStore({ + traders_hub: { + selected_account_type: 'demo', + }, + client: { + has_active_real_account: true, + }, + }); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + expect(screen.getByText('1,000.00')).toHaveClass('balance-text__text--demo'); + }); + + it('should have classname ending with real if user has selected_account_type demo and has an active real account ', () => { + const mock = mockStore({ + traders_hub: { + selected_account_type: 'real', + }, + client: { + has_active_real_account: true, + }, + }); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + expect(screen.getByText('1,000.00')).toHaveClass('balance-text__text--real'); + }); + + it('should not have classname if selected_account_type is empty ', () => { + const mock = mockStore({ + traders_hub: { + selected_account_type: '', + }, + }); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + expect(screen.getByText('1,000.00')).not.toHaveClass('balance-text__text--real'); + expect(screen.getByText('1,000.00')).not.toHaveClass('balance-text__text--demo'); + }); + + it('should have classname as container if underline_style is none', () => { + const mock = mockStore({}); + + const { container } = render(, { + wrapper: createWrapper(mock), + }); + expect(container).toBeInTheDocument(); + expect(screen.getByTestId('dt_balance_text_container')).toHaveClass('balance-text__container'); + }); +}); diff --git a/packages/appstore/src/components/elements/text/balance-text.tsx b/packages/appstore/src/components/elements/text/balance-text.tsx index ace24d042380..cb9a5996578b 100644 --- a/packages/appstore/src/components/elements/text/balance-text.tsx +++ b/packages/appstore/src/components/elements/text/balance-text.tsx @@ -32,6 +32,7 @@ const BalanceText = observer(({ balance, currency, size = 'm', underline_style = return (
{formatMoney(currency, balance, true)} diff --git a/packages/appstore/src/components/modals/wallet-modal/wallet-modal-header.tsx b/packages/appstore/src/components/modals/wallet-modal/wallet-modal-header.tsx index a177f5b8d919..ed4613c80cfc 100644 --- a/packages/appstore/src/components/modals/wallet-modal/wallet-modal-header.tsx +++ b/packages/appstore/src/components/modals/wallet-modal/wallet-modal-header.tsx @@ -83,6 +83,7 @@ const WalletModalHeader = ({ size={is_mobile ? 'xsm' : 'm'} weight='bold' className={getStylesByClassName(`${header_class_name}__title-balance`)} + data-testid='dt_wallet_balance' > {formatMoney(currency || '', balance, true)} {display_currency_code} diff --git a/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.scss b/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.scss new file mode 100644 index 000000000000..565ebcd856b7 --- /dev/null +++ b/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.scss @@ -0,0 +1,11 @@ +.email-verification-empty-state { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 4.6rem; + + @include mobile { + gap: 2.4rem; + } +} diff --git a/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.tsx b/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.tsx index 765496e06b73..f8c592a3db46 100644 --- a/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.tsx +++ b/packages/cashier/src/components/email-verification-empty-state/email-verification-empty-state.tsx @@ -3,6 +3,7 @@ import { EmptyState } from '@deriv/components'; import { useVerifyEmail } from '@deriv/hooks'; import { localize } from '@deriv/translations'; import EmailVerificationResendEmptyState from './email-verification-resend-empty-state'; +import './email-verification-empty-state.scss'; type TEmailVerificationEmptyStateProps = { type: Parameters[0]; @@ -18,7 +19,7 @@ const EmailVerificationEmptyState = ({ type }: TEmailVerificationEmptyStateProps }; return ( - +
verify.send()} /> )} - +
); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss index 39618819c1bc..221249d604c6 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.scss @@ -7,6 +7,9 @@ padding: 0; margin: 0; } + .email-verification-empty-state { + margin-top: 2.4rem; + } &__instructions { @include mobile { display: grid; diff --git a/packages/components/src/components/empty-state/empty-state.scss b/packages/components/src/components/empty-state/empty-state.scss index 587a970ead58..36dc95f1aede 100644 --- a/packages/components/src/components/empty-state/empty-state.scss +++ b/packages/components/src/components/empty-state/empty-state.scss @@ -1,7 +1,6 @@ .empty-state { width: 100%; display: flex; - flex: 1; flex-direction: column; align-items: center; gap: 2.4rem;