Skip to content

Commit 590140e

Browse files
authored
Merge pull request Expensify#85591 from Expensify/amy-mock-bank-fixes
Improve Mock Bank testing utility
2 parents d2b3f35 + fb749c5 commit 590140e

4 files changed

Lines changed: 14 additions & 12 deletions

File tree

src/libs/actions/Card.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,8 +378,8 @@ function syncCard(cardID: number, lastScrapeResult?: number, breakConnection?: b
378378
};
379379

380380
if (breakConnection) {
381-
// Simulate "Account not found" error code for testing
382-
parameters.breakConnection = 434;
381+
// Simulate "Account refresh required" error code for testing
382+
parameters.breakConnection = 438;
383383
}
384384

385385
API.write(WRITE_COMMANDS.SYNC_CARD, parameters, {optimisticData, finallyData, failureData});

src/libs/actions/CompanyCards.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -585,8 +585,8 @@ function updateWorkspaceCompanyCard(domainOrWorkspaceAccountID: number, cardID:
585585
};
586586

587587
if (breakConnection) {
588-
// Simulate "Account not found" error code for testing
589-
parameters.breakConnection = 434;
588+
// Simulate "Account refresh required" error code for testing
589+
parameters.breakConnection = 438;
590590
}
591591

592592
API.write(WRITE_COMMANDS.SYNC_CARD, parameters, {optimisticData, finallyData, failureData});

src/pages/settings/Wallet/PersonalCardDetailsPage.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import useNetwork from '@hooks/useNetwork';
1616
import useOnyx from '@hooks/useOnyx';
1717
import useThemeIllustrations from '@hooks/useThemeIllustrations';
1818
import useThemeStyles from '@hooks/useThemeStyles';
19+
import {isUsingStagingApi} from '@libs/ApiUtils';
1920
import {getCardFeedIcon, isCardConnectionBroken, isPersonalCard} from '@libs/CardUtils';
2021
import {getLatestErrorField} from '@libs/ErrorUtils';
2122
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
@@ -40,7 +41,7 @@ type PersonalCardDetailsPageProps = PlatformStackScreenProps<SettingsNavigatorPa
4041
function PersonalCardDetailsPage({route}: PersonalCardDetailsPageProps) {
4142
const {cardID} = route.params;
4243
const [customCardNames] = useOnyx(ONYXKEYS.NVP_EXPENSIFY_COMPANY_CARDS_CUSTOM_NAMES);
43-
const [shouldUseStagingServer] = useOnyx(ONYXKEYS.SHOULD_USE_STAGING_SERVER);
44+
const [shouldUseStagingServer = isUsingStagingApi()] = useOnyx(ONYXKEYS.SHOULD_USE_STAGING_SERVER);
4445
const [isUnassignModalVisible, setIsUnassignModalVisible] = useState(false);
4546
const {translate, getLocalDateFromDatetime} = useLocalize();
4647
const styles = useThemeStyles();
@@ -86,10 +87,10 @@ function PersonalCardDetailsPage({route}: PersonalCardDetailsPageProps) {
8687
syncCard(card.cardID, card.lastScrapeResult, true);
8788
};
8889

89-
// Show "Break connection" option only for Mock Bank cards when the backend API is non-production
90+
// Show "Break connection" only when Mock Bank requests target non-production APIs.
9091
const isMockBank = cardBank.includes(CONST.COMPANY_CARDS.BANK_CONNECTIONS.MOCK_BANK);
91-
const isNonProductionBackend = CONFIG.EXPENSIFY.EXPENSIFY_URL.includes('.dev') || CONFIG.EXPENSIFY.EXPENSIFY_URL.includes('staging') || !!shouldUseStagingServer;
92-
const shouldShowBreakConnection = isMockBank && isNonProductionBackend;
92+
const isUsingNonProductionAPI = shouldUseStagingServer || CONFIG.IS_USING_LOCAL_WEB;
93+
const shouldShowBreakConnection = isMockBank && isUsingNonProductionAPI;
9394

9495
const lastScrape = card?.lastScrape
9596
? format(getLocalDateFromDatetime(card.lastScrape), CONST.DATE.FNS_DATE_TIME_FORMAT_STRING)

src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import usePolicy from '@hooks/usePolicy';
2323
import useStyleUtils from '@hooks/useStyleUtils';
2424
import useThemeIllustrations from '@hooks/useThemeIllustrations';
2525
import useThemeStyles from '@hooks/useThemeStyles';
26+
import {isUsingStagingApi} from '@libs/ApiUtils';
2627
import {getCardFeedIcon, getCompanyCardFeed, getCompanyFeeds, getDefaultCardName, getDomainOrWorkspaceAccountID, getPlaidInstitutionIconUrl, maskCardNumber} from '@libs/CardUtils';
2728
import {getLatestErrorField} from '@libs/ErrorUtils';
2829
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
@@ -53,7 +54,7 @@ function WorkspaceCompanyCardDetailsPage({route}: WorkspaceCompanyCardDetailsPag
5354
const bank = getCompanyCardFeed(feedName);
5455
const [connectionSyncProgress] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CONNECTION_SYNC_PROGRESS}${policyID}`);
5556
const [customCardNames] = useOnyx(ONYXKEYS.NVP_EXPENSIFY_COMPANY_CARDS_CUSTOM_NAMES);
56-
const [shouldUseStagingServer] = useOnyx(ONYXKEYS.SHOULD_USE_STAGING_SERVER);
57+
const [shouldUseStagingServer = isUsingStagingApi()] = useOnyx(ONYXKEYS.SHOULD_USE_STAGING_SERVER);
5758
const policy = usePolicy(policyID);
5859
const workspaceAccountID = policy?.workspaceAccountID ?? CONST.DEFAULT_NUMBER_ID;
5960
const [isUnassignModalVisible, setIsUnassignModalVisible] = useState(false);
@@ -109,10 +110,10 @@ function WorkspaceCompanyCardDetailsPage({route}: WorkspaceCompanyCardDetailsPag
109110
updateWorkspaceCompanyCard(domainOrWorkspaceAccountID, cardID, bank, card?.lastScrapeResult, true);
110111
};
111112

112-
// Show "Break connection" option only for Mock Bank cards when the backend API is non-production
113+
// Show "Break connection" only when Mock Bank requests target non-production APIs.
113114
const isMockBank = bank?.includes(CONST.COMPANY_CARDS.BANK_CONNECTIONS.MOCK_BANK);
114-
const isNonProductionBackend = CONFIG.EXPENSIFY.EXPENSIFY_URL.includes('.dev') || CONFIG.EXPENSIFY.EXPENSIFY_URL.includes('staging') || !!shouldUseStagingServer;
115-
const shouldShowBreakConnection = isMockBank && isNonProductionBackend;
115+
const isUsingNonProductionAPI = shouldUseStagingServer || CONFIG.IS_USING_LOCAL_WEB;
116+
const shouldShowBreakConnection = isMockBank && isUsingNonProductionAPI;
116117

117118
const lastScrape = useMemo(() => {
118119
if (!card?.lastScrape) {

0 commit comments

Comments
 (0)