Remove Manager McTest references from frontend#91084
Conversation
Manager McTest is no longer supported on the backend. This removes all frontend references including constants, utility functions, special handling in money request flows, Quick Action Bar restrictions, and participant filtering logic. Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
…Policy and spy canCreateRequest The per diem test mocked isPaidGroupPolicy but the source code calls isControlPolicy. Both per diem and time tracking positive tests also need canCreateRequest mocked since the minimal test data doesn't satisfy the real canCreateRequest conditions. Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
|
Fixed the failing
All 11 tests now pass. |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
…cTest Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
…tead of policy ID string After merging main, the new shouldRestrictUserBillableActions calls from PR \#88363 were passing defaultExpensePolicy.id (a string) where the function expects OnyxEntry<Policy>. This fixes all 5 call sites. Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
|
Fixed the failing typecheck: after merging main, the new |
…t removal Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
|
Fixed the failing ESLint checks: removed unused imports and variables left over from the Manager McTest removal ( The Jest failure in |
|
@MelvinBot the action are not running please run those |
|
The CI actions are already running — all checks currently show |
|
MelvinBot has made 5 consecutive commits trying to fix CI failures. Automatic CI fix dispatches are now paused for this PR. Next steps: A human should review the recent commits and resolve the conflicting CI errors manually. |
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@MelvinBot please make it ready for review |
|
PR has been marked as ready for review as requested.
|
|
@linhvovan29546 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@MelvinBot please suggest testing steps for this and add it in PR description |
|
Updated the PR description with suggested testing steps covering the key areas affected by the Manager McTest removal:
Please review and adjust as needed before testing. |
|
@MelvinBot a few things to address before this is ready:
|
- Update JSDoc comment on isTestReceipt in Transaction.ts (remove manager_mctest reference) - Delete dangling EXPENSIFY_ACCOUNT_ID_MANAGER_MCTEST from .env.example - Restore eslint-disable comment in useSearchBulkActions.ts (unrelated removal) Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
|
@ZhenjaHorbach Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Pushed fixes in f069557:
Re: unrelated Note: I was unable to merge main into this branch due to unrelated histories (the branch was created from a standalone snapshot). If a main sync is needed, the branch may need to be recreated. |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product
|
@MelvinBot Please remove |
|
Good catch — I can see MCTEST in cspell.json. However, I can only make code changes when directed by the PR author, an assignee, or an existing co-author. To have me implement this, the PR assignee (ishpaul777) should reply with a request tagging me. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridApptelegram-cloud-document-5-6093752526446796861.mp4Android: mWeb Chrometelegram-cloud-document-5-6093752526446796862.mp4iOS: HybridAppScreen.Recording.2026-05-23.at.20.12.03.moviOS: mWeb SafariScreen.Recording.2026-05-23.at.19.56.22.movScreen.Recording.2026-05-23.at.19.54.36.movMacOS: Chrome / SafariScreen.Recording.2026-05-22.at.20.55.23.movScreen.Recording.2026-05-23.at.19.34.33.movScreen.Recording.2026-05-22.at.21.14.17.mov |
|
@ishpaul777 I can still search for |
|
|
|
Yeah, I mean deleting it from the db |
i'll start a conversation with team having access to DB, can you please continue review? |
|
@ishpaul777 Could you please ask Melvin to merge the main branch to resolve the failing check? |
linhvovan29546
left a comment
There was a problem hiding this comment.
NAB: #91084 (comment)
|
The PR author checklist should be resolved manually, like in this discussion. https://expensify.slack.com/archives/C02NK2DQWUX/p1779455069201039 |
| @@ -1,3 +1,4 @@ | |||
| /* eslint-disable react-hooks/refs */ | |||
There was a problem hiding this comment.
❌ CONSISTENCY-5 (docs)
This file-level /* eslint-disable react-hooks/refs */ was added without a justification comment explaining why the rule is permanently suppressed for the entire file. eslint-disable comments hide violations from the seatbelt baseline and should only be used for permanent suppressions with a clear reason.
Either add a justification comment explaining why react-hooks/refs does not apply to this file, or if this is a temporary suppression, prefer widening the seatbelt baseline with SEATBELT_INCREASE instead. For example:
/* eslint-disable react-hooks/refs -- Refs in this hook are used inside callbacks that capture stable references; the lint rule flags false positives for these patterns */Reviewed at: f069557 | Please rate this suggestion with 👍 or 👎 to help us improve! Reactions are used to monitor reviewer efficiency.
There was a problem hiding this comment.
Merged main and added a justification comment to the eslint-disable directive: /* eslint-disable react-hooks/refs -- Refs in this hook are used inside callbacks that capture stable references; the lint rule flags false positives for these patterns */
|
@MelvinBot please sync main and address this comment #91084 (comment) |
…cTest Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
Synced with main and added a justification comment to the react-hooks/refs eslint-disable directive in useSearchBulkActions.ts per review feedback. Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
|
@MelvinBot fix eslint |
The import was left behind after removing Manager McTest code that was the only consumer. This fixes the ESLint no-unused-vars error. Co-authored-by: Ishpaul Singh <ishpaul777@users.noreply.github.com>
|
Fixed the ESLint failure: removed unused |
|
@MelvinBot please complete author checklist in PR description |
|
Completed the author checklist. Since this is a code removal PR (no new files, no new CSS, no new assets, no UI changes, no deeplinks, no Storybook, no message editing code, no new pages), all conditional "If..." items were checked as N/A. Items left unchecked for human verification:
|
|
We did not find an internal engineer to review this PR, trying to assign a random engineer to #91068 as well as to this PR... Please reach out for help on Slack if no one gets assigned! |

Explanation of Change
Manager McTest is no longer supported on the backend. This PR removes all frontend references to Manager McTest, including:
EMAIL.MANAGER_MCTEST,BETAS.NEWDOT_MANAGER_MCTEST,ACCOUNT_ID.MANAGER_MCTEST, and exclusion list entriesisSelectedManagerMcTest(),isTestTransactionReport(),getManagerMcTestParticipant(),isManagerMcTestQuickActionReport(),getRestrictedLogins()buildOptimisticIOUReportAction,buildOptimisticReportPreview,getMoneyRequestOptions,shouldDisableThread, money request builder flows, scan receipt participant routing, Quick Action Bar restrictions, and participant search filteringFixed Issues
$ #91068
Tests
Create an expense (Submit flow)
Create an expense (Split flow)
Duplicate expense action
Quick Action Bar
Search participants
Thread creation
Verify no console errors
Offline tests
N/A — this is a code removal PR with no new offline behavior.
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.AI Tests
npm run typecheck-tsgonpm run lint-changednpm run prettiernpm test -- ReportUtilsTest, QuickActionUtilsTest, OptionsListUtilsTest, PersonalDetailOptionsListUtilsTest, IOUTest, MoneyRequestTest, useReceiptScanScreenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari