Skip to content

Commit

Permalink
Merge branch 'binary-com:master' into migrate_svg_to_bvi_dvl
Browse files Browse the repository at this point in the history
  • Loading branch information
shaheer-deriv committed Sep 21, 2023
2 parents dc9b8cf + 1005bf9 commit 3baf68d
Show file tree
Hide file tree
Showing 328 changed files with 4,830 additions and 1,386 deletions.
14 changes: 8 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,15 +223,17 @@ jobs:
name: "Check TypeScript for @deriv/stores"
command: npx tsc --project packages/stores/tsconfig.json -noEmit
- run:
name: "Check TypeScript and linting for @deriv/wallets"
command: |
npx tsc --project packages/wallets/tsconfig.json -noEmit
npx eslint --fix --config packages/wallets/.eslintrc.js packages/wallets
npx stylelint packages/wallets/**/*.scss
name: "Check TypeScript for @deriv/wallets"
command: npx tsc --project packages/wallets/tsconfig.json -noEmit
# - run:
# name: "Check TypeScript for @deriv/cashier"
# command: npx tsc --project packages/cashier/tsconfig.json -noEmit
- run:
name: "Check ESLint for @deriv/wallets"
command: npx eslint --fix --config packages/wallets/.eslintrc.js packages/wallets
- run:
name: "Check Stylelint for @deriv/wallets"
command: npx stylelint packages/wallets/**/*.scss
- run:
name: "Check tests for @deriv/hooks"
command: bash ./scripts/check-tests.sh packages/hooks/src
Expand Down
12 changes: 12 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -155,3 +155,15 @@
/packages/trader/**/* @matin-deriv @maryia-deriv


# ==============================================================
# deriv-app/wallets
# ==============================================================

/packages/wallets/**/* @adrienne-deriv @thisyahlen-deriv @farhan-nurzi-deriv


# ==============================================================
# deriv-app/api
# ==============================================================

/packages/api/**/* @adrienne-deriv @thisyahlen-deriv @farhan-nurzi-deriv
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import IdvDocumentSubmit from '../idv-document-submit';

jest.mock('react-router');
jest.mock('Assets/ic-document-submit-icon.svg', () => jest.fn(() => 'DocumentSubmitLogo'));
jest.mock('Helpers/utils.ts', () => ({
...jest.requireActual('Helpers/utils.ts'),
jest.mock('Helpers/utils', () => ({
...jest.requireActual('Helpers/utils'),
getDocumentData: jest.fn((country_code, key) => {
const data = {
tc: {
Expand Down Expand Up @@ -137,7 +137,7 @@ describe('<IdvDocumentSubmit/>', () => {
fireEvent.change(document_number_input, { target: { value: 'A-32523' } });
expect(await screen.findByText(/please enter the correct format/i)).toBeInTheDocument();

fireEvent.change(document_number_input, { target: { value: '5436454364243' } });
fireEvent.change(document_number_input, { target: { value: 'A54321' } });
await waitFor(() => {
expect(screen.queryByText(/please enter the correct format/i)).not.toBeInTheDocument();
expect(screen.queryByText(/please enter a valid ID number/i)).not.toBeInTheDocument();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
} from '@deriv/shared';
import {
documentAdditionalError,
getRegex,
isDocumentNumberValid,
validate,
makeSettingsRequest,
validateName,
Expand Down Expand Up @@ -84,20 +84,6 @@ const IdvDocumentSubmit = ({
return undefined;
};

const isDocumentNumberValid = (document_number: string, document_type: Required<TDocument>) => {
const is_document_number_invalid = document_number === document_type.example_format;
if (!document_number) {
return localize('Please enter your document number. ') + getExampleFormat(document_type.example_format);
} else if (is_document_number_invalid) {
return localize('Please enter a valid ID number.');
}
const format_regex = getRegex(document_type.value);
if (!format_regex.test(document_number)) {
return localize('Please enter the correct format. ') + getExampleFormat(document_type.example_format);
}
return undefined;
};

const validateFields = (values: TIDVFormValues) => {
const errors: Partial<TInputFieldValues> = {};
const { document_type, document_number, document_additional } = values;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import {
generatePlaceholderText,
documentAdditionalError,
shouldShowIdentityInformation,
generatePlaceholderText,
getDocumentData,
getExampleFormat,
getRegex,
preventEmptyClipboardPaste,
isDocumentNumberValid,
isFieldImmutable,
getExampleFormat,
preventEmptyClipboardPaste,
shouldShowIdentityInformation,
} from '../utils';

describe('generatePlaceholderText', () => {
Expand Down Expand Up @@ -172,3 +175,60 @@ describe('getExampleFormat', () => {
expect(getExampleFormat('')).toEqual('');
});
});

describe('isDocumentNumberValid', () => {
it('should return error message for empty document number, when document_type text Passport', () => {
const mock_document_type = {
id: 'passport',
text: 'Passport',
example_format: '081234567F53',
};
const errorMessage = isDocumentNumberValid('', mock_document_type);
render(<div>{errorMessage}</div>);
expect(screen.getByText('Please enter your document number. Example: 081234567F53')).toBeInTheDocument();
});

it('should return error message for empty Driver License, when document_type text Drivers License', () => {
const mock_document_type = {
id: 'drivers_license',
text: 'Drivers License',
example_format: '081234567F53',
};
const errorMessage = isDocumentNumberValid('', mock_document_type);
render(<div>{errorMessage}</div>);
expect(
screen.getByText('Please enter your Driver License Reference number. Example: 081234567F53')
).toBeInTheDocument();
});

it('should return error message for empty SSNIT, when document_type text Social Security and National Insurance Trust', () => {
const mock_document_type = {
id: 'ssnit',
text: 'Social Security and National Insurance Trust',
example_format: '081234567F53',
};
const errorMessage = isDocumentNumberValid('', mock_document_type);
render(<div>{errorMessage}</div>);
expect(screen.getByText('Please enter your SSNIT number. Example: 081234567F53')).toBeInTheDocument();
});

it('should return Please enter valid ID, when user inputs same with example', () => {
const mock_document_type = {
id: 'ssnit',
text: 'Social Security and National Insurance Trust',
example_format: '081234567F53',
};
const errorMessage = isDocumentNumberValid('081234567F53', mock_document_type);
expect(errorMessage).toEqual('Please enter a valid ID number.');
});

it('should return undefined, when user inputs value correctly', () => {
const mock_document_type = {
id: 'ssnit',
text: 'Social Security and National Insurance Trust',
example_format: '081234567F53',
};
const errorMessage = isDocumentNumberValid('08123456F753', mock_document_type);
expect(errorMessage).toBeUndefined();
});
});
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { Localize, localize } from '@deriv/translations';
import { filterObjProperties, toMoment, validLength, validName, getIDVNotApplicableOption } from '@deriv/shared';
import { localize } from '@deriv/translations';
import { ResidenceList, GetSettings, GetAccountStatus } from '@deriv/api-types';
import { FormikValues } from 'formik';
import { getIDVDocuments } from '../Constants/idv-document-config';
Expand Down Expand Up @@ -153,8 +153,26 @@ export const isAdditionalDocumentValid = (document_type: FormikValues, document_

export const isDocumentNumberValid = (document_number: string, document_type: FormikValues) => {
const is_document_number_invalid = document_number === document_type.example_format;
if (!document_number) {
return localize('Please enter your document number. ') + getExampleFormat(document_type.example_format);
if (!document_number && document_type.text) {
let document_name = '';
const example_format = getExampleFormat(document_type.example_format);
switch (document_type.id) {
case 'drivers_license':
document_name = 'Driver License Reference number';
break;
case 'ssnit':
document_name = 'SSNIT number';
break;
default:
document_name = 'document number';
break;
}
return (
<Localize
i18n_default_text='Please enter your {{document_name}}. {{example_format}}'
values={{ document_name, example_format }}
/>
);
} else if (is_document_number_invalid) {
return localize('Please enter a valid ID number.');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,7 @@ export const PersonalDetailsForm = observer(({ history }) => {
onBlur={handleBlur}
required
error={errors.phone}
disabled={!isChangeableField('phone')}
data-testid='dt_phone'
/>
</fieldset>
Expand Down
26 changes: 15 additions & 11 deletions packages/api/src/hooks/index.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
export { default as useAccountsList } from './useAccountsList';
export { default as useAccountStatus } from './useAccountStatus';
export { default as useAccountTypes } from './useAccountTypes';
export { default as useAccountsList } from './useAccountsList';
export { default as useActiveAccount } from './useActiveAccount';
export { default as useActiveTradingAccount } from './useActiveTradingAccount';
export { default as useActiveWalletAccount } from './useActiveWalletAccount';
export { default as useAllAvailableAccounts } from './useAllAvailableAccounts';
export { default as useAuthorize } from './useAuthorize';
export { default as useAvailableMT5Accounts } from './useAvailableMT5Accounts';
export { default as useAvailableWallets } from './useAvailableWallets';
export { default as useBalance } from './useBalance';
export { default as useCFDAccountsList } from './useCFDAccountsList';
export { default as useCreateMT5Account } from './useCreateMT5Account';
export { default as useCreateOtherCFDAccount } from './useCreateOtherCFDAccount';
export { default as useCtraderAccountsList } from './useCtraderAccountsList';
export { default as useCtraderServiceToken } from './useCtraderServiceToken';
export { default as useCurrencyConfig } from './useCurrencyConfig';
export { default as useDepositCryptoAddress } from './useDepositCryptoAddress';
export { default as useDepositFiatAddress } from './useDepositFiatAddress';
export { default as useDerivezAccountsList } from './useDerivezAccountsList';
export { default as useDxtradeAccountsList } from './useDxtradeAccountsList';
export { default as useGetAccountStatus } from './useGetAccountStatus';
export { default as useLandingCompany } from './useLandingCompany';
export { default as useMT5AccountsList } from './useMT5AccountsList';
export { default as useSettings } from './useSettings';
export { default as useSortedMT5Accounts } from './useSortedMT5Accounts';
export { default as useTradingAccountsList } from './useTradingAccountsList';
export { default as useTradingPlatformAccounts } from './useTradingPlatformAccounts';
export { default as useTradingPlatformAvailableAccounts } from './useTradingPlatformAvailableAccounts';
export { default as useWalletAccountsList } from './useWalletAccountsList';
export { default as useTradingPlatformInvestorPasswordChange } from './useTradingPlatformInvestorPasswordChange';
export { default as useCreateMT5Account } from './useCreateMT5Account';
export { default as useCreateOtherCFDAccount } from './useCreateOtherCFDAccount';
export { default as useTradingPlatformPasswordChange } from './useTradingPlatformPasswordChange';
export { default as useTradingPlatformInvestorPasswordReset } from './useTradingPlatformInvestorPasswordReset';
export { default as useDxtradeAccountsList } from './useDxtradeAccountsList';
export { default as useDerivezAccountsList } from './useDerivezAccountsList';
export { default as useCFDAccountsList } from './useCFDAccountsList';
export { default as useCtraderAccountsList } from './useCtraderAccountsList';
export { default as useCtraderServiceToken } from './useCtraderServiceToken';
export { default as useTradingPlatformPasswordChange } from './useTradingPlatformPasswordChange';
export { default as useWalletAccountsList } from './useWalletAccountsList';
Loading

0 comments on commit 3baf68d

Please sign in to comment.