[HOLD for payment 2024-08-29] [QBO Export] [$250] Display QBO auto-sync errors and RBRs in NewDot
- HELD on https://github.com/Expensify/App/issues/44015
Part of QBO Export and Error Handling in NewDot
Main issue: https://github.com/Expensify/Expensify/issues/350150 Doc section: https://docs.google.com/document/d/1aQl-AK_F6IqszWYG2aEllTsD5x3h4b8Zu0XEG0LuQ08/edit#heading=h.pmmx5zp5s75j Project: #wave-collect
Feature Description
As described in the doc, we need to display a RBR when there are errors in a policy connection’s last sync.
The RBR will show on the path to the integration connection settings (Avatar > Workspaces > [Workspace name] > Accounting > Connections):
- LHN Avatar: check if policy.connection.lastSync.isSuccessful is false in the Indicator
- InitialSettingsPage: add the same check to hasGlobalWorkspaceSettingsRBR
- WorkspaceInitialPage: add the same check to the connections menu item here
- PolicyAccountingPage: use policy.connection.lastSync.errorMessage to populate the errorText option for the QBO menu item here
When the error is a credentials error (policy.connection.lastSync.isAuthenticationError is true), we’ll replace the ‘Sync now’ option in the connection’s 3-dot menu with a ‘Reconnect’ option here. The option will restart the Quickbooks Auth flow as described in our initial QBO doc.
Manual Test Steps
Prerequisites
- Collect workspace with an admin and member
- Setup QBO integration connection
Steps
- Log into QBO and disconnect the Expensify app (Menu > Apps > Overview > Expensify 3-dot menu > Disconnect)
- Log into NewDot as the admin
- Verify there's a RBR on the path: Avatar > Workspaces > [Workspace name] > Accounting > QBO
- Verify a red error message appears on the connection explaining the issue
- Select QBO’s 3-dot menu
- Verify there’s a “Enter credentials” option
- Select “Enter credentials”
- Verify a new window opens to log into QBO
Automated Tests
- Add a test to IS verifying
errorMessageandisAuthenticationErrorare set on the IntegrationLastSync - Add an Auth test for
SavePolicyverifying that anINTEGRATIONSMESSAGEaction gets posted to the #admins room when the last sync is a failure
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~01cc92666d46e99569
- Upwork Job ID: 1803462924011290436
- Last Price Increase: 2024-06-19
Issue Owner
Current Issue Owner: @muttmuure
Job added to Upwork: https://www.upwork.com/jobs/~01cc92666d46e99569
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ishpaul777 (External)
Triggered auto assignment to @puneetlath (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details. Please add this Feature request to a GH project, as outlined in the SO.
:warning: It looks like this issue is labelled as a New Feature but not tied to any GitHub Project. Keep in mind that all new features should be tied to GitHub Projects in order to properly track external CAP software time :warning:
Triggered auto assignment to Design team member for new feature review - @dubielzyk-expensify (NewFeature)
weekly update: Still held on https://github.com/Expensify/App/issues/44015
Not held on https://github.com/Expensify/App/issues/44015 anymore.
Everything's deployed so this should be all set
Woops wrong issue 😅
I posted https://github.com/Expensify/Integration-Server/pull/8040 to fix the issue with errors in manual sync jobs not getting pushed to NewDot. I also noticed another issue with successful sync data not getting pushed and posted https://github.com/Expensify/Auth/pull/11925 to fix it. Hopefully we can get these out in the next couple days.
⚠️ Looks like this issue was linked to a Deploy Blocker here
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
https://github.com/Expensify/App/pull/45251 is merged and on its way to staging.
Triggered auto assignment to @muttmuure (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details. Please add this Feature request to a GH project, as outlined in the SO.
I believe this will only need payment for @hungvu193's C+ reviews on these two PRs:
- https://github.com/Expensify/App/pull/46671
- https://github.com/Expensify/App/pull/45251
but that's after deploy and the regression period.
The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.23-0 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
- https://github.com/Expensify/App/pull/45251
If no regressions arise, payment will be issued on 2024-08-29. :confetti_ball:
For reference, here are some details about the assignees on this issue:
- @hungvu193 requires payment through NewDot Manual Requests
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:
- [ ] [@hungvu193] Please propose regression test steps to ensure the new feature will work correctly on production in further releases.
- [ ] [@muttmuure] Link the GH issue for creating/updating the regression test once above steps have been agreed upon.
Payment Summary
- Reviewer: @hungvu193 owed $750 via NewDot
BugZero Checklist (@muttmuure)
- [x] I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
- [x] I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants/1803462924011290436/hired)
- [ ] I have paid out the Upwork contracts or cancelled the ones that are incorrect
- [x] I have verified the payment summary above is correct
Regression test:
Prerequisites:
- Collect workspace with an admin and member
- Setup QBO (Xero) integration connection
Steps:
- Log into QBO (Xero) and disconnect the Expensify app: Menu > Apps > Overview > Expensify 3-dot menu > Disconnect (Xero: 9 dots menu > Manage app connections -> Disconnect)
- Log into NewDot as the admin
- Verify there's an RBR on the path: Avatar > Workspaces > [Workspace name] > Accounting > QBO (Xero)
- Verify a red error message appears on the connection explaining the issue
- Select QBO's (Xero's) 3-dot menu
- Verify there’s a “Enter credentials” option
- Select “Enter credentials”
- Verify a new window opens to log into QBO (Xero)
- Enter the credentials and verify that you can connect to QBO (Xero) successfully.
Change integration:
- Go to Accounting settings.
- Open Other integrations.
- Press connect.
- Verify there is a confirmation modal.
- Verify the flow is running correctly after pressing Confirm.
- Verify new integration connection
- All Connect buttons and integration flows were refactored. Verify that it is possible to add each integration:
- quickbooksOnline,
- xero,
- netsuite
- intact
Based on the scope that was added to https://github.com/Expensify/App/pull/45251, Can I request a raise for the bounty of this issue 😄 ?
@arosiclair, @hungvu193, @muttmuure Huh... This is 4 days overdue. Who can take care of this?
reviewing this tomorrow
How many PRs did you review in total?
We have 2 PRs:
- https://github.com/Expensify/App/pull/45251
- https://github.com/Expensify/App/pull/46671
The first one (https://github.com/Expensify/App/pull/45251) is a big PR, and we also added a lot of reactors to reuse the code.
Would $750 be about right?
Yes. Lovely 💪
$750 - @hungvu193
Added regression test. Please go ahead and request payment through ND
$750 approved for @hungvu193