Skip to content

Commit

Permalink
chore: refactor integration tests for wallets (binary-com#11418)
Browse files Browse the repository at this point in the history
  • Loading branch information
markw-deriv committed Nov 22, 2023
1 parent a03c98a commit 4be4ccb
Show file tree
Hide file tree
Showing 42 changed files with 2,580 additions and 150 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import { test, expect } from '@playwright/test';
import { mock_residents_list, mock_states_list, mock_general, mock_loggedIn, setupMocks } from '@deriv/integration';
import { DEFAULT_ACCOUNTS, mockGeneral, mockLoggedIn, setupMocks } from '@deriv/integration';

test.describe('Personal Details - Menu', () => {
test('the navigation menu works', async ({ page, baseURL }) => {
await setupMocks({
baseURL,
state: {
accounts: DEFAULT_ACCOUNTS,
},
page,
mocks: [mock_general, mock_loggedIn, mock_residents_list, mock_states_list],
mocks: [mockGeneral, mockLoggedIn],
});
await page.goto(`${baseURL}/account/personal-details`);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
import { test, expect } from '@playwright/test';
import {
mock_residents_list,
mock_states_list,
mock_general,
mock_loggedIn,
setupMocks,
assertField,
} from '@deriv/integration';
import { DEFAULT_ACCOUNTS, mockGeneral, mockLoggedIn, setupMocks, assertField } from '@deriv/integration';
import { Context } from '@deriv/integration/src/utils/mocks/mocks';

const mock_set_settings = (context: Context) => {
const mockSetSettings = (context: Context) => {
if ('set_settings' in context.request) {
context.response = {
echo_req: context.request,
Expand All @@ -31,8 +24,11 @@ test.describe('Personal Details', () => {
test('the initial render', async ({ page, baseURL }) => {
await setupMocks({
baseURL,
state: {
accounts: DEFAULT_ACCOUNTS,
},
page,
mocks: [mock_general, mock_loggedIn, mock_residents_list, mock_states_list],
mocks: [mockGeneral, mockLoggedIn],
});
await page.goto(`${baseURL}/account/personal-details`);

Expand All @@ -57,8 +53,11 @@ test.describe('Personal Details', () => {
test('submitting the changed form', async ({ page, baseURL }) => {
await setupMocks({
baseURL,
state: {
accounts: DEFAULT_ACCOUNTS,
},
page,
mocks: [mock_general, mock_loggedIn, mock_residents_list, mock_states_list, mock_set_settings],
mocks: [mockGeneral, mockLoggedIn, mockSetSettings],
});
await page.goto(`${baseURL}/account/personal-details`);

Expand Down
6 changes: 3 additions & 3 deletions packages/integration/src/exampleMock.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { createMockServer } from './utils/mocks/mocks';
import general from './mocks/general';
import auth from './mocks/auth';
import residents_list from './mocks/location/residents_list';
import states_list from './mocks/location/states_list';
import residentsList from './mocks/general/residentsList';
import statesList from './mocks/general/statesList';

async function main() {
await createMockServer([general, auth, residents_list, states_list], { port: 10443 });
await createMockServer({}, {}, [general, auth, residentsList, statesList], { port: 10443 });
process.stdout.write('Listening on localhost:10443');
}

Expand Down
46 changes: 24 additions & 22 deletions packages/integration/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
export { default as mock_authorize } from './mocks/auth/authorize';
export { default as mock_balance_all } from './mocks/auth/balance_all';
export { default as mock_blalance_one } from './mocks/auth/balance_one';
export { default as mock_get_account_status } from './mocks/auth/get_account_status';
export { default as mock_get_financial_assessment } from './mocks/auth/get_financial_assessment';
export { default as mock_get_limits } from './mocks/auth/get_limits';
export { default as mock_get_self_exclusion } from './mocks/auth/get_self_exclusion';
export { default as mock_get_settings } from './mocks/auth/get_settings';
export { default as mock_landing_company } from './mocks/auth/landing_company';
export { default as mock_mt5_login_list } from './mocks/auth/mt5_login_list';
export { default as mock_paymentagent_list } from './mocks/auth/paymentagent_list';
export { default as mock_platform_dxtrade } from './mocks/auth/platform_dxtrade';
export { default as mock_platform_mt5 } from './mocks/auth/platform_mt5';
export { default as mock_trading_platform_available_accounts } from './mocks/auth/trading_platform_available_accounts';
export { default as mock_exchange_rates } from './mocks/general/exchange_rates';
export { default as mock_payout_currencies } from './mocks/general/payout_currencies';
export { default as mock_time } from './mocks/general/time';
export { default as mock_website_status } from './mocks/general/website_status';
export { default as mock_residents_list } from './mocks/location/residents_list';
export { default as mock_states_list } from './mocks/location/states_list';
export { default as mock_general } from './mocks/general';
export { default as mock_loggedIn } from './mocks/auth';
export { default as mockAuthorize } from './mocks/auth/authorize';
export { default as mockBalanceAll } from './mocks/auth/balanceAll';
export { default as mockBlalanceOne } from './mocks/auth/balanceOne';
export { default as mockGetAccountStatus } from './mocks/auth/getAccountStatus';
export { default as mockGetFinancialAssessment } from './mocks/auth/getFinancialAssessment';
export { default as mockGetLimits } from './mocks/auth/getLimits';
export { default as mockGetSelfExclusion } from './mocks/auth/getSelfExclusion';
export { default as mockGetSettings } from './mocks/auth/getSettings';
export { default as mockLandingCompany } from './mocks/auth/landingCompany';
export { default as mockMt5LoginList } from './mocks/auth/mt5LoginList';
export { default as mockPaymentagentList } from './mocks/auth/paymentagentList';
export { default as mockPlatformDxtrade } from './mocks/auth/platformDxtrade';
export { default as mockPlatformMt5 } from './mocks/auth/platformMt5';
export { default as mockTradingPlatformAccounts } from './mocks/auth/tradingPlatformAccounts';
export { default as mockTradingPlatformAvailableAccounts } from './mocks/auth/tradingPlatformAvailableAccounts';
export { default as mockExchangeRates } from './mocks/general/exchangeRates';
export { default as mockPayoutCurrencies } from './mocks/general/payoutCurrencies';
export { default as mockTime } from './mocks/general/time';
export { default as mockWebsiteStatus } from './mocks/general/websiteStatus';
export { default as mockResidentsList } from './mocks/general/residentsList';
export { default as mockStatesList } from './mocks/general/statesList';
export { default as mockGeneral } from './mocks/general';
export { default as mockLoggedIn } from './mocks/auth';
export { default as setupMocks } from './utils/mocks/mocks';
export { assertField } from './utils/asserts/asserts';
export { DEFAULT_ACCOUNTS } from './mocks/auth/authorize';
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_account_security(context: Context) {
export default function mockAccountSecurity(context: Context) {
if ('account_security' in context.request && context.request.account_security === 1) {
context.response = {
echo_req: context.request,
Expand Down
43 changes: 41 additions & 2 deletions packages/integration/src/mocks/auth/authorize.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,45 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_authorize(context: Context) {
export const DEFAULT_ACCOUNTS = [
{
id: 'CR5712715',
account_category: 'trading',
account_type: 'binary',
created_at: 1688638657,
currency: 'USD',
is_disabled: 0,
is_virtual: 0,
landing_company_name: 'svg',
linked_to: [],
token: 'a1-x0000000000000000000000000001',
},
{
id: 'CR5712710',
account_category: 'trading',
account_type: 'binary',
created_at: 1688638635,
currency: 'BTC',
is_disabled: 0,
is_virtual: 0,
landing_company_name: 'svg',
linked_to: [],
token: 'a1-x0000000000000000000000000002',
},
{
id: 'VRTC8420051',
account_category: 'trading',
account_type: 'binary',
created_at: 1688638579,
currency: 'USD',
is_disabled: 0,
is_virtual: 1,
landing_company_name: 'virtual',
linked_to: [],
token: 'a1-x0000000000000000000000000003',
},
];

export default function mockAuthorize(context: Context) {
if ('authorize' in context.request) {
context.response = {
authorize: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_balance_all(context: Context) {
export default function mockBalanceAll(context: Context) {
if ('balance' in context.request && context.request.balance === 1 && context.request.account === 'all') {
context.response = {
balance: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_blalance_one(context: Context) {
export default function mockBalanceOne(context: Context) {
if ('balance' in context.request && context.request.balance === 1 && context.request.account === 'CR5712715') {
context.response = {
balance: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_get_account_status(context: Context) {
export default function mockGetAccountStatus(context: Context) {
if ('get_account_status' in context.request && context.request.get_account_status === 1) {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_get_financial_assessment(context: Context) {
export default function mockGetFinancialAssessment(context: Context) {
if ('get_financial_assessment' in context.request && context.request.get_financial_assessment === 1) {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_get_limits(context: Context) {
export default function mockGetLimits(context: Context) {
if ('get_limits' in context.request && context.request.get_limits === 1) {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_get_self_exclusion(context: Context) {
export default function mockGetSelfExclusion(context: Context) {
if ('get_self_exclusion' in context.request && context.request.get_self_exclusion === 1) {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_get_settings(context: Context) {
export default function mockGetSettings(context: Context) {
if ('get_settings' in context.request && context.request.get_settings === 1) {
context.response = {
echo_req: {
Expand Down
84 changes: 43 additions & 41 deletions packages/integration/src/mocks/auth/index.ts
Original file line number Diff line number Diff line change
@@ -1,46 +1,48 @@
import mock_account_security from './account_security';
import mock_authorize from './authorize';
import mock_balance_all from './balance_all';
import mock_balance_one from './balance_one';
import mock_get_account_status from './get_account_status';
import mock_get_financial_assessment from './get_financial_assessment';
import mock_get_limits from './get_limits';
import mock_get_self_exclusion from './get_self_exclusion';
import mock_get_settings from './get_settings';
import mock_landing_company from './landing_company';
import mock_mt5_login_list from './mt5_login_list';
import mock_p2p_advertiser_info from './p2p_advertiser_info';
import mock_p2p_order_list from './p2p_order_list';
import mock_paymentagent_list from './paymentagent_list';
import mock_platform_dxtrade from './platform_dxtrade';
import mock_platform_mt5 from './platform_mt5';
import mock_portfolio from './portfolio';
import mock_statement from './statement';
import mock_trading_platform_available_accounts from './trading_platform_available_accounts';
import mock_transaction from './transaction';
import { Context } from 'Utils/mocks/mocks';
import mockAccountSecurity from './accountSecurity';
import mockAuthorize from './authorize';
import mockBalanceAll from './balanceAll';
import mockBalanceOne from './balanceOne';
import mockGetAccountStatus from './getAccountStatus';
import mockGetFinancialAssessment from './getFinancialAssessment';
import mockGetLimits from './getLimits';
import mockGetSelfExclusion from './getSelfExclusion';
import mockGetSettings from './getSettings';
import mockLandingCompany from './landingCompany';
import mockMt5LoginList from './mt5LoginList';
import mockP2pAdvertiserInfo from './p2pAdvertiserInfo';
import mockP2pOrderList from './p2pOrderList';
import mockPaymentagentList from './paymentagentList';
import mockPlatformDxtrade from './platformDxtrade';
import mockPlatformMt5 from './platformMt5';
import mockPortfolio from './portfolio';
import mockStatement from './statement';
import mockTradingPlatformAccounts from './tradingPlatformAccounts';
import mockTradingPlatformAvailableAccounts from './tradingPlatformAvailableAccounts';
import mockTransaction from './transaction';
import { Context } from '../../utils/mocks/mocks';

const loggedIn = async (context: Context) => {
mock_account_security(context);
mock_authorize(context);
mock_balance_all(context);
mock_balance_one(context);
mock_get_account_status(context);
mock_get_financial_assessment(context);
mock_get_limits(context);
mock_get_self_exclusion(context);
mock_get_settings(context);
mock_landing_company(context);
mock_mt5_login_list(context);
mock_p2p_advertiser_info(context);
mock_p2p_order_list(context);
mock_paymentagent_list(context);
mock_platform_dxtrade(context);
mock_platform_mt5(context);
mock_portfolio(context);
mock_statement(context);
mock_trading_platform_available_accounts(context);
mock_transaction(context);
mockAccountSecurity(context);
mockAuthorize(context);
mockBalanceAll(context);
mockBalanceOne(context);
mockGetAccountStatus(context);
mockGetFinancialAssessment(context);
mockGetLimits(context);
mockGetSelfExclusion(context);
mockGetSettings(context);
mockLandingCompany(context);
mockMt5LoginList(context);
mockP2pAdvertiserInfo(context);
mockP2pOrderList(context);
mockPaymentagentList(context);
mockPlatformDxtrade(context);
mockPlatformMt5(context);
mockPortfolio(context);
mockStatement(context);
mockTradingPlatformAccounts(context);
mockTradingPlatformAvailableAccounts(context);
mockTransaction(context);
};

export default loggedIn;
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_landing_company(context: Context) {
export default function mockLandingCompany(context: Context) {
if ('landing_company' in context.request) {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_mt5_login_list(context: Context) {
export default function mockMt5LoginList(context: Context) {
if ('mt5_login_list' in context.request && context.request.mt5_login_list === 1) {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_p2p_advertiser_info(context: Context) {
export default function mockP2pAdvertiserInfo(context: Context) {
if ('p2p_advertiser_info' in context.request && context.request.p2p_advertiser_info === 1) {
context.response = {
echo_req: context.request,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_p2p_order_list(context: Context) {
export default function mockP2pOrderList(context: Context) {
if ('p2p_order_list' in context.request && context.request.p2p_order_list === 1) {
context.response = {
echo_req: context.request,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_paymentagent_list(context: Context) {
export default function mockPaymentagentList(context: Context) {
if (
'paymentagent_list' in context.request &&
context.request.paymentagent_list === 'th' &&
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_platform_dxtrade(context: Context) {
export default function mockPlatformDxtrade(context: Context) {
if ('platform' in context.request && context.request.platform === 'dxtrade') {
context.response = {
echo_req: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from 'Utils/mocks/mocks';
import { Context } from '../../utils/mocks/mocks';

export default function mock_platform_mt5(context: Context) {
export default function mockPlatformMt5(context: Context) {
if ('platform' in context.request && context.request.platform === 'mt5') {
context.response = {
echo_req: {
Expand Down
Loading

0 comments on commit 4be4ccb

Please sign in to comment.