-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HOLD for payment 2025-01-28] [$500] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page #53693
Comments
Triggered auto assignment to @garrettmknight ( |
Edited by proposal-police: This proposal was edited at 2024-12-10 10:02:03 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.There are discrepancies in how payment methods behave between the Wallet Page and the Invoices Page, specifically:
What is the root cause of that problem?We have two issues
but we art not updating the App/src/pages/settings/Wallet/PaymentMethodList.tsx Lines 150 to 152 in f5234f7
causing discrepancies from the Wallet page, because in the wallet we are showing the Default badge for the recently added payment method. What changes do you think we should make in order to solve the problem?1. To solve the first issue of Make default payment method:
In Wallet page we already update the userWallet?.walletLinkedAccountID to the account ID of the newly added payment method. 2. To solve the issue of Default badge:
in the shouldShowDefaultBadge function. What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?To ensure this issue is fully covered and to avoid regressions, the following test cases should be performed for Wallet Page and Invoices Page: Single Payment Method:
Multiple Payment Methods:
Switching Default Accounts:
Consistency Across Refresh:
|
Job added to Upwork: https://www.upwork.com/jobs/~021865085918655065327 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @jjcoffee ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.There are 2 separate issues:
What is the root cause of that problem?
What changes do you think we should make in order to solve the problem?
App/src/pages/settings/Wallet/WalletPage/WalletPage.tsx Lines 338 to 340 in b595f5d
The modifed code would simply pass the isDefault parameter into the shouldShowDefaultBadge function What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?Automated UI tests:
What alternative solutions did you explore? (Optional)None. |
📣 @rdipippo! 📣
|
Contributor details |
✅ Contributor details stored successfully. Thank you for contributing to Expensify! |
@Shahidullah-Muffakir Your proposal is missing a solution to the second issue of the labels not being consistent between invoice & wallet pages. Please also note that including unit tests is a requirement now, or at least an explanation of why you think they may not be necessary. @rdipippo Thanks for the proposal! It looks good overall, but I'm unsure about this part:
Correct me if I'm wrong, but that sounds like we would ignore the |
You are correct, but we can discuss other options if that logic can't be
changed in that way. I couldn't find much in the code about what
*invoiceTransferBankAccountID
*is for, but it's definitely what's causing the discrepancy between the two
pages, since it's null on one page (*walletPage* I believe) but not the
other.
…On Mon, Dec 9, 2024 at 9:32 AM Joel Davies ***@***.***> wrote:
@Shahidullah-Muffakir <https://github.com/Shahidullah-Muffakir> Your
proposal
<#53693 (comment)>
is missing a solution to the second issue of the labels not being
consistent between invoice & wallet pages. Please also note that including
unit tests is a requirement now, or at least an explanation of why you
think they may not be necessary.
@rdipippo <https://github.com/rdipippo> Thanks for the proposal
<#53693 (comment)>!
It looks good overall, but I'm unsure about this part:
The modifed code would simply pass the isDefault parameter into the
shouldShowDefaultBadge function
Correct me if I'm wrong, but that sounds like we would ignore the
invoiceTransferBankAccountID (i.e. the ID that gets set when you manually
mark a payment method as default).
—
Reply to this email directly, view it on GitHub
<#53693 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABO7HSPZEWUHCLG2MCV5HG32EWSWZAVCNFSM6AAAAABTEMIARSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMRYGEZDEOJWGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@jjcoffee Thank you for reviewing the proposal, I will add all the details to the proposal now. |
@jjcoffee , The proposal has been updated: #53693 (comment). Let me know if there’s anything else you’d like me to add, Thank you. |
@Shahidullah-Muffakir Thanks for the updated proposal! 🙏 Could you update your RCA to include actual details of the root cause, rather than just linking to your previous PRs? Also, in your solution section it would be more helpful to explain what changes you want to make and why, rather than just pasting entire blocks of code. This helps to keep your proposal concise, and perhaps more importantly easy to read and parse! |
@jjcoffee , the proposal #53693 (comment) has been updated. Please let me know your thoughts. Thanks! |
Tagging @jjcoffee
…On Mon, Dec 9, 2024 at 9:51 AM Richard DiPippo ***@***.***> wrote:
You are correct, but we can discuss other options if that logic can't be
changed in that way. I couldn't find much in the code about what *invoiceTransferBankAccountID
*is for, but it's definitely what's causing the discrepancy between the
two pages, since it's null on one page (*walletPage* I believe) but not
the other.
On Mon, Dec 9, 2024 at 9:32 AM Joel Davies ***@***.***>
wrote:
> @Shahidullah-Muffakir <https://github.com/Shahidullah-Muffakir> Your
> proposal
> <#53693 (comment)>
> is missing a solution to the second issue of the labels not being
> consistent between invoice & wallet pages. Please also note that including
> unit tests is a requirement now, or at least an explanation of why you
> think they may not be necessary.
>
> @rdipippo <https://github.com/rdipippo> Thanks for the proposal
> <#53693 (comment)>!
> It looks good overall, but I'm unsure about this part:
>
> The modifed code would simply pass the isDefault parameter into the
> shouldShowDefaultBadge function
>
> Correct me if I'm wrong, but that sounds like we would ignore the
> invoiceTransferBankAccountID (i.e. the ID that gets set when you
> manually mark a payment method as default).
>
> —
> Reply to this email directly, view it on GitHub
> <#53693 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ABO7HSPZEWUHCLG2MCV5HG32EWSWZAVCNFSM6AAAAABTEMIARSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMRYGEZDEOJWGY>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
@Shahidullah-Muffakir I still think it could be made more concise, but I think I understand it enough 😄
One thing I'm wondering is if the above expected result is definitely true. Is the default actually shared between the wallet and a specific policy/workspace's invoice settings? cc @garrettmknight |
@rdipippo Apologies for not responding earlier! It would be expected for you to understand what |
Okay after testing this a bit more, it looks like fixing the first issue means the second issue isn't really an issue. The only remaining issue is that there's a I'm still unsure whether the wallet and invoice bank account should share a default. For now, let's go with @Shahidullah-Muffakir's proposal and we can adjust things on the PR. 🎀👀🎀 C+ reviewed |
Triggered auto assignment to @marcaaron, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸 |
Thanks for the update, I’ll give it a test. |
@nkuoch ,Thanks for the BE changes, I’ve tested them, and everything works as expected. However, there’s one more case. If a user hasn’t added any bank account through the Invoices page, but adds one via the general Wallet page, those bank accounts still appear on the Invoices page. However, the What are your thoughts on this? |
It's fine as is. We want the user to set their invoice transferBankAccountID explicitly, so we don't set them the wrong bank account. |
Thanks, I will proceed with the PR. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.87-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2025-01-28. 🎊 For reference, here are some details about the assignees on this issue:
|
@jjcoffee @garrettmknight @jjcoffee The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button] |
@garrettmknight @nkuoch, since we expanded the scope of the PR, would it be possible to consider increasing the bounty? Thank you. |
BugZero Checklist:
Bug classificationSource of bug:
Where bug was reported:
Who reported the bug:
Regression Test ProposalPrecondition:
Test:
Do we agree 👍 or 👎 |
Payment Summary
BugZero Checklist (@garrettmknight)
|
@Shahidullah-Muffakir that's fair. I'll double the payout since this one was so complicated. |
Upwork job price has been updated to $500 |
Thank you so much ❤ |
@jjcoffee request the $500 when you get a chance! |
Requested in ND! |
Payment summary:
|
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: 9.0.72-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: Exp
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team
Action Performed:
Expected Result:
In Step 5, there should be no "Make default payment method" option because there is only one bank account added (this option does not appear in Wallet when there is only one bank account).
In Step 8, there should be "Default" label after the second bank account is added in Invoices (The same label instantly appears when adding second bank account in Wallet page).
In Step 10 and 12, there should be consistent whether the same default bank account in Invoices should also be default in Wallet page.
Actual Result:
In Step 5, there is a "Make default payment method" option when there is only one bank account added.
In Step 8, there is no "Default" label after the second bank account is added to Invoices page. It does not appear after the page is refreshed and only appears after user opens Wallet page.
In Step 10 and 12, after adding second bank account, the first bank account remains as default in Invoices, while the second bank account is the default account in Wallet.
Workaround:
Unknown
Platforms:
Screenshots/Videos
Bug6686161_1733475820034.bandicam_2024-12-06_16-25-55-857.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @garrettmknightThe text was updated successfully, but these errors were encountered: