-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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 2024-04-25] [$250] [Reassure] Add measureFunction test for formatSectionsFromSearchTerm #38166
Comments
Job added to Upwork: https://www.upwork.com/jobs/~015c574cb1d199b7bd |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @getusha ( |
Triggered auto assignment to @alexpensify ( |
Upwork job price has been updated to $250 |
ProposalPlease re-state the problem that we are trying to solve in this issue.We want to ensure the performance of the What is the root cause of that problem?The method has several conditional paths and loops through multiple data structures ( What changes do you think we should make in order to solve the problem?I suggest adding reassure measureFunction tests to benchmark the execution time of formatSectionsFromSearchTerm under different scenarios:
For each scenario, provide large mock data structures as inputs to stress test performance. Use reassure's measureFunction to get the average execution time over multiple runs. We should aim to cover the main conditional paths and potential performance bottlenecks. The tests will serve as a benchmark, and we can compare execution times if the implementation of the method changes in the future. I would put the |
@getusha when you get a chance, can you review the proposal here? Thanks! |
ProposalPlease re-state the problem that we are trying to solve in this issue.Add performance test for formatSectionsFromSearchTerm. What is the root cause of that problem?New tests to ensure stability of performance in What changes do you think we should make in order to solve the problem?Add multiple scenarios with different combinations of searchTerm, selectedOptions, filteredRecentReports, filteredPersonalDetails, maxOptionsSelected, indexOffset, personalDetails and shouldGetOptionDetails.
A scenario with large data sets:
A scenario with max options selected and large data sets:
We can pass these to the tests.
Similarly, we can have more combinations. |
@mountiny The scenarios @brandonhenry provided looks good to me #38166 (comment) |
Proposal |
thank you @brandonhenry can you please raise a PR when you get a chance |
📣 @getusha 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app! |
📣 @brandonhenry 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
Will get started on this one right away. Plan to have this turned around by next Friday |
Thank you @brandonhenry for the update! |
Thanks, the PR is moving forward in the review process. |
@brandonhenry changes requested, please try to resolve this soon |
Updated PR - was having some build issues and couldn't get to this one til now. Will have this back into review tomorrow @mountiny |
Still working through this. Have it around soon! (Just fixed final build issues - looks like switching branches and pulling from main requires fresh clean build on both devices, duh...) |
@mountiny tests have been updated, back to you 👍🏿 |
@brandonhenry per CONTRIBUTING.md,
You currently have 6 issues open with non merged or closed. Please do not submit proposals for new issues until all six PRs have been merged. Also from CONTRIBUTING.md
Please keep the issue and PR moving along with urgency, along with all others. |
This is actively being worked on. Just about wrapped up |
Consolidated tests as requested by @OlimpiaZurek . This is back to @getusha |
Still in review. Just wrapped some changes up and got that back over |
Thanks for the regular updates @brandonhenry . Please continue to provide them on your assigned issues. When possible, include links. |
PR tied to this issue has been merged 🚀 All done here |
Weekly update: I believe we are waiting for this one to go to Production |
Heads up, I will be offline until Tuesday, April 23, 2024, and will not actively watch over this GitHub during that period.If anything urgent is needed here, please ask for help in the #expensify-open-source Slack Room-- thanks! |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.62-17 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 2024-04-25. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
$250 to @getusha and to @brandonhenry |
@getusha and @brandonhenry - there was an issue with Upwork. I updated the job link and need you to accept it here: https://www.upwork.com/jobs/~01ac085e1e841dfb81 After you accept, I can continue with the next steps. Thanks! |
@alexpensify proposal on upwork submitted 👍🏿 |
Payouts due: April 25, 2024
Upwork job is here. |
Everyone has been paid via Upwork -- closing! |
Problem
The formatSectionsFromSearchTerm is a method that is used often in the App and if its performance degrades, it can have considerable impact on the App performance.
Solution
Let's add a measure function reassure test to cover various cases of this method call similarly as we have created such tests for ReportActionUtils methods for example.
Please refer to other tests in the repository, here is a readme for reassure tests which should help you get familiar with the tool.
All new tests should be written in TS.
Please provide a proposal stating, how you could write such test and scenarios for the method such that we test the slowest execution path as well.
cc @OlimpiaZurek
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @alexpensifyThe text was updated successfully, but these errors were encountered: