Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Amina/feature/90115/update jurisdiction #23

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
5ba7aa9
Merge pull request #63 from shaheer-deriv/shaheer/feature/90115/updat…
shaheer-deriv May 2, 2023
8f66bd0
Merge branch 'binary-com:master' into amina/feature/90115/update_juri…
shaheer-deriv May 3, 2023
6d55f28
Farzin/94196/Console error when open staging (#8437)
farzin-deriv May 3, 2023
ddee41b
FarhanNurzi/ is_p2p_disabled cookie doesn't get removed when user log…
farhan-nurzi-deriv May 3, 2023
5575c13
Sergei / Livechat reinit without page refresh when user changes theme…
sergei-deriv May 3, 2023
8509055
Merge branch 'binary-com:master' into amina/feature/90115/update_juri…
shaheer-deriv May 4, 2023
6fcae8a
fix: loader position in cashier onboarding (#8468)
heorhi-deriv May 5, 2023
6704425
Merge branch 'master' into amina/feature/90115/update_jurisdiction
matin-deriv May 5, 2023
f112837
fix: authorization order (#8466)
heorhi-deriv May 5, 2023
2aed3f5
Revert "Sergei / Livechat reinit without page refresh when user chang…
jim-deriv May 5, 2023
8a4fec1
Revert "Sergei / 67781 / live chat color (#7619)" (#8473)
hirad-deriv May 5, 2023
dd53ac7
chore: remove secret from currency-selector
suisin-deriv May 5, 2023
e8df579
Merge branch 'amina/feature/90115/update_jurisdiction' of github.com:…
suisin-deriv May 5, 2023
29f2f5f
Merge branch 'master' into amina/feature/90115/update_jurisdiction
suisin-deriv May 5, 2023
292ad69
Merge branch 'amina/feature/90115/update_jurisdiction' of github.com:…
suisin-deriv May 5, 2023
cd15c91
Merge pull request #64 from suisin-deriv/suisin/remove_hardcoded_secret
matin-deriv May 5, 2023
3c4cefc
Ako/ use circleci CIRCLE_TAG as version in datadog (#8479)
ali-hosseini-deriv May 5, 2023
ee1b487
Merge branch 'binary-com:master' into amina/feature/90115/update_juri…
shaheer-deriv May 5, 2023
7c1945c
refactor: :pencil2: renames css variable
shaheer-deriv May 5, 2023
3310b4a
chore: fix code smells issue
suisin-deriv May 5, 2023
f382e2b
Merge pull request #65 from suisin-deriv/suisin/solve_code_smells_issue
suisin-deriv May 5, 2023
171c00a
refactor: :pencil2: renames jurisdiction content getter funcs
shaheer-deriv May 5, 2023
8969de4
refactor: :lipstick: uses BORDER_RADIUS constant in css
shaheer-deriv May 5, 2023
e91936a
refactor: :art: uses react MouseEvent instead of SyntheticEvent
shaheer-deriv May 5, 2023
b3d969b
refactor: :art: uses hook via React namespace
shaheer-deriv May 5, 2023
e7df8d2
Niloofar Sadeghi / Bug - Getting "Sorry for interruption" error messa…
niloofar-deriv May 8, 2023
1d81ab3
Merge branch 'master' into amina/feature/90115/update_jurisdiction
suisin-deriv May 8, 2023
c6ef3c4
chore: update code based on comments
suisin-deriv May 8, 2023
d7eab5c
Merge pull request #66 from suisin-deriv/suisin/resolve_commented_PR
suisin-deriv May 8, 2023
9961ed0
fix: overlapping textarea values (#8451)
farrah-deriv May 8, 2023
eb28654
Merge branch 'master' into amina/feature/90115/update_jurisdiction
shaheer-deriv May 8, 2023
2bdbc5c
likhith/fix: :art: resolved incorrect CSS style (#8508)
likhith-deriv May 9, 2023
d9031f5
fix: style issue in the transfer tab in the cashier (#8509)
niloofar-deriv May 9, 2023
fc43eb8
fix(core): :ambulance: call `setWebsocket` in `@deriv/core` (#8513)
farzin-deriv May 9, 2023
5fdb287
Merge branch 'binary-com:master' into amina/feature/90115/update_juri…
shaheer-deriv May 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ describe('<CurrencySelector/>', () => {
is_virtual: 1,
landing_company_shortcode: 'virtual',
trading: {},
token: 'a1-sLGGrhfYPkeEprxEop2T591cLKbuN',
email: 'test+qw@deriv.com',
token: '',
email: '',
session_start: 1651059038,
excluded_until: '',
landing_company_name: 'virtual',
Expand Down Expand Up @@ -273,8 +273,8 @@ describe('<CurrencySelector/>', () => {
is_virtual: 1,
landing_company_shortcode: 'svg',
trading: {},
token: 'a1-sLGGrhfYPkeEprxEop2T591cLKbuN',
email: 'test+qw@deriv.com',
token: '',
email: '',
session_start: 1651059038,
excluded_until: '',
landing_company_name: 'svg',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.cfd-jurisdiction-card--synthetic,
.cfd-jurisdiction-card--financial {
border: solid 2px var(--border-normal);
border-radius: 1.6rem;
border-radius: $BORDER_RADIUS * 4;
display: flex;
justify-content: space-between;
flex-direction: column;
Expand Down Expand Up @@ -46,7 +46,7 @@
height: 100%;
}
&-over-header {
background: var(--text-info-blue-bg);
background: var(--text-info-blue-background);
height: 4rem;
width: 100%;
padding: 0.5rem;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
}

&__loader {
position: fixed;
position: relative;
left: 0;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,6 @@
@include mobile {
width: 100%;
min-width: auto;
margin-bottom: 2.6rem !important;
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { localize } from '@deriv/translations';
import { TJurisdictionCardItems } from 'Components/props.types';

export const jurisdictionBviContents = (): TJurisdictionCardItems => ({
export const getJurisdictionBviContents = (): TJurisdictionCardItems => ({
is_over_header_available: false,
header: localize('British Virgin Islands'),
synthetic_contents: [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { TJurisdictionCardItems } from 'Components/props.types';
import { jurisdictionBviContents } from './jurisdiction-bvi-contents';
import { jurisdictionLabuanContents } from './jurisdiction-labuan-contents';
import { jurisdictionSvgContents } from './jurisdiction-svg-contents';
import { jurisdictionVanuatuContents } from './jurisdiction-vanuatu-contents';
import { jurisdictionMaltainvestContents } from './jurisdiction_maltainvest_contents';
import { getJurisdictionBviContents } from './jurisdiction-bvi-contents';
import { getJurisdictionLabuanContents } from './jurisdiction-labuan-contents';
import { getJurisdictionSvgContents } from './jurisdiction-svg-contents';
import { getJurisdictionVanuatuContents } from './jurisdiction-vanuatu-contents';
import { getJurisdictionMaltainvestContents } from './jurisdiction_maltainvest_contents';

type TJurisdictionContent = {
svg: TJurisdictionCardItems;
Expand All @@ -14,9 +14,9 @@ type TJurisdictionContent = {
};

export const getJurisdictionContents = (): TJurisdictionContent => ({
svg: jurisdictionSvgContents(),
bvi: jurisdictionBviContents(),
vanuatu: jurisdictionVanuatuContents(),
labuan: jurisdictionLabuanContents(),
maltainvest: jurisdictionMaltainvestContents(),
svg: getJurisdictionSvgContents(),
bvi: getJurisdictionBviContents(),
vanuatu: getJurisdictionVanuatuContents(),
labuan: getJurisdictionLabuanContents(),
maltainvest: getJurisdictionMaltainvestContents(),
});
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { localize } from '@deriv/translations';
import { TJurisdictionCardItems } from 'Components/props.types';

export const jurisdictionLabuanContents = (): TJurisdictionCardItems => ({
export const getJurisdictionLabuanContents = (): TJurisdictionCardItems => ({
over_header: localize('Straight-through processing'),
is_over_header_available: true,
header: localize('Labuan'),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { localize } from '@deriv/translations';
import { TJurisdictionCardItems } from 'Components/props.types';

export const jurisdictionSvgContents = (): TJurisdictionCardItems => ({
export const getJurisdictionSvgContents = (): TJurisdictionCardItems => ({
is_over_header_available: false,
header: localize('St. Vincent & Grenadines'),
synthetic_contents: [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { localize } from '@deriv/translations';
import { TJurisdictionCardItems } from 'Components/props.types';

export const jurisdictionVanuatuContents = (): TJurisdictionCardItems => ({
export const getJurisdictionVanuatuContents = (): TJurisdictionCardItems => ({
is_over_header_available: false,
header: localize('Vanuatu'),
synthetic_contents: [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { localize } from '@deriv/translations';
import { TJurisdictionCardItems } from 'Components/props.types';

export const jurisdictionMaltainvestContents = (): TJurisdictionCardItems => ({
export const getJurisdictionMaltainvestContents = (): TJurisdictionCardItems => ({
is_over_header_available: false,
header: localize('Malta'),
synthetic_contents: [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ describe('JurisdictionCard', () => {
needs_verification: string[];
};
currency_config: {
[k: string]: { is_deposit_suspended?: 0 | 1 | undefined; is_withdrawal_suspended?: 0 | 1 | undefined };
[k: string]: { is_deposit_suspended?: 0 | 1; is_withdrawal_suspended?: 0 | 1 };
};
p2p_status: 'none' | 'active' | 'temp_ban' | 'perm_ban';
prompt_client_to_authenticate: 0 | 1;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,49 +1,11 @@
import React from 'react';
import { screen, render } from '@testing-library/react';
import JurisdictionTitleIndicator from '../jurisdiction-title-indicator';
import { TJurisdictionTitleIndicatorProps } from 'Containers/props.types';
import { Jurisdiction } from '@deriv/shared';

describe('JurisdictionTitleIndicator', () => {
type TMockProps = {
title_indicators: {
type: 'displayText' | 'displayIcons';
display_text?: string;
};
type_of_card: 'svg' | 'bvi' | 'vanuatu' | 'labuan' | 'maltainvest';
account_status: {
authentication: {
document: {
status: 'none' | 'pending' | 'verified' | 'expired' | 'rejected' | undefined;
};
identity: {
services: {
idv: {
status: 'none' | 'pending' | 'verified' | 'expired' | 'rejected' | undefined;
};
onfido: {
status: 'none' | 'pending' | 'verified' | 'expired' | 'rejected' | undefined;
};
manual: {
status: 'none' | 'pending' | 'verified' | 'expired' | 'rejected' | undefined;
};
};
};
needs_verification: string[];
};
currency_config: {
[k: string]: {
is_deposit_suspended?: 0 | 1;
is_withdrawal_suspended?: 0 | 1;
};
};
p2p_status: 'none';
prompt_client_to_authenticate: 0;
risk_classification: string;
status: string[];
};
verification_docs: ['document_number' | 'selfie' | 'identity_document' | 'name_and_address' | 'not_applicable'];
};
const mock_props: TMockProps = {
const mock_props: TJurisdictionTitleIndicatorProps = {
title_indicators: {
type: 'displayText',
display_text: 'Test Display Text',
Expand Down Expand Up @@ -96,38 +58,60 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Pending icon variant', () => {
mock_props.account_status.authentication.identity.services.idv.status = 'pending';
mock_props.account_status.authentication.identity.services.onfido.status = 'pending';
mock_props.account_status.authentication.identity.services.manual.status = 'pending';
if (mock_props.account_status.authentication?.identity?.services?.idv?.status) {
mock_props.account_status.authentication.identity.services.idv.status = 'pending';
}
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'pending';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'pending';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['document_number'];
render(<JurisdictionTitleIndicator {...mock_props} />);
expect(screen.getByTestId('dt_jurisdiction_title_indicator_Pending_icon')).toBeInTheDocument();
});

it('should render JurisdictionTitleIndicator with displayIcons and Failed icon variant', () => {
mock_props.account_status.authentication.identity.services.idv.status = 'rejected';
mock_props.account_status.authentication.identity.services.onfido.status = 'rejected';
mock_props.account_status.authentication.identity.services.manual.status = 'rejected';
if (mock_props.account_status.authentication?.identity?.services?.idv?.status) {
mock_props.account_status.authentication.identity.services.idv.status = 'rejected';
}
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'rejected';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'rejected';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['document_number'];
render(<JurisdictionTitleIndicator {...mock_props} />);
expect(screen.getByTestId('dt_jurisdiction_title_indicator_Failed_icon')).toBeInTheDocument();
});

it('should render JurisdictionTitleIndicator with displayIcons and Verified icon variant', () => {
mock_props.account_status.authentication.identity.services.idv.status = 'verified';
mock_props.account_status.authentication.identity.services.onfido.status = 'verified';
mock_props.account_status.authentication.identity.services.manual.status = 'verified';
if (mock_props.account_status.authentication?.identity?.services?.idv?.status) {
mock_props.account_status.authentication.identity.services.idv.status = 'verified';
}
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'verified';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'verified';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['document_number'];
render(<JurisdictionTitleIndicator {...mock_props} />);
expect(screen.getByTestId('dt_jurisdiction_title_indicator_Verified_icon')).toBeInTheDocument();
});

it('should render JurisdictionTitleIndicator with displayIcons and Pending icon variant with type_of_card to be Vanuatu', () => {
mock_props.account_status.authentication.identity.services.onfido.status = 'pending';
mock_props.account_status.authentication.identity.services.manual.status = 'pending';
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'pending';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'pending';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['selfie'];
mock_props.type_of_card = Jurisdiction.VANUATU;
Expand All @@ -136,8 +120,12 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Pending icon variant with type_of_card to be MaltaInvest', () => {
mock_props.account_status.authentication.identity.services.onfido.status = 'pending';
mock_props.account_status.authentication.identity.services.manual.status = 'pending';
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'pending';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'pending';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['identity_document'];
mock_props.type_of_card = Jurisdiction.MALTA_INVEST;
Expand All @@ -146,8 +134,12 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Failed icon variant with type_of_card to be Vanuatu', () => {
mock_props.account_status.authentication.identity.services.onfido.status = 'rejected';
mock_props.account_status.authentication.identity.services.manual.status = 'rejected';
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'rejected';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'rejected';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['selfie'];
mock_props.type_of_card = Jurisdiction.VANUATU;
Expand All @@ -156,8 +148,12 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Verified icon variant with type_of_card to be Vanuatu', () => {
mock_props.account_status.authentication.identity.services.onfido.status = 'verified';
mock_props.account_status.authentication.identity.services.manual.status = 'verified';
if (mock_props.account_status.authentication?.identity?.services?.onfido?.status) {
mock_props.account_status.authentication.identity.services.onfido.status = 'verified';
}
if (mock_props.account_status.authentication?.identity?.services?.manual?.status) {
mock_props.account_status.authentication.identity.services.manual.status = 'verified';
}
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['selfie'];
mock_props.type_of_card = Jurisdiction.VANUATU;
Expand All @@ -166,7 +162,8 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Pending icon variant when verification_document is name_and_address and type_of_card to be svg', () => {
mock_props.account_status.authentication.document.status = 'pending';
if (mock_props.account_status.authentication?.document?.status)
mock_props.account_status.authentication.document.status = 'pending';
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['name_and_address'];
mock_props.type_of_card = Jurisdiction.SVG;
Expand All @@ -175,7 +172,8 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Failed icon variant when verification_document is name_and_address and type_of_card to be svg', () => {
mock_props.account_status.authentication.document.status = 'rejected';
if (mock_props.account_status.authentication?.document?.status)
mock_props.account_status.authentication.document.status = 'rejected';
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['name_and_address'];
mock_props.type_of_card = Jurisdiction.SVG;
Expand All @@ -184,7 +182,8 @@ describe('JurisdictionTitleIndicator', () => {
});

it('should render JurisdictionTitleIndicator with displayIcons and Verified icon variant when verification_document is name_and_address and type_of_card to be svg', () => {
mock_props.account_status.authentication.document.status = 'verified';
if (mock_props.account_status.authentication?.document?.status)
mock_props.account_status.authentication.document.status = 'verified';
mock_props.title_indicators.type = 'displayIcons';
mock_props.verification_docs = ['name_and_address'];
mock_props.type_of_card = Jurisdiction.SVG;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import classNames from 'classnames';
import React, { SyntheticEvent, useState } from 'react';
import React from 'react';
import { getJurisdictionContents } from '../../Constants/jurisdiction-contents/jurisdiction-contents';
import { TJurisdictionCardProps } from '../props.types';
import JurisdictionCardBack from './jurisdiction-card-back';
Expand All @@ -20,14 +20,14 @@ const JurisdictionCard = ({
const verification_docs = is_synthetic
? card_values?.synthetic_verification_docs
: card_values?.financial_verification_docs;
const [is_card_flipped, setIsCardFlipped] = useState(false);
const [is_card_flipped, setIsCardFlipped] = React.useState(false);
const is_card_selected = jurisdiction_selected_shortcode === type_of_card;

const cardSelection = (cardType: string) => {
setJurisdictionSelectedShortcode(jurisdiction_selected_shortcode === cardType ? '' : cardType);
};

const toggleCardFlip = (event: SyntheticEvent) => {
const toggleCardFlip: React.MouseEventHandler<HTMLSpanElement> = event => {
event.stopPropagation();
setIsCardFlipped(!is_card_flipped);
};
Expand Down
Loading