Skip to content

Commit

Permalink
Rostislav / 88096 / Extract is_system_maintenance and `is_cashier_l…
Browse files Browse the repository at this point in the history
…ocked` from `GeneralStore` into the `hooks` package (#7560)

* refactor: init pr

* refactor: added the hook

* refactor: is_system_maintenance usages updated

* fix: fixed bad refactoring

* refactor: usage in tests updated

* feat: added useCashierLocked

* refactor: oopsie

* refactor: is cashier locked is now a hook

* refactor: added deprecation note

* test: added tests for useIsSystemMaintenance

* test: added tests for useCashierLocked + a few minor changes

* refactor: minor change

* refactor: not using mockStore in cashier now + some refactoring

* refactor: fixed bad refactor

* refactor: rmved deprecated functions

* refactor: rmving 'Types' aliases

* refactor: rmved 'Types' aliases

* refactor: @farzin-deriv's suggested change with an adjustment

* refactor: same thing as prev but with other hook

* Update packages/hooks/src/__tests__/useCashierLocked.spec.tsx

Co-authored-by: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com>

* refactor: code duplication fix

* refactor: a few test files refactored

* refactor: on-ramp spec refactored

* refactor: use is system maintenance spec refactored

* refactor: account transfer spec refactored

* refactor: payment agent transfer spec

* refactor: rmved deprecated stuff

* refactor: withdrawal spec

* refactor: account-transfer.spec.tsx

* refactor: withdrawal.spec.tsx

* refactor: payment-agent.spec.tsx & withdrawal.spec.tsx

* refactor: account-transfer.spec.tsx

* refactor: on-ramp.spec.tsx

* refactor: payment-agent-transfer.spec.tsx

* refactor: test coverage

* Update packages/hooks/src/useIsSystemMaintenance.ts

Co-authored-by: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com>

* Update packages/hooks/src/useCashierLocked.ts

Co-authored-by: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com>

* fix: applied more suggested changes

* fix: type error bug

* refactor: type override to make a property optional

* refactor: updated type to keep documentation (thx @farzin-deriv)

* refactor: removed test to see if it changes anything

* refactor: removed unused import in deposit.tsx

* fix: deposit.spec.tsx should not fail now

* refactor: remove TRootStore from specs + some naming changes + minor refactors

* fix: removed nonexistent import

---------

Co-authored-by: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com>
  • Loading branch information
rostislav-deriv and farzin-deriv committed Apr 28, 2023
1 parent b61343e commit 8659c86
Show file tree
Hide file tree
Showing 25 changed files with 1,278 additions and 1,027 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import React from 'react';
import { useStore, observer } from '@deriv/stores';
import { useDepositLocked } from '@deriv/hooks';
import { useCashierLocked, useDepositLocked, useIsSystemMaintenance } from '@deriv/hooks';
import EmptyState from 'Components/empty-state';
import getMessage from './cashier-locked-provider';
import { useCashierStore } from '../../stores/useCashierStores';

const CashierLocked = observer(() => {
const { client } = useStore();
Expand All @@ -15,8 +14,8 @@ const CashierLocked = observer(() => {
loginid,
is_identity_verification_needed,
} = client;
const { general_store } = useCashierStore();
const { is_cashier_locked, is_system_maintenance } = general_store;
const is_cashier_locked = useCashierLocked();
const is_system_maintenance = useIsSystemMaintenance();
const is_deposit_locked = useDepositLocked();

const state = getMessage({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,56 +3,38 @@ import { fireEvent, render, screen } from '@testing-library/react';
import { createBrowserHistory } from 'history';
import { Router } from 'react-router';
import { routes } from '@deriv/shared';
import { useDepositLocked } from '@deriv/hooks';
import NoBalance from '../no-balance';
import CashierProviders from '../../../cashier-providers';
import { mockStore } from '@deriv/stores';

jest.mock('@deriv/hooks', () => ({
...jest.requireActual('@deriv/hooks'),
useDepositLocked: jest.fn(() => false),
}));

jest.mock('@deriv/hooks', () => ({
...jest.requireActual('@deriv/hooks'),
useDepositLocked: jest.fn(() => false),
}));

jest.mock('@deriv/hooks', () => ({
...jest.requireActual('@deriv/hooks'),
useDepositLocked: jest.fn(() => false),
}));
const mock_root_store = mockStore({
client: {
currency: 'USD',
mt5_login_list: [
{
account_type: 'demo',
sub_account_type: 'financial_stp',
},
],
},
modules: { cashier: { general_store: { setCashierTabIndex: jest.fn() } } },
});

describe('<NoBalance />', () => {
const history = createBrowserHistory();
let mockRootStore;

beforeEach(() => {
mockRootStore = {
client: {
currency: 'USD',
mt5_login_list: [
{
account_type: 'demo',
sub_account_type: 'financial_stp',
},
],
},
modules: {
cashier: {
deposit: { is_deposit_locked: useDepositLocked.mockReturnValue(false) },
general_store: { setCashierTabIndex: jest.fn() },
},
},
};
});

it('component should render', () => {
render(
<Router history={history}>
<NoBalance />
</Router>,
{
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
wrapper: ({ children }) => <CashierProviders store={mock_root_store}>{children}</CashierProviders>,
}
);

Expand All @@ -67,7 +49,7 @@ describe('<NoBalance />', () => {
<NoBalance />
</Router>,
{
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
wrapper: ({ children }) => <CashierProviders store={mock_root_store}>{children}</CashierProviders>,
}
);

Expand Down
Loading

1 comment on commit 8659c86

@vercel
Copy link

@vercel vercel bot commented on 8659c86 Apr 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

deriv-app – ./

deriv-app.vercel.app
binary.sx
deriv-app.binary.sx
deriv-app-git-master.binary.sx

Please sign in to comment.