-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
[AWAITING BZ REVIEW][Due for payment 2025-02-13] [$250] Reports - Card filter page is empty when physical card is not activated #55719
Comments
Triggered auto assignment to @garrettmknight ( |
🚨 Edited by proposal-police: This proposal was edited at 2025-01-24 15:28:51 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Reports - Card filter page is empty when physical card is not activated What is the root cause of that problem?We are allowing the card filter if there are any cards here
but inside card filter page we filter out cards that are not issued and activated via isCardHiddenFromSearch here
What changes do you think we should make in order to solve the problem?We need to apply the isCardHiddenFromSearch filter to cards list to ensure that there are cards that are not hidden from search here
Optionally we can apply only What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?N/A What alternative solutions did you explore? (Optional) |
Job added to Upwork: https://www.upwork.com/jobs/~021883935258401101006 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ahmedGaber93 ( |
Triggered auto assignment to @francoisl, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
📣 @FitseTLT 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.94-25 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-02-13. 🎊 For reference, here are some details about the assignees on this issue:
|
@ahmedGaber93 @garrettmknight @ahmedGaber93 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 @francoisl @FitseTLT @ahmedGaber93 this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks! |
Note @garrettmknight The PR for this issue caused this deploy blocker / regression because this logic was faulty and the changes were not tested thoroughly. |
Hmm! I don't think #56519 is a regression from our PR. Before our PR, the behavior was merging all Line 103 in fc199fa
our PR is just excluding items that hidden from search without touching the items that cause that issue #56519 Also, I am able to reproduce it after manually revert that change. |
@Kicu Do you mind confirming whether changes from PR #55900 caused the deploy blocker you just addressed with PR #56600 ? |
BugZero Checklist:
Bug classificationSource of bug:
Where bug was reported:
Who reported the bug:
I think this a straight forward fix and no need for regression test here. |
@ikevin127 most likely yes, but a few days have passed and its not easy to re-reproduce this error now 😅 |
Thanks for confirming! 👍 @garrettmknight Please take ☝️ this into account before issuing payments on this issue, this being the confirmation I asked for in #55719 (comment) to my previous statement made in #55719 (comment). ♻️ My reasoning for why the PR from this issue caused a regression is:
I don't understand how the author / reviewer can argue that the logic added by this issue's PR was flawless and that they should get full compensation despite the regression which clearly came from this issue's PR 🤔 |
@Kicu @ikevin127 Thanks for discussing that, But I don't agree with you (the issue was found before our PR).
Line 103 in fc199fa
This is the code ^ before our PR, merging all @garrettmknight What happened is:
Thanks! |
hey, sorry I'm currently busy with 2 other projects within Expensify and I'm not able to come back to this code. |
@ahmedGaber93 That's irrelevant, here's what happens:
function mergeCardListWithWorkspaceFeeds(workspaceFeeds: Record<string, WorkspaceCardsList | undefined>, cardList = allCards) {
const feedCards: CardList = {...cardList};
Object.values(workspaceFeeds ?? {}).forEach((currentCardFeed) => {
Object.values(currentCardFeed ?? {}).forEach((card) => {
if (!isCard(card)) {
return;
}
feedCards[card.cardID] = card;
});
});
return feedCards;
}
function mergeCardListWithWorkspaceFeeds(workspaceFeeds: Record<string, WorkspaceCardsList | undefined>, cardList = allCards, shouldExcludeCardHiddenFromSearch = false) {
const feedCards: CardList = {};
Object.keys(cardList).forEach((cardKey) => {
const card = cardList[cardKey];
if (shouldExcludeCardHiddenFromSearch && isCardHiddenFromSearch(card)) {
return;
}
feedCards[cardKey] = card;
});
Object.values(workspaceFeeds ?? {}).forEach((currentCardFeed) => {
Object.values(currentCardFeed ?? {}).forEach((card) => {
if (!isCard(card) || (shouldExcludeCardHiddenFromSearch && isCardHiddenFromSearch(card))) {
return;
}
feedCards[card.cardID] = card;
});
});
return feedCards;
} Let's go with your logic:
This is what I mean when I say that it's irrelevant whether the older logic caused the crash as well, because the logic this PR added is causing the crash sooner in the function because of the missing
Please let me know how you were able to reproduce the issue, exact steps / video proof would be good 👍 |
This is not correct, the both logic handle Lines 102 to 103 in fc199fa
|
Let's put an end to this discussion and let the BZ or the internal developer decide. |
That doesn't make sense, the old logic that you showed in permalink here was spreading the const feedCards: CardList = {}; and added the new
♻ Once again, please let me know how you were able to reproduce the issue, exact steps / video proof would be good 👍
No problem with that, just wanted to make sure that BZ is informed about the regression source before issuing payments. |
Using the same steps here #56519 20250211222304238.mp4 |
Thanks for all the context here - I'm going to pause payment for the moment and dig into this Monday. Appreciate everyone keeping it cordial in the meantime. |
@ikevin127 I appreciate your thorough review on this one and I can see how halving payment could be a reasonable outcome to recomment. I'm going to leave payment full here for a few reasons:
|
Payment Summary:
|
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 9.0.89-2
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: N/A
Email or phone of affected tester (no customers): applausetester+100106kh@applause.expensifail.com
Issue reported by: Applause Internal Team
Device used: Mac 15.0 / Chrome
App Component: Search
Action Performed:
Precondition:
Expected Result:
In Step 7, Card field should not be present in Filters when the only physical card is not activated.
Actual Result:
In Step 7, Card field is present in Filters when the only physical card is not activated, which opens a blank page.
Workaround:
Unknown
Platforms:
Screenshots/Videos
bug.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: