Skip to content

Commit e339c0b

Browse files
committed
Merge branch 'main' into fix/66415-part-8
2 parents 7339a52 + cb7d3f8 commit e339c0b

283 files changed

Lines changed: 7470 additions & 4166 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
key: ${{ runner.os }}-jest
4040

4141
- name: Jest tests
42-
run: npm test -- --silent --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --maxWorkers=2 --coverage --coverageDirectory=coverage/shard-${{ matrix.chunk }}
42+
run: npm test -- --silent --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --maxWorkers=6 --coverage --coverageDirectory=coverage/shard-${{ matrix.chunk }}
4343

4444
- name: Upload coverage to Codecov (PRs - tokenless)
4545
if: ${{ github.event_name == 'pull_request' }}

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009038901
115-
versionName "9.3.89-1"
114+
versionCode 1009038905
115+
versionName "9.3.89-5"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"

assets/images/illustration-laptop-members.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/images/laptop-on-desk-with-coffee-and-key.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 1 addition & 0 deletions
Loading

config/eslint/eslint.seatbelt.tsv

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"../../src/Expensify.tsx" "react-hooks/set-state-in-effect" 1
1919
"../../src/GlobalModals.tsx" "no-restricted-syntax" 2
2020
"../../src/ONYXKEYS.ts" "no-restricted-syntax" 2
21-
"../../src/ROUTES.ts" "@typescript-eslint/no-deprecated/getUrlWithBackToParam" 153
21+
"../../src/ROUTES.ts" "@typescript-eslint/no-deprecated/getUrlWithBackToParam" 152
2222
"../../src/components/AccountingConnectionConfirmationModal.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
2323
"../../src/components/ActionSheetAwareScrollView/useActionSheetAwareScrollViewRef.ts" "react-hooks/immutability" 1
2424
"../../src/components/ActionSheetAwareScrollView/useActionSheetKeyboardSpacing.ts" "@typescript-eslint/no-deprecated/useScrollViewOffset" 1
@@ -123,6 +123,7 @@
123123
"../../src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 3
124124
"../../src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx" "react-hooks/refs" 6
125125
"../../src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx" "react-hooks/set-state-in-effect" 3
126+
"../../src/components/MoneyRequestReportView/MoneyRequestReportView.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
126127
"../../src/components/MultiGestureCanvas/index.tsx" "no-restricted-syntax" 1
127128
"../../src/components/MultiGestureCanvas/index.tsx" "react-hooks/preserve-manual-memoization" 1
128129
"../../src/components/MultiGestureCanvas/index.tsx" "react-hooks/refs" 2
@@ -208,7 +209,7 @@
208209
"../../src/hooks/useDialogContainerFocus/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
209210
"../../src/hooks/useDomainGroupFilter.ts" "react-hooks/set-state-in-effect" 1
210211
"../../src/hooks/useDragAndDrop/types.ts" "@typescript-eslint/no-deprecated/React.MutableRefObject" 1
211-
"../../src/hooks/useExpenseActions.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
212+
"../../src/hooks/useExpenseActions.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 3
212213
"../../src/hooks/useFilesValidation.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
213214
"../../src/hooks/useInitial.ts" "react-hooks/refs" 4
214215
"../../src/hooks/useIsBlockedToAddFeed.ts" "react-hooks/set-state-in-effect" 1
@@ -386,19 +387,20 @@
386387
"../../src/libs/actions/ReimbursementAccount/resetNonUSDBankAccount.ts" "no-restricted-syntax" 1
387388
"../../src/libs/actions/ReimbursementAccount/resetUSDBankAccount.ts" "no-restricted-syntax" 1
388389
"../../src/libs/actions/Report/MarkAllMessageAsRead.tsx" "no-restricted-syntax" 1
389-
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
390+
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
390391
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/buildNextStepNew" 3
391392
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/reportAction.originalMessage" 1
392393
"../../src/libs/actions/Report/index.ts" "no-restricted-syntax" 10
393394
"../../src/libs/actions/Report/index.ts" "rulesdir/no-onyx-connect" 4
394395
"../../src/libs/actions/ReportLayout.ts" "no-restricted-syntax" 1
395396
"../../src/libs/actions/ScheduleCall.ts" "no-restricted-syntax" 1
396397
"../../src/libs/actions/Search.ts" "no-restricted-syntax" 1
397-
"../../src/libs/actions/Session/index.ts" "no-restricted-imports" 1
398+
"../../src/libs/actions/Session/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
398399
"../../src/libs/actions/Session/index.ts" "no-restricted-syntax" 9
399400
"../../src/libs/actions/Session/index.ts" "rulesdir/no-onyx-connect" 2
400401
"../../src/libs/actions/StatsCounter.ts" "no-restricted-syntax" 2
401402
"../../src/libs/actions/Subscription.ts" "no-restricted-syntax" 1
403+
"../../src/libs/actions/Task.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
402404
"../../src/libs/actions/Task.ts" "no-restricted-syntax" 7
403405
"../../src/libs/actions/TaxRate.ts" "no-restricted-syntax" 1
404406
"../../src/libs/actions/TeachersUnite.ts" "no-restricted-syntax" 1
@@ -464,7 +466,7 @@
464466
"../../src/pages/RoomMembersPage.tsx" "react-hooks/set-state-in-effect" 1
465467
"../../src/pages/ScheduleCall/ScheduleCallPage.tsx" "react-hooks/preserve-manual-memoization" 1
466468
"../../src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCardPage.tsx" "react-hooks/set-state-in-effect" 1
467-
"../../src/pages/Search/SearchMoneyRequestReportPage.tsx" "no-restricted-imports" 1
469+
"../../src/pages/Search/SearchMoneyRequestReportPage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
468470
"../../src/pages/Search/SearchPage.tsx" "react-hooks/set-state-in-effect" 1
469471
"../../src/pages/Search/SearchTransactionsChangeReport.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
470472
"../../src/pages/Share/ShareRootPage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
@@ -473,12 +475,13 @@
473475
"../../src/pages/ValidateLoginPage/index.web.tsx" "react-hooks/set-state-in-effect" 1
474476
"../../src/pages/domain/Groups/PreferredWorkspaceToggle.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
475477
"../../src/pages/domain/Saml/SamlLoginSectionContent.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
476-
"../../src/pages/inbox/DeleteTransactionNavigateBackHandler.tsx" "no-restricted-imports" 1
478+
"../../src/pages/inbox/DeleteTransactionNavigateBackHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
477479
"../../src/pages/inbox/ReportFetchHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
478480
"../../src/pages/inbox/ReportNavigateAwayHandler.tsx" "react-hooks/exhaustive-deps" 1
479481
"../../src/pages/inbox/hooks/useDeferNonEssentials.ts" "no-restricted-imports" 2
480482
"../../src/pages/inbox/hooks/useFlushDeferredWriteOnFocus.ts" "no-restricted-imports" 1
481483
"../../src/pages/inbox/hooks/useReportWasDeleted.ts" "react-hooks/set-state-in-effect" 1
484+
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
482485
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "react-hooks/preserve-manual-memoization" 1
483486
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "react-hooks/refs" 1
484487
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
@@ -495,7 +498,7 @@
495498
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/preserve-manual-memoization" 1
496499
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/refs" 5
497500
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/set-state-in-effect" 1
498-
"../../src/pages/inbox/report/ReportActionsList.tsx" "no-restricted-imports" 1
501+
"../../src/pages/inbox/report/ReportActionsList.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 4
499502
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/refs" 5
500503
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/set-state-in-effect" 3
501504
"../../src/pages/inbox/report/TripSummary.tsx" "rulesdir/no-default-id-values" 1
@@ -622,8 +625,9 @@
622625
"../../src/pages/workspace/categories/WorkspaceCategoriesPage.tsx" "react-hooks/set-state-in-effect" 2
623626
"../../src/pages/workspace/companyCards/BankConnection/index.tsx" "react-hooks/set-state-in-effect" 1
624627
"../../src/pages/workspace/companyCards/WorkspaceVerifyWorkAccountPage.tsx" "react-hooks/set-state-in-effect" 1
625-
"../../src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
628+
"../../src/pages/workspace/companyCards/addNew/DynamicAddNewCardPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
626629
"../../src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
630+
"../../src/pages/workspace/companyCards/assignCard/ConfirmationStep.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
627631
"../../src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx" "react-hooks/preserve-manual-memoization" 1
628632
"../../src/pages/workspace/downgrade/WorkspaceDowngradePage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
629633
"../../src/pages/workspace/downgrade/WorkspaceDowngradePage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
@@ -648,7 +652,6 @@
648652
"../../src/pages/workspace/taxes/WorkspaceTaxesPage.tsx" "react-hooks/set-state-in-effect" 1
649653
"../../src/pages/workspace/travel/WorkspaceTravelInvoicingSection.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 3
650654
"../../src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
651-
"../../src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx" "react-hooks/preserve-manual-memoization" 3
652655
"../../src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 2
653656
"../../src/stories/ReportActionItemImages.stories.tsx" "no-restricted-syntax" 1
654657
"../../src/stories/TextInput.stories.tsx" "react-hooks/set-state-in-effect" 1
@@ -657,7 +660,6 @@
657660
"../../src/types/onyx/AccountData.ts" "no-restricted-syntax" 1
658661
"../../src/types/onyx/BankAccount.ts" "no-restricted-syntax" 1
659662
"../../src/types/onyx/CancellationDetails.ts" "no-restricted-syntax" 1
660-
"../../src/types/onyx/Card.ts" "no-restricted-syntax" 1
661663
"../../src/types/onyx/CardFeeds.ts" "no-restricted-syntax" 1
662664
"../../src/types/onyx/Domain.ts" "no-restricted-syntax" 1
663665
"../../src/types/onyx/DomainErrors.ts" "no-restricted-syntax" 1

cspell.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,12 @@
163163
"IHDR",
164164
"INTECOMS",
165165
"IPHONEOS",
166+
"ITIN",
166167
"ITSM",
167168
"Idology",
168169
"Inactives",
169170
"Inclusivity",
171+
"innerradius",
170172
"Intacct",
171173
"Invoicify",
172174
"Italiano",
@@ -494,6 +496,7 @@
494496
"codegen",
495497
"codeshare",
496498
"codesign",
499+
"colorscale",
497500
"commentbubbles",
498501
"contenteditable",
499502
"copiloted",
@@ -655,7 +658,9 @@
655658
"killall",
656659
"kilometre",
657660
"kilometres",
661+
"labelcomponent",
658662
"labelledby",
663+
"labelradius",
659664
"laggy",
660665
"lastiPhoneLogin",
661666
"lastname",
@@ -664,6 +669,7 @@
664669
"lightningcss",
665670
"linecap",
666671
"linejoin",
672+
"lineheight",
667673
"lintable",
668674
"lintrk",
669675
"listformat",
@@ -740,6 +746,7 @@
740746
"onloaderror",
741747
"onopentag",
742748
"onplayerror",
749+
"ontext",
743750
"onxy",
744751
"openxmlformats",
745752
"ordinality",
@@ -866,6 +873,7 @@
866873
"tabindex",
867874
"teachersunite",
868875
"testflight",
876+
"textanchor",
869877
"threadsafe",
870878
"thumbsup",
871879
"tickcount",
@@ -908,13 +916,15 @@
908916
"useMemo",
909917
"usernotifications",
910918
"utilise",
919+
"verticalanchor",
911920
"victoryaxis",
912921
"victorybar",
913922
"victorychart",
914923
"victorygroup",
915924
"victorylabel",
916925
"victorylegend",
917926
"victoryline",
927+
"victorypie",
918928
"viewability",
919929
"viewport",
920930
"viewports",

docs/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Troubleshooting-business-bank-account-setups.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Troubleshooting business bank account setup
33
description: Fix common errors when adding or verifying a verified business bank account in Expensify.
4-
keywords: [bank account troubleshooting, verified business account, Onfido error, missing test transactions, ACH whitelisting, ID upload issues, missing verification amounts, missing micro deposits]
4+
keywords: [bank account troubleshooting, verified business account, Onfido error, missing test transactions, ACH whitelisting, ID upload issues, missing verification amounts, missing micro deposits, validation failed, test deposits wrong, Fix button missing, Unlock button missing, bank account pending, verification stuck, documentation review]
55
---
66
<div id="expensify-classic" markdown="1">
77

@@ -99,4 +99,46 @@ Yes. Expensify cannot process payments for:
9999

100100
If your business operates in one of these industries, you may not be able to use Expensify for payments.
101101

102+
---
103+
104+
# Troubleshooting Test Transaction Validation
105+
106+
## I entered the correct test transaction amounts but validation failed
107+
108+
If you can see the test transactions in your bank account but the amounts are being rejected:
109+
110+
- **Wait for transactions to fully post.** Pending transactions may display slightly different amounts than the final posted values. Only enter amounts after they have fully posted.
111+
- **Double-check for rounding.** Enter the exact amounts including cents. Even a one-cent difference will cause validation to fail.
112+
- **Verify you have the right transactions.** Look for transactions labeled "Expensify, Inc. Validation" or similar. If you have multiple bank accounts connected, make sure you are not mixing up transactions from different accounts.
113+
114+
If you have confirmed all of the above and validation still fails, contact Concierge for assistance.
115+
116+
## Validation is temporarily locked after multiple failed attempts
117+
118+
Entering incorrect amounts multiple times will temporarily lock the validation process. The lock typically lasts a few hours. After the lock period, retry by navigating to your bank account in **Settings > Account > Payments** and clicking the pending bank account.
119+
120+
If you are unable to validate after the lock period has passed, contact Concierge.
121+
122+
## Test transactions expired or validation window closed
123+
124+
Test transactions and the validation window are active for a limited time. If you did not complete validation before the window expired, contact Concierge to request a new set of test transactions.
125+
126+
---
127+
128+
# Troubleshooting Additional Documentation Review
129+
130+
## Concierge says my account requires additional documentation
131+
132+
If automatic verification cannot be completed, Expensify may request a manual review of your supporting documents. This can happen when:
133+
134+
- Business information does not match public records
135+
- The business is newly formed or has limited public data
136+
- Additional verification is required for compliance reasons
137+
138+
Concierge will send you a message with specific instructions on what to provide. Common documents include a bank statement, business license, articles of incorporation, or EIN confirmation letter.
139+
140+
## How long does the documentation review take?
141+
142+
Reviews are typically completed within **1-3 business days** after all requested documents are submitted. You will receive a message from Concierge when the review is complete. If your review is taking longer than expected, contact Concierge for a status update.
143+
102144
</div>

docs/articles/new-expensify/connections/TriNet.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ Before connecting Expensify with TriNet, ensure that:
4343

4444
# FAQ
4545

46+
## Can I connect multiple HR platforms at the same time?
47+
48+
No. Expensify only supports one HR platform connection per workspace at a time. If you already have an HR platform connected (for example, Gusto) and try to connect TriNet, you will see a prompt to disconnect the existing platform first. To switch, go to **Settings > Workspaces > [Workspace Name] > HR** and disconnect the current provider before connecting a new one.
49+
4650
## Will my employees receive a notification?
4751
Yes, each employee will receive a welcome email at their work email address. This email includes account validation steps and a password setup link. Employees can also download the Expensify app for iOS and Android.
4852

0 commit comments

Comments
 (0)