Skip to content

Commit

Permalink
Merge pull request #66 from suisin-deriv/suisin/resolve_commented_PR
Browse files Browse the repository at this point in the history
Suisin/chore: update code based on comments
  • Loading branch information
suisin-deriv committed May 8, 2023
2 parents 1d81ab3 + c6ef3c4 commit d7eab5c
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 64 deletions.
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
Expand Up @@ -27,7 +27,7 @@ const JurisdictionCard = ({
setJurisdictionSelectedShortcode(jurisdiction_selected_shortcode === cardType ? '' : cardType);
};

const toggleCardFlip = (event: React.MouseEvent) => {
const toggleCardFlip: React.MouseEventHandler<HTMLSpanElement> = event => {
event.stopPropagation();
setIsCardFlipped(!is_card_flipped);
};
Expand Down
6 changes: 3 additions & 3 deletions packages/cfd/src/Containers/props.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ export type TJurisdictionCardProps = {
export type TJurisdictionCardBackProps = {
card_classname: string;
is_card_selected: boolean;
toggleCardFlip: (event: React.MouseEvent) => void;
toggleCardFlip: React.MouseEventHandler<HTMLSpanElement>;
verification_docs: TJurisdictionCardItemVerification | undefined;
};

Expand All @@ -196,7 +196,7 @@ export type TJurisdictionCardFrontProps = TJurisdictionCardBackProps & {

export type TJurisdictionClickableDescriptionProps = {
clickable_description: Array<TClickableDescription>;
toggleCardFlip: (event: React.MouseEvent) => void;
toggleCardFlip: React.MouseEventHandler<HTMLSpanElement>;
};

export type TJurisdictionTitleIndicatorProps = {
Expand All @@ -209,7 +209,7 @@ export type TJurisdictionTitleIndicatorProps = {
export type TJurisdictionCardSectionProps = {
account_status: GetAccountStatus;
card_section_item: TJurisdictionCardSection;
toggleCardFlip: (event: React.MouseEvent) => void;
toggleCardFlip: React.MouseEventHandler<HTMLSpanElement>;
type_of_card: TJurisdictionCardType;
verification_docs: TJurisdictionCardItemVerification | undefined;
};
Expand Down

0 comments on commit d7eab5c

Please sign in to comment.