Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion config/eslint/eslint.seatbelt.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -977,7 +977,8 @@
"../../src/pages/TransactionMerge/MergeTransactionItem.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1
"../../src/pages/TransactionMerge/MergeTransactionsListContent.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1
"../../src/pages/Travel/DynamicTravelUpgrade.tsx" "no-restricted-imports" 1
"../../src/pages/Travel/WorkspaceConfirmationForTravelPage.tsx" "@typescript-eslint/no-unsafe-type-assertion" 2
"../../src/pages/Travel/DynamicWorkspaceConfirmationForTravelPage.tsx" "@typescript-eslint/no-unsafe-type-assertion" 2
"../../src/pages/Travel/DynamicTravelUpgrade.tsx" "react-hooks/set-state-in-effect" 1
"../../src/pages/TripChatNameEditPage.tsx" "@typescript-eslint/no-deprecated/deprecatedGetReportName" 1
"../../src/pages/UnreportedExpenseListItem.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1
"../../src/pages/ValidateLoginPage/index.web.tsx" "react-hooks/set-state-in-effect" 1
Expand Down
26 changes: 13 additions & 13 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,15 @@ const DYNAMIC_ROUTES = {
},
WORKSPACE_CONFIRMATION_CURRENCY: {
path: 'currency',
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE],
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE],
},
WORKSPACE_CONFIRMATION_PLAN_TYPE: {
path: 'plan-type',
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE],
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE],
},
TRAVEL_WORKSPACE_CONFIRMATION: {
path: 'workspace-confirmation',
entryScreens: [SCREENS.TRAVEL.DYNAMIC_UPGRADE],
},
MIGRATED_USER_WELCOME: {
path: 'migrated-user-welcome',
Expand Down Expand Up @@ -477,7 +481,7 @@ const DYNAMIC_ROUTES = {
SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT,
SCREENS.WORKSPACE_CONFIRMATION.OWNER_SELECTOR,
SCREENS.WORKSPACE_DUPLICATE.ROOT,
SCREENS.TRAVEL.WORKSPACE_CONFIRMATION,
SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION,
SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE,
SCREENS.REPORT_DETAILS.DYNAMIC_ROOT,
],
Expand Down Expand Up @@ -1290,6 +1294,12 @@ const DYNAMIC_ROUTES = {
path: 'travel-upgrade',
entryScreens: [SCREENS.TRAVEL.MY_TRIPS, SCREENS.WORKSPACE.TRAVEL, SCREENS.SEARCH.ROOT],
},
TRAVEL_VERIFY_ACCOUNT: {
path: 'travel-verify-account',
entryScreens: [SCREENS.TRAVEL.MY_TRIPS, SCREENS.WORKSPACE.TRAVEL, SCREENS.SEARCH.ROOT, SCREENS.TRAVEL.ENABLE],
getRoute: (policyID?: string) => getUrlWithParams('travel-verify-account', {policyID}),
queryParams: ['policyID'],
},
REPORT_CHANGE_APPROVER: {
path: 'change-approver',
entryScreens: [SCREENS.REPORT, SCREENS.RIGHT_MODAL.SEARCH_REPORT, SCREENS.RIGHT_MODAL.EXPENSE_REPORT, SCREENS.RIGHT_MODAL.SEARCH_MONEY_REQUEST_REPORT],
Expand Down Expand Up @@ -3919,16 +3929,6 @@ const ROUTES = {
return getUrlWithBackToParam(`r/${reportID}/trip/${transactionID}/${pnr}/${sequenceIndex}`, backTo);
},
},
TRAVEL_WORKSPACE_CONFIRMATION: {
route: 'travel/upgrade/workspace/confirmation',

getRoute: (backTo?: string) => getUrlWithBackToParam(`travel/upgrade/workspace/confirmation`, backTo),
},
TRAVEL_VERIFY_ACCOUNT: {
route: `travel/${VERIFY_ACCOUNT}`,

getRoute: (domain?: string, policyID?: string, backTo?: string) => getUrlWithBackToParam(getUrlWithParams(`travel/${VERIFY_ACCOUNT}`, {domain, policyID}), backTo),
},
TRAVEL_ENABLE: {
route: 'travel/enable/:policyID/:subPage?/:action?',
getRoute: (policyID: string, subPage?: string, action?: 'edit') => {
Expand Down
4 changes: 2 additions & 2 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ const SCREENS = {
TRIP_SUMMARY: 'Travel_TripSummary',
TRIP_DETAILS: 'Travel_TripDetails',
DYNAMIC_PUBLIC_DOMAIN_ERROR: 'Dynamic_Travel_PublicDomainError',
WORKSPACE_CONFIRMATION: 'Travel_WorkspaceConfirmation',
DYNAMIC_WORKSPACE_CONFIRMATION: 'Dynamic_Travel_WorkspaceConfirmation',
TRAVEL_DOT_LINK_WEB_VIEW: 'Travel_DotLinkWebView',
VERIFY_ACCOUNT: 'Travel_VerifyAccount',
DYNAMIC_VERIFY_ACCOUNT: 'Dynamic_Travel_VerifyAccount',
ENABLE: 'Travel_Enable',
MISSING_PERSONAL_DETAILS_CONFIRM_VALIDATE_CODE: 'Travel_MissingPersonalDetails_ConfirmValidateCode',
},
Expand Down
4 changes: 2 additions & 2 deletions src/components/BookTravelButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ function BookTravelButton({
// Legacy request-access path for not-yet-provisioned workspaces when the self-serve provisioning beta is off.
if (!isPolicyProvisioned && !isBetaEnabled(CONST.BETAS.IS_TRAVEL_VERIFIED)) {
if (!isUserValidated) {
Navigation.navigate(ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(undefined, activePolicyID, Navigation.getActiveRoute()));
Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(activePolicyID)));
return;
}
if (shouldShowVerifyAccountModal) {
Expand Down Expand Up @@ -198,7 +198,7 @@ function BookTravelButton({
// replaced with the verify URL a render later.
if (!isUserValidated) {
setTravelProvisioningNextStep(enableTravelRoute);
Navigation.navigate(ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(undefined, activePolicyID, Navigation.getActiveRoute()));
Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(activePolicyID)));
return;
}
Navigation.navigate(enableTravelRoute);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const OPTIONS_PER_SCREEN: Partial<Record<Screen, PlatformStackNavigationOptions>
[SCREENS.SEARCH.TRANSACTIONS_CHANGE_REPORT_SEARCH_RHP]: {
animation: Animations.NONE,
},
[SCREENS.TRAVEL.VERIFY_ACCOUNT]: {
[SCREENS.TRAVEL.DYNAMIC_VERIFY_ACCOUNT]: {
animationTypeForReplace: 'push',
},
[SCREENS.MULTIFACTOR_AUTHENTICATION.REVOKE]: {
Expand Down Expand Up @@ -239,8 +239,8 @@ const TravelModalStackNavigator = createModalStackNavigator<TravelNavigatorParam
[SCREENS.TRAVEL.TRIP_DETAILS]: () => require<ReactComponentModule>('../../../../pages/Travel/TripDetailsPage').default,
[SCREENS.TRAVEL.DYNAMIC_DOMAIN_PERMISSION_INFO]: () => require<ReactComponentModule>('../../../../pages/Travel/DynamicDomainPermissionInfoPage').default,
[SCREENS.TRAVEL.DYNAMIC_PUBLIC_DOMAIN_ERROR]: () => require<ReactComponentModule>('../../../../pages/Travel/DynamicPublicDomainErrorPage').default,
[SCREENS.TRAVEL.WORKSPACE_CONFIRMATION]: () => require<ReactComponentModule>('../../../../pages/Travel/WorkspaceConfirmationForTravelPage').default,
[SCREENS.TRAVEL.VERIFY_ACCOUNT]: () => require<ReactComponentModule>('../../../../pages/Travel/VerifyAccountPage').default,
[SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION]: () => require<ReactComponentModule>('../../../../pages/Travel/DynamicWorkspaceConfirmationForTravelPage').default,
[SCREENS.TRAVEL.DYNAMIC_VERIFY_ACCOUNT]: () => require<ReactComponentModule>('../../../../pages/Travel/DynamicVerifyAccountPage').default,
[SCREENS.TRAVEL.ENABLE]: () => require<ReactComponentModule>('../../../../pages/Travel/EnableTravel').default,
});

Expand Down
2 changes: 2 additions & 0 deletions src/libs/Navigation/linkingConfig/OldRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ const oldRoutes: Record<string, string> = {
'/workspaces/$1/accounting/quickbooks-online/advanced/quickbooks-online-autosync/quickbooks-online-accounting-method',
'/workspaces/*/connections/quickbooks-online/advanced/autosync': '/workspaces/$1/accounting/quickbooks-online/advanced/quickbooks-online-autosync',
'/travel/upgrade': '/travel/travel-upgrade',
'/travel/upgrade/workspace/confirmation': '/travel/travel-upgrade/workspace-confirmation',
'/travel/verify-account': '/travel/travel-verify-account',
'/workspaces/*/accounting/quickbooks-desktop/export/company-card-expense-account': '/workspaces/$1/accounting/quickbooks-desktop/export/qbd-company-card-expense-account',
'/workspaces/*/accounting/quickbooks-desktop/export/company-card-expense-account-select': '/workspaces/$1/accounting/quickbooks-desktop/export/qbd-company-card-expense-account-select',
'/workspaces/*/accounting/quickbooks-desktop/export/company-card-expense-account/account-select':
Expand Down
4 changes: 2 additions & 2 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1937,8 +1937,8 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
},
[SCREENS.TRAVEL.DYNAMIC_DOMAIN_PERMISSION_INFO]: DYNAMIC_ROUTES.TRAVEL_DOMAIN_PERMISSION_INFO.path,
[SCREENS.TRAVEL.DYNAMIC_PUBLIC_DOMAIN_ERROR]: DYNAMIC_ROUTES.TRAVEL_PUBLIC_DOMAIN_ERROR.path,
[SCREENS.TRAVEL.WORKSPACE_CONFIRMATION]: ROUTES.TRAVEL_WORKSPACE_CONFIRMATION.route,
[SCREENS.TRAVEL.VERIFY_ACCOUNT]: ROUTES.TRAVEL_VERIFY_ACCOUNT.route,
[SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION]: DYNAMIC_ROUTES.TRAVEL_WORKSPACE_CONFIRMATION.path,
[SCREENS.TRAVEL.DYNAMIC_VERIFY_ACCOUNT]: DYNAMIC_ROUTES.TRAVEL_VERIFY_ACCOUNT.path,
[SCREENS.TRAVEL.ENABLE]: {path: ROUTES.TRAVEL_ENABLE.route, exact: true},
},
},
Expand Down
10 changes: 2 additions & 8 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2780,19 +2780,13 @@ type TravelNavigatorParamList = {
domain: string;
policyID?: string;
};
[SCREENS.TRAVEL.WORKSPACE_CONFIRMATION]: {
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
backTo?: Routes;
};
[SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION]: undefined;
[SCREENS.TRAVEL.DYNAMIC_PUBLIC_DOMAIN_ERROR]: {
policyID?: string;
};
[SCREENS.TRAVEL.DYNAMIC_UPGRADE]: undefined;
[SCREENS.TRAVEL.VERIFY_ACCOUNT]: {
domain?: string;
[SCREENS.TRAVEL.DYNAMIC_VERIFY_ACCOUNT]: {
policyID?: string;
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
backTo?: Routes;
};
[SCREENS.TRAVEL.ENABLE]: {policyID: string; subPage?: string; action?: 'edit'};
};
Expand Down
5 changes: 3 additions & 2 deletions src/pages/Travel/DynamicTravelUpgrade.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import useNetwork from '@hooks/useNetwork';
import useOnyx from '@hooks/useOnyx';
import useThemeStyles from '@hooks/useThemeStyles';

import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
import Navigation from '@libs/Navigation/Navigation';
import {getActivePolicies, isPaidGroupPolicy} from '@libs/PolicyUtils';

Expand All @@ -17,7 +18,7 @@ import UpgradeIntro from '@pages/workspace/upgrade/UpgradeIntro';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
import {DYNAMIC_ROUTES} from '@src/ROUTES';

import React from 'react';

Expand All @@ -34,7 +35,7 @@ function DynamicTravelUpgrade() {
const isUpgraded = groupPaidPolicies.length > 0;

const openWorkspaceConfirmation = () => {
Navigation.navigate(ROUTES.TRAVEL_WORKSPACE_CONFIRMATION.getRoute(Navigation.getActiveRoute()));
Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.TRAVEL_WORKSPACE_CONFIRMATION.path));
};

return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import useDynamicBackPath from '@hooks/useDynamicBackPath';
import useOnyx from '@hooks/useOnyx';
import usePermissions from '@hooks/usePermissions';

Expand All @@ -10,16 +11,18 @@ import VerifyAccountPageBase from '@pages/settings/VerifyAccountPageBase';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import {DYNAMIC_ROUTES} from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';

import type {StackScreenProps} from '@react-navigation/stack';

import React, {useCallback, useEffect} from 'react';

type VerifyAccountPageProps = StackScreenProps<TravelNavigatorParamList, typeof SCREENS.TRAVEL.VERIFY_ACCOUNT>;
type DynamicVerifyAccountPageProps = StackScreenProps<TravelNavigatorParamList, typeof SCREENS.TRAVEL.DYNAMIC_VERIFY_ACCOUNT>;

function VerifyAccountPage({route}: VerifyAccountPageProps) {
const {backTo, policyID} = route.params;
function DynamicVerifyAccountPage({route}: DynamicVerifyAccountPageProps) {
const {policyID} = route.params ?? {};
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.TRAVEL_VERIFY_ACCOUNT.path);
const [travelProvisioning] = useOnyx(ONYXKEYS.TRAVEL_PROVISIONING);
const {isBetaEnabled} = usePermissions();

Expand All @@ -40,17 +43,17 @@ function VerifyAccountPage({route}: VerifyAccountPageProps) {
}, []);

const handleClose = useCallback(() => {
Navigation.goBack(backTo);
}, [backTo]);
Navigation.goBack(backPath);
}, [backPath]);

return (
<VerifyAccountPageBase
navigateBackTo={backTo}
navigateBackTo={backPath}
navigateForwardTo={navigateForwardTo}
handleClose={!isTravelVerifiedBetaEnabled ? handleClose : undefined}
onValidationSuccess={!isTravelVerifiedBetaEnabled ? handleValidationSuccess : undefined}
/>
);
}

export default VerifyAccountPage;
export default DynamicVerifyAccountPage;
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,21 @@ import type {WorkspaceConfirmationSubmitFunctionParams} from '@components/Worksp

import useActivePolicy from '@hooks/useActivePolicy';
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
import useDynamicBackPath from '@hooks/useDynamicBackPath';
import useHasActiveAdminPolicies from '@hooks/useHasActiveAdminPolicies';
import useOnyx from '@hooks/useOnyx';

import {createDraftWorkspace, createWorkspace} from '@libs/actions/Policy/Policy';
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
import Navigation from '@libs/Navigation/Navigation';
import type {TravelNavigatorParamList} from '@libs/Navigation/types';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';

import type {StackScreenProps} from '@react-navigation/stack';
import {DYNAMIC_ROUTES} from '@src/ROUTES';

import {hasSeenTourSelector} from '@selectors/Onboarding';
import React from 'react';

type WorkspaceConfirmationForTravelPageProps = StackScreenProps<TravelNavigatorParamList, typeof SCREENS.TRAVEL.WORKSPACE_CONFIRMATION>;

function WorkspaceConfirmationForTravelPage({route}: WorkspaceConfirmationForTravelPageProps) {
function DynamicWorkspaceConfirmationForTravelPage() {
const [introSelected] = useOnyx(ONYXKEYS.NVP_INTRO_SELECTED);
const [betas] = useOnyx(ONYXKEYS.BETAS);
const [isSelfTourViewed] = useOnyx(ONYXKEYS.NVP_ONBOARDING, {selector: hasSeenTourSelector});
Expand All @@ -34,9 +28,10 @@ function WorkspaceConfirmationForTravelPage({route}: WorkspaceConfirmationForTra
const activePolicy = useActivePolicy();
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
const hasActiveAdminPolicies = useHasActiveAdminPolicies();
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.TRAVEL_WORKSPACE_CONFIRMATION.path);

const goBack = () => {
Navigation.goBack(route.params?.backTo ?? createDynamicRoute(DYNAMIC_ROUTES.TRAVEL_UPGRADE.path, ROUTES.TRAVEL_MY_TRIPS.route));
Navigation.goBack(backPath);
};

const onSubmit = (params: WorkspaceConfirmationSubmitFunctionParams) => {
Expand Down Expand Up @@ -70,7 +65,7 @@ function WorkspaceConfirmationForTravelPage({route}: WorkspaceConfirmationForTra
return (
<ScreenWrapper
enableEdgeToEdgeBottomSafeAreaPadding
testID="WorkspaceConfirmationForTravelPage"
testID="DynamicWorkspaceConfirmationForTravelPage"
>
<WorkspaceConfirmationForm
onBackButtonPress={goBack}
Expand All @@ -80,4 +75,4 @@ function WorkspaceConfirmationForTravelPage({route}: WorkspaceConfirmationForTra
);
}

export default WorkspaceConfirmationForTravelPage;
export default DynamicWorkspaceConfirmationForTravelPage;
5 changes: 3 additions & 2 deletions src/pages/Travel/EnableTravel/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import useOnyx from '@hooks/useOnyx';
import usePolicy from '@hooks/usePolicy';

import {setTravelProvisioningNextStep} from '@libs/actions/Travel';
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
import Navigation from '@libs/Navigation/Navigation';
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
import type {TravelNavigatorParamList} from '@libs/Navigation/types';

import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';

import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';
import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';

Expand Down Expand Up @@ -48,7 +49,7 @@ function EnableTravel({route}: EnableTravelProps) {
return;
}
setTravelProvisioningNextStep(ROUTES.TRAVEL_ENABLE.getRoute(policyID));
Navigation.navigate(ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(undefined, policyID), {forceReplace: true});
Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(policyID)), {forceReplace: true});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid returning to the guarded enable route

When this redirect runs from EnableTravel for an unvalidated user, createDynamicRoute() uses the current /travel/enable/:policyID URL as the dynamic route base. DynamicVerifyAccountPage then derives navigateBackTo from that base, so dismissing the validation page navigates back to EnableTravel, whose effect immediately redirects to verify-account again. The previous static verify route with forceReplace did not set the enable stepper as the close target, so users can now get stuck in the verify screen unless they complete validation.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't reproduce this case. @suneox, can you reproduce it?

}, [isUserValidated, accountMetadata, policyID]);

if (isLoadingOnyxValue(privatePersonalDetailsMetadata, accountMetadata) || !isUserValidated || (isMidFlowMount && isLoadingOnyxValue(travelProvisioningMetadata))) {
Expand Down
10 changes: 10 additions & 0 deletions tests/navigation/getMatchingNewRouteTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,16 @@ describe('getBestMatchingPath', () => {
expect(getMatchingNewRoute('/travel/upgrade?backTo=/home')).toBe('/travel/travel-upgrade?backTo=/home');
});

it('redirects old travel workspace confirmation path to dynamic route', () => {
expect(getMatchingNewRoute('/travel/upgrade/workspace/confirmation')).toBe('/travel/travel-upgrade/workspace-confirmation');
expect(getMatchingNewRoute('/travel/upgrade/workspace/confirmation?backTo=/home')).toBe('/travel/travel-upgrade/workspace-confirmation?backTo=/home');
});

it('redirects old travel verify account path to dynamic route', () => {
expect(getMatchingNewRoute('/travel/verify-account')).toBe('/travel/travel-verify-account');
expect(getMatchingNewRoute('/travel/verify-account?policyID=123')).toBe('/travel/travel-verify-account?policyID=123');
});

it('redirects legacy new task flat routes to the new nested dynamic routes', () => {
expect(getMatchingNewRoute('/new/task/details')).toBe('/task-details');
expect(getMatchingNewRoute('/new/task')).toBe('/task-details/task-confirm');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ describe('WORKSPACE_CONFIRMATION_CURRENCY', () => {

it('allows opening the currency selector from every screen that hosts the confirm workspace form', () => {
expect(currencyEntryScreens).toEqual(
expect.arrayContaining([SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE]),
expect.arrayContaining([SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.DYNAMIC_WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE]),
);
});

Expand Down
Loading
Loading