Skip to content

Commit 585e703

Browse files
committed
Merge branch 'main' into jules-dummyPrAdHocBuild
* main: (544 commits) Update Mobile-Expensify submodule version to 9.0.98-1 Update version to 9.0.98-1 Update Mobile-Expensify submodule version to 9.0.98-0 Update version to 9.0.98-0 update comment. Skip late check if the client is offline Clear intervals instead of skipping initialization Stopping logging missed PONGs if a PONG has already been missed fix unit test. Update Mobile-Expensify submodule version to 9.0.97-1 Update version to 9.0.97-1 Use correct approach for changing fn names Fix a few more lint things Fix default imports on tag settings apge Fix import spacing and order Remove default imports from category settings page Revert PR #56316 Revert PR #56316 match pattern Revert "Remove hybrid app check from getEnvironment" ...
2 parents b659257 + fbe2b76 commit 585e703

File tree

383 files changed

+7280
-5045
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

383 files changed

+7280
-5045
lines changed

.eslintrc.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,14 @@ module.exports = {
150150
{
151151
selector: ['variable', 'property'],
152152
format: ['camelCase', 'UPPER_CASE', 'PascalCase'],
153+
// This filter excludes variables and properties that start with "private_" to make them valid.
154+
//
155+
// Examples:
156+
// - "private_a" → valid
157+
// - "private_test" → valid
158+
// - "private_" → not valid
153159
filter: {
154-
regex: '^private_[a-z][a-zA-Z0-9]+$',
160+
regex: '^private_[a-z][a-zA-Z0-9]*$',
155161
match: false,
156162
},
157163
},

.github/workflows/deploy.yml

+1
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ jobs:
378378
run: |
379379
op read "op://${{ vars.OP_VAULT }}/NewApp_AppStore/NewApp_AppStore.mobileprovision" --force --out-file ./NewApp_AppStore.mobileprovision
380380
op read "op://${{ vars.OP_VAULT }}/NewApp_AppStore_Notification_Service/NewApp_AppStore_Notification_Service.mobileprovision" --force --out-file ./NewApp_AppStore_Notification_Service.mobileprovision
381+
op read "op://${{ vars.OP_VAULT }}/NewApp_AppStore_Share_Extension/NewApp_AppStore_Share_Extension.mobileprovision" --force --out-file ./NewApp_AppStore_Share_Extension.mobileprovision
381382
op read "op://${{ vars.OP_VAULT }}/New Expensify Distribution Certificate/Certificates.p12" --force --out-file ./Certificates.p12
382383
op read "op://${{ vars.OP_VAULT }}/ios-fastlane-json-key.json/ios-fastlane-json-key.json" --force --out-file ./ios-fastlane-json-key.json
383384

.github/workflows/testBuild.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ jobs:
186186
run: |
187187
op read "op://${{ vars.OP_VAULT }}/NewApp_AdHoc/NewApp_AdHoc.mobileprovision" --force --out-file ./NewApp_AdHoc.mobileprovision
188188
op read "op://${{ vars.OP_VAULT }}/NewApp_AdHoc_Notification_Service/NewApp_AdHoc_Notification_Service.mobileprovision" --force --out-file ./NewApp_AdHoc_Notification_Service.mobileprovision
189-
op read "op://${{ vars.OP_VAULT }}/NewApp_AdHoc_Share_Extension.mobileprovision/NewApp_AdHoc_Share_Extension.mobileprovision" --force --out-file ./NewApp_AdHoc_Share_Extension.mobileprovision
189+
op read "op://${{ vars.OP_VAULT }}/NewApp_AdHoc_Share_Extension/NewApp_AdHoc_Share_Extension.mobileprovision" --force --out-file ./NewApp_AdHoc_Share_Extension.mobileprovision
190190
op read "op://${{ vars.OP_VAULT }}/New Expensify Distribution Certificate/Certificates.p12" --force --out-file ./Certificates.p12
191191
192192
- name: Configure AWS Credentials

Mobile-Expensify

android/app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ android {
110110
minSdkVersion rootProject.ext.minSdkVersion
111111
targetSdkVersion rootProject.ext.targetSdkVersion
112112
multiDexEnabled rootProject.ext.multiDexEnabled
113-
versionCode 1009009601
114-
versionName "9.0.96-1"
113+
versionCode 1009009801
114+
versionName "9.0.98-1"
115115
// Supported language variants must be declared here to avoid from being removed during the compilation.
116116
// This also helps us to not include unnecessary language variants in the APK.
117117
resConfigs "en", "es"
Loading

contributingGuides/APPLE_GOOGLE_SIGNIN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ index 4286a26033..850f8944ca 100644
157157
index ca2da6f56b..2c191598f0 100644
158158
--- a/src/libs/Navigation/linkingConfig/prefixes.ts
159159
+++ b/src/libs/Navigation/linkingConfig/prefixes.ts
160-
@@ -8,6 +8,7 @@ const prefixes: LinkingOptions<RootStackParamList>['prefixes'] = [
160+
@@ -8,6 +8,7 @@ const prefixes: LinkingOptions<RootNavigatorParamList>['prefixes'] = [
161161
'https://www.expensify.cash',
162162
'https://staging.expensify.cash',
163163
'https://dev.new.expensify.com',

contributingGuides/NAVIGATION.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,4 +207,4 @@ The action for the first step created with `getMinimalAction` looks like this:
207207
```
208208

209209
### Deeplinking
210-
There is no minimal action for deeplinking directly to the `Profile` screen. But because the `Settings_root` is not on the stack, pressing UP will reset the params for navigators to the correct ones.
210+
There is no minimal action for deeplinking directly to the `Profile` screen. But because the `Settings_root` is not on the stack, pressing UP will reset the params for navigators to the correct ones.
+270
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
# Navigation tests
2+
3+
#### There should be a proper report under attachment screen after reload
4+
5+
1. Open any report with image attachment on narrow layout.
6+
2. Open attachment.
7+
3. Reload the page.
8+
4. Verify that after pressing back arrow in the header you are on the report where you sent the attachment.
9+
10+
11+
#### There is a proper split navigator under RHP with a sidebar screen only for screens that can be opened from the sidebar
12+
13+
1. Open the browser on narrow layout with url `/settings/profile/status`.
14+
2. Reload the page.
15+
3. Verify that after pressing back arrow in the header you are on the settings root page.
16+
17+
18+
#### There is a proper split navigator under the overlay after refreshing page with RHP/LHP on wide screen
19+
20+
1. Open the browser on wide screen with url `/settings/profile/display-name`.
21+
2. Verify that you can see settings profile page under the overlay of RHP.
22+
23+
24+
#### There is a proper split navigator under the overlay after deeplinking to page with RHP/LHP on wide screen
25+
26+
1. Open the browser on wide screen.
27+
2. Open any report.
28+
3. Send message with url `/settings/profile/display-name`.
29+
4. Press the sent link
30+
5. Verify that the settings profile screen is now visible under the overlay
31+
32+
#### The Workspace list page is displayed (SCREENS.SETTINGS.WORKSPACES) after clicking the Settings tab from the Workspace settings screen
33+
34+
1. Open any workspace settings (Settings → Workspaces → Select any workspace)
35+
2. Click the Settings button on the bottom tab.
36+
3. Verify that the Workspace list is displayed (`/settings/workspaces`)
37+
4. Select any workspace again.
38+
5. Reload the page.
39+
6. Click the Settings button on the bottom tab.
40+
7. Verify that the Workspace list is displayed (`/settings/workspaces`)
41+
42+
43+
#### The last visited screen in the settings tab is saved when switching between tabs
44+
45+
1. Open the app.
46+
2. Go to the settings tab.
47+
3. Open the workspace list.
48+
4. Select any workspace.
49+
5. Switch between tabs and open the settings tabs again.
50+
6. Verify that the last visited page in this tab is displayed.
51+
52+
53+
#### The Workspace selected in the application is reset when you select a chat that does not belong to the current policy
54+
55+
1. Open the home page.
56+
2. Click on the Expensify icon in the upper left corner.
57+
3. Select any workspace.
58+
4. Click on the magnifying glass above the list of available chats.
59+
5. Select a chat that does not belong to the workspace selected in the third step.
60+
6. Verify if the chat is opened and the global workspace is selected.
61+
62+
63+
#### The selected workspace is saved between Search and Inbox tabs
64+
65+
1. Open the Inbox tab.
66+
2. Change the workspace using the workspace switcher.
67+
3. Switch to the Search tab and verify if the workspace selected in the second step is also selected in the Search.
68+
4. Change the workspace once again.
69+
5. Go back to the Inbox.
70+
6. Verify if the workspace selected in the fourth step is also selected in the Inbox tab.
71+
72+
#### Going up to the workspace list page after refreshing on the workspace settings and pressing the up button
73+
74+
1. Open the workspace settings from the deep link (use a link in format: `/settings/workspaces/:policyID:/profile`)
75+
2. Click the app’s back button.
76+
3. Verify if the workspace list is displayed.
77+
78+
#### Going up to the RHP screen provided in the backTo parameter in the url
79+
80+
1. Open the settings tab.
81+
2. Go to the Profile page.
82+
3. Click the Address button.
83+
4. Click the Country button.
84+
5. Reload the page.
85+
6. Click the app’s back button.
86+
7. Verify if the Profile address page is displayed (`/settings/profile/address`)
87+
88+
#### There is proper split navigator under the overlay after refreshing page in RHP that includes valid reportID in params
89+
90+
wide layout :
91+
92+
1. Open any report.
93+
2. Open report details (press the chat header).
94+
3. Reload the app.
95+
4. Verify that the report under the overlay is the same as the one opened in report details.
96+
97+
narrow layout :
98+
99+
1. Open any report
100+
2. Open report details (press the chat header).
101+
3. Reload the app.
102+
4. Verify that after pressing back arrow in the header you are on the report previously seen in the details page.
103+
104+
#### Navigating back to the Workspace Switcher from the created workspace
105+
106+
1. Open the app and go to the Inbox tab.
107+
2. Open the workspace switcher (Click on the button in the upper left corner).
108+
3. Create a new workspace by clicking on the + button.
109+
4. Navigate back using the back button in the app.
110+
5. Verify if the workspace switcher is displayed with the report screen below it
111+
112+
#### Going up to the sidebar screen
113+
114+
Linked issue: https://github.com/Expensify/App/pull/44138
115+
116+
1. Go to Subscription page in the settings tab.
117+
2. Click on Request refund button
118+
3. Verify that modal shown
119+
4. Next click Downgrade...
120+
5. Verify that modal got closed, your account is downgraded and the Home page is opened.
121+
122+
#### Navigating back from the Search page with invalid query parameters
123+
124+
1. Open the search page with invalid query parameters (e.g `/search?q=from%3a`)
125+
2. Press the app's back button on the not found page.
126+
3. Verify that the Search page with default query parameters is displayed.
127+
128+
#### Navigating to the chat from the link in the thread
129+
130+
1. Open any chat.
131+
2. If there are no messages in the chat, send a message.
132+
3. Press reply in thread.
133+
4. Press the "From" link in the displayed header.
134+
5. Verify if the link correctly redirects to the chat opened in the first step.
135+
136+
#### Expense - App does not open destination report after submitting expense
137+
138+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2432400819
139+
140+
1. Launch the app.
141+
2. Open FAB > Submit expense > Manual.
142+
3. Submit a manual expense to any user (as long as the user is not the currrently opened report and the receiver is not workspace chat).
143+
4. Verify if the destination report is opened after submitting expense.
144+
145+
#### QBO - Preferred exporter/Export date tab do not auto-close after value selected
146+
147+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2433342220
148+
149+
Precondition: Workspace with QBO integration connected.
150+
151+
1. Go to Workspace > Accounting.
152+
2. Click on Export > Preferred exporter (or Export date).
153+
3. Click on value.
154+
4. Verify if the value chosen in the third step is selected and the app redirects to the Export page.
155+
156+
#### Web - Hold - App flickers after entering reason and saving it when holding expense
157+
158+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2433389682
159+
160+
1. Launch the app.
161+
2. Open DM with any user.
162+
3. Submit two expenses to them.
163+
4. Click on the expense preview to go to expense report.
164+
5. Click on any preview to go to transaction thread.
165+
6. Go back to expense report.
166+
7. Right click on the expense preview in Step 5 > Hold.
167+
8. Enter a reason and save it.
168+
9. Verify if the app does not flicker after entering reason and saving it.
169+
170+
#### Group - App returns to group settings page after saving group name
171+
172+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2433381800
173+
174+
1. Launch the app.
175+
2. Create a group chat.
176+
3. Go to group chat.
177+
4. Click on the group chat header.
178+
5. Click Group name field.
179+
6. Click Save.
180+
7. Verify if the app returs to group details RHP after saving group name.
181+
182+
#### Going up to a screen with any params
183+
184+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2432694948
185+
186+
1. Press the FAB.
187+
2. Select "Book travel".
188+
3. Press "Book travel" in the new RHP pane.
189+
4. Press "Country".
190+
5. Select any country.
191+
6. Verify that the country you selected is actually visible in the form.
192+
193+
#### Change params of existing attachments screens instead of pushing new screen on the stack
194+
195+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2432360626
196+
197+
1. Open any chat.
198+
2. Send at least two images.
199+
3. Open attachment by pressing on image.
200+
4. Press arrow on the side of attachment modal to navigate to the second image.
201+
5. Close the modal with X in the corner.
202+
6. Verify that the modal is now fully closed.
203+
204+
#### Navigate instead of push for reports with same reportID
205+
206+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2433351709
207+
208+
1. Open app on wide layout web.
209+
2. Go to report A (any report).
210+
3. Go to report B (any report with message).
211+
4. Press reply in thread.
212+
5. Press on header subtitle.
213+
6. Press on the report B in the sidebar.
214+
7. Verify that the message you replied to is no longer highlighted.
215+
8. Press the browsers back button.
216+
9. Verify that you are on the A report.
217+
218+
219+
#### Don't push the default full screen route if not necessary.
220+
221+
1. Open app on wide layout web.
222+
2. Open search tab.
223+
3. Press track expense.
224+
4. Verify that the split navigator hasn't changed under the overlay.
225+
226+
#### BA - Back button on connect bank account modal opens incorporation state modal
227+
228+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2433261611
229+
230+
Precondition: Use staging server (it can be set in Settings >> Troubleshoot)
231+
232+
1. Launch the app.
233+
2. Navigate to Settings >> Workspaces >> Workspace >> Workflows.
234+
3. Select Connect with Plaid option.
235+
4. Go through the Plaid flow (Added Wells Fargo details).
236+
5. Complete the Personal info, Company info & agreements section.
237+
6. Note user redirected to page with the header Connect bank account and the option to disconnect your now set up bank account.
238+
7. Tap back button on connect bank account modal.
239+
8. Verify if the connect bank account modal is closed and the Workflows page is opened with the bank account added.
240+
241+
#### App opens room details page when tapping RHP back button after saving Private notes in DM
242+
243+
Linked issue: https://github.com/Expensify/App/pull/49539#issuecomment-2433321607
244+
245+
1. Launch the app.
246+
2. Open DM with any user that does not have content in Private notes.
247+
3. Click on the chat header.
248+
4. Click Private notes.
249+
5. Enter anything and click Save.
250+
6. Click on the RHP back button.
251+
7. Verify if the Profile RHP Page is opened (URL in the format /a/:accountID).
252+
253+
#### Opening particular onboarding pages from a link and going back
254+
255+
Linked issue: https://github.com/Expensify/App/issues/50177
256+
257+
1. Sign in as a new user.
258+
2. Select Something else from the onboarding flow.
259+
3. Reopen/refresh the app.
260+
4. Verify the Personal detail step is shown.
261+
5. Go back.
262+
6. Verify you are navigated back to the Purpose step.
263+
7. Select Manage my team.
264+
8. Choose the employee size.
265+
9. Reopen/refresh the app.
266+
10. Verify the connection integration step is shown.
267+
11. Go back.
268+
12. Verify you are navigated back to the employee size step.
269+
13. Go back.
270+
14. Verify you are navigated back to the Purpose step.

0 commit comments

Comments
 (0)