-
Notifications
You must be signed in to change notification settings - Fork 15
fix: Deprecate simplify report settings #3772
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
base: master
Are you sure you want to change the base?
Conversation
WalkthroughListen, boss! All code related to the "simplified report closure settings" and the "isNewReportsFlowEnabled" flag has been removed from models, services, components, templates, and tests. The codebase no longer checks, passes, or renders UI based on these flags. Only the core reporting logic remains, clean and simple, like a superstar’s punchline! Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant UI_Component
participant OrgSettingsService
User->>UI_Component: Interact with reporting feature
UI_Component->>OrgSettingsService: Fetch org settings (no simplified closure check)
OrgSettingsService-->>UI_Component: Return org settings (without simplified_report_closure_settings)
UI_Component->>UI_Component: Render report UI (no new reports flow logic)
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
npm error Exit handler never called! ✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 14
🔭 Outside diff range comments (8)
src/app/fyle/dashboard/stats/stats.component.html (1)
141-145: Stray ‘d’ spotted – clean the set!There’s a lone
dinside the loading skeleton block. Looks like a mis-type, adds no value, might break HTML validators.- dRemove it and roll like a boss.
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
1582-1582: All echoes ofisNewReportsFlowEnabledmust vanish, my friend!I have scoured the codebase and found lingering references in your spec files—this property no longer exists and is breaking the build. Please remove or replace these assertions in all locations:
• src/app/fyle/my-expenses/my-expenses.page.spec.ts (lines ~2789, 2816, 2841)
• src/app/fyle/view-mileage/view-mileage.page.spec.ts (lines 706, 717, 724)
• src/app/fyle/add-edit-per-diem/add-edit-per-diem-2.page.spec.ts (line 504)
• src/app/fyle/add-edit-mileage/add-edit-mileage-4.spec.ts (lines 397, 403)
• src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (lines 1582, 1870)Once you purge these references, your tests will rise like a phoenix and the pipeline shall flow smoothly again.
src/app/fyle/my-expenses/my-expenses.page.spec.ts (3)
2788-2791: Wait a minute, machaan! There's still some old baggage left behind!I notice that
isNewReportsFlowEnabled: trueis still hardcoded in the test data. If this flag is being deprecated as mentioned in the PR objectives, this hardcoded value should also be removed to ensure complete cleanup.- data: { openReports: expectedReportsSinglePageSubmitted, isNewReportsFlowEnabled: true }, + data: { openReports: expectedReportsSinglePageSubmitted },
2815-2818: Another instance of the same issue, boss! Consistency is key!Similar to the previous comment, this test also has the hardcoded
isNewReportsFlowEnabled: truethat should be removed for complete flag deprecation.- data: { openReports: mockReportData, isNewReportsFlowEnabled: true }, + data: { openReports: mockReportData },
2840-2843: Same problem here too, my friend! Let's finish this cleanup properly!Yet another instance of the hardcoded
isNewReportsFlowEnabled: truethat needs to be removed to complete the flag deprecation process.- data: { openReports: expectedReportsSinglePage, isNewReportsFlowEnabled: true }, + data: { openReports: expectedReportsSinglePage },src/app/fyle/my-view-report/my-view-report.page.ts (2)
168-178: ⚡ Tests still invoke the vanished helper—update or remove getSimplifyReportSettings referencesMy friend, the
getSimplifyReportSettings()helper has exited the building like a true superstar, but our specs are still chasing its shadow. Tests will crash faster than a Rajini punch! Patch the spec file to remove or adapt these calls:• src/app/fyle/my-view-report/my-view-report.page.spec.ts: lines 284, 286, 294, 303
103-111: Fix leftoversimplifyReportsSettings$references in your specs
The removal ofsimplifyReportsSettings$frommy-view-report.page.tshas broken several tests—those specs still call or assign that observable. Update or remove these references so your test suite compiles again:• src/app/fyle/view-team-report/view-team-report.page.spec.ts (lines 409, 499)
• src/app/fyle/team-reports/team-reports-4.page.spec.ts (lines 107, 357)
• src/app/fyle/my-view-report/my-view-report.page.spec.ts (lines 381, 457)
• src/app/fyle/my-reports/my-reports.page.spec.ts (lines 348, 475, 602, 728, 850, 978, 1134, 2044–2050)In each spec, either mock the new observable(s) you’ve introduced (e.g.
loadReportDetails$/loadReportTxns$) or remove the oldsimplifyReportsSettings$stubs/subscriptions.src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (1)
131-131: Even Superstar uses translation keys, da!The hard-coded string "edit" should be replaced with a proper translation key for internationalization support.
Replace with a translation key:
- title = 'edit'; + title = 'EDIT_TITLE'; // or appropriate translation keyMake sure to add the corresponding entry in your i18n translation files, machaan!
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (42)
src/app/core/mock-data/modal-controller.data.ts(1 hunks)src/app/core/mock-data/my-reports.data.ts(0 hunks)src/app/core/mock-data/org-settings.data.ts(0 hunks)src/app/core/mock-data/report-stats-data.data.ts(0 hunks)src/app/core/models/org-settings.model.ts(0 hunks)src/app/core/models/report-stats-data.model.ts(0 hunks)src/app/core/services/org-settings.service.ts(0 hunks)src/app/core/test-data/org-settings.service.spec.data.ts(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts(2 hunks)src/app/fyle/add-edit-expense/add-edit-expense.page.html(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense.page.ts(2 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.html(0 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts(2 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.html(0 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts(2 hunks)src/app/fyle/dashboard/stats/stats.component.html(2 hunks)src/app/fyle/dashboard/stats/stats.component.spec.ts(1 hunks)src/app/fyle/dashboard/stats/stats.component.ts(1 hunks)src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts(1 hunks)src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts(1 hunks)src/app/fyle/my-expenses/my-expenses.page.spec.ts(3 hunks)src/app/fyle/my-expenses/my-expenses.page.ts(4 hunks)src/app/fyle/my-reports/my-reports.page.html(1 hunks)src/app/fyle/my-reports/my-reports.page.ts(3 hunks)src/app/fyle/my-view-report/my-view-report.page.html(1 hunks)src/app/fyle/my-view-report/my-view-report.page.spec.ts(0 hunks)src/app/fyle/my-view-report/my-view-report.page.ts(2 hunks)src/app/fyle/team-reports/team-reports-1.page.spec.ts(0 hunks)src/app/fyle/team-reports/team-reports.page.html(1 hunks)src/app/fyle/team-reports/team-reports.page.ts(2 hunks)src/app/fyle/view-expense/view-expense.page.spec.ts(2 hunks)src/app/fyle/view-expense/view-expense.page.ts(2 hunks)src/app/fyle/view-mileage/view-mileage.page.ts(2 hunks)src/app/fyle/view-per-diem/view-per-diem.page.spec.ts(1 hunks)src/app/fyle/view-per-diem/view-per-diem.page.ts(2 hunks)src/app/fyle/view-team-report/view-team-report.page.html(1 hunks)src/app/fyle/view-team-report/view-team-report.page.ts(3 hunks)src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts(1 hunks)src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts(1 hunks)src/app/shared/components/fy-filters/fy-filters.component.html(1 hunks)src/app/shared/components/fy-filters/fy-filters.component.spec.ts(0 hunks)src/app/shared/components/fy-filters/fy-filters.component.ts(2 hunks)
💤 Files with no reviewable changes (13)
- src/app/core/mock-data/my-reports.data.ts
- src/app/fyle/add-edit-mileage/add-edit-mileage.page.html
- src/app/core/services/org-settings.service.ts
- src/app/fyle/team-reports/team-reports-1.page.spec.ts
- src/app/fyle/my-view-report/my-view-report.page.spec.ts
- src/app/core/models/org-settings.model.ts
- src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.html
- src/app/core/test-data/org-settings.service.spec.data.ts
- src/app/shared/components/fy-filters/fy-filters.component.spec.ts
- src/app/core/mock-data/report-stats-data.data.ts
- src/app/core/models/report-stats-data.model.ts
- src/app/core/mock-data/org-settings.data.ts
- src/app/fyle/add-edit-expense/add-edit-expense.page.html
🧰 Additional context used
🧠 Learnings (30)
📓 Common learnings
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
src/app/fyle/team-reports/team-reports.page.html (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
src/app/fyle/my-reports/my-reports.page.html (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/my-view-report/my-view-report.page.html (11)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3721
File: src/app/fyle/my-profile/my-profile.page.ts:137-153
Timestamp: 2025-06-18T06:14:36.495Z
Learning: User sumrender prefers explicit, readable code structure over concise RxJS operator chains. They value clarity and straightforward logic flow in navigation handling rather than consolidated functional programming approaches.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/view-per-diem/view-per-diem.page.spec.ts (7)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
src/app/fyle/view-team-report/view-team-report.page.html (10)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
src/app/shared/components/fy-filters/fy-filters.component.html (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-checks.model.ts:1-1
Timestamp: 2024-11-25T08:30:23.873Z
Learning: JSDoc documentation is not needed for the 'PasswordChecks' interface in 'src/app/shared/components/password-check-tooltip/password-checks.model.ts'.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
src/app/fyle/dashboard/stats/stats.component.html (6)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3290
File: src/app/auth/disabled/disabled.page.html:18-30
Timestamp: 2024-12-04T14:33:07.038Z
Learning: In `src/app/auth/disabled/disabled.page.html`, for the `ion-button` elements, both the `btn-primary` class and `fill="clear"` attribute are required as per the design specifications.
src/app/fyle/view-per-diem/view-per-diem.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
src/app/fyle/team-reports/team-reports.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3721
File: src/app/fyle/my-profile/my-profile.page.ts:137-153
Timestamp: 2025-06-18T06:14:36.495Z
Learning: User sumrender prefers explicit, readable code structure over concise RxJS operator chains. They value clarity and straightforward logic flow in navigation handling rather than consolidated functional programming approaches.
src/app/fyle/my-expenses/my-expenses.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (9)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
src/app/shared/components/fy-filters/fy-filters.component.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
src/app/fyle/view-team-report/view-team-report.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
src/app/fyle/dashboard/stats/stats.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/auth/new-password/new-password.page.ts:58-59
Timestamp: 2024-12-09T06:39:06.957Z
Learning: In the Angular application, `updateOn: 'blur'` is not used in form control initializations, so we should avoid using it to maintain consistency across the app.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
src/app/core/mock-data/modal-controller.data.ts (10)
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/view-expense/view-expense.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3615
File: src/app/fyle/add-edit-expense/add-edit-expense.page.ts:466-467
Timestamp: 2025-03-20T12:53:30.721Z
Learning: The showBillable property in AddEditExpensePage class should be initialized with false as the default value to ensure the billable field is hidden by default.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/my-view-report/my-view-report.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/dashboard/stats/stats.component.spec.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
src/app/fyle/view-expense/view-expense.page.spec.ts (9)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (8)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
src/app/fyle/my-reports/my-reports.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
src/app/fyle/view-mileage/view-mileage.page.ts (11)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/add-edit-expense/add-edit-expense.page.ts (14)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3615
File: src/app/fyle/add-edit-expense/add-edit-expense.page.ts:466-467
Timestamp: 2025-03-20T12:53:30.721Z
Learning: The showBillable property in AddEditExpensePage class should be initialized with false as the default value to ensure the billable field is hidden by default.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
src/app/fyle/my-expenses/my-expenses.page.spec.ts (13)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for PasswordCheckTooltipComponent in password-check-tooltip.component.spec.ts, password change scenarios are handled in separate test cases.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3284
File: src/app/auth/verify/verify.page.html:6-6
Timestamp: 2024-11-27T06:49:14.297Z
Learning: In the Fyle mobile app's src/app/auth/verify/verify.page.html (an Ionic/Angular component), the design does not specify animation for the text on the verify page. Therefore, animations should not be added unless specified in the design.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
🧬 Code Graph Analysis (6)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (1)
src/app/core/mock-data/platform-report.data.ts (1)
expectedReportsSinglePage(864-864)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (1)
src/app/core/models/platform/v1/report.model.ts (1)
Report(5-65)
src/app/fyle/dashboard/stats/stats.component.spec.ts (1)
src/app/core/mock-data/report-stats-data.data.ts (1)
reportStatsData1(6-11)
src/app/fyle/view-expense/view-expense.page.spec.ts (1)
src/app/core/test-data/org-settings.service.spec.data.ts (1)
orgSettingsData(1067-1474)
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
src/app/core/mock-data/org-settings.data.ts (1)
orgSettingsParamsWithSimplifiedReport(1241-1243)
src/app/fyle/my-reports/my-reports.page.ts (1)
src/app/shared/components/fy-filters/filter-options.interface.ts (1)
FilterOptions(3-9)
🪛 GitHub Check: Run linters
src/app/fyle/my-expenses/my-expenses.page.ts
[failure] 498-498:
Trailing spaces not allowed
src/app/fyle/view-expense/view-expense.page.ts
[failure] 398-398:
Trailing spaces not allowed
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[failure] 1088-1088:
Trailing spaces not allowed
src/app/fyle/view-mileage/view-mileage.page.ts
[failure] 377-377:
Trailing spaces not allowed
🪛 GitHub Actions: Lint
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[warning] 131-131: ESLint warning: Hard-coded string "edit" should be replaced with a translation key. Refer to i18n translation file structure.
[error] 1087-1087: ESLint error: 'orgSettings' is defined but never used. (@typescript-eslint/no-unused-vars)
🪛 GitHub Actions: Unit Tests
src/app/fyle/view-expense/view-expense.page.spec.ts
[error] 658-658: Error: export 'orgSettingsData' (imported as 'orgSettingsData') was not found in 'src/app/core/mock-data/org-settings.data'. Possible exports: orgSettingsCCCDisabled, orgSettingsCCCDisabled2, orgSettingsCCCDisabled3, orgSettingsCCCEnabled, orgSettingsCCDisabled, orgSettingsOrgAutofill, orgSettingsParamWoCCC, orgSettingsParams2, orgSettingsParamsWithAdvanceWallet, orgSettingsParamsWithSimplifiedReport, orgSettingsPendingRestrictions, orgSettingsProjectDisabled, orgSettingsRTFDisabled, orgSettingsRes, orgSettingsWithCommuteDeductionsDisabled, orgSettingsWithCommuteDeductionsEnabled, orgSettingsWithExpenseFormAutofill, orgSettingsWithProjectAndAutofill, orgSettingsWithProjectCategoryRestrictions, orgSettingsWithUnsubscribeEvent, orgSettingsWithV2ExpensesPage, orgSettingsWoAdvance, orgSettingsWoMileage, orgSettingsWoProjects, orgSettingsWoTax, orgSettingsWoTaxAndRtf, orgSettingsWoV2ExpensesPage, taxSettingsData, taxSettingsData2
[error] 665-665: Error: export 'orgSettingsData' (imported as 'orgSettingsData') was not found in 'src/app/core/mock-data/org-settings.data'. Possible exports: orgSettingsCCCDisabled, orgSettingsCCCDisabled2, orgSettingsCCCDisabled3, orgSettingsCCCEnabled, orgSettingsCCDisabled, orgSettingsOrgAutofill, orgSettingsParamWoCCC, orgSettingsParams2, orgSettingsParamsWithAdvanceWallet, orgSettingsParamsWithSimplifiedReport, orgSettingsPendingRestrictions, orgSettingsProjectDisabled, orgSettingsRTFDisabled, orgSettingsRes, orgSettingsWithCommuteDeductionsDisabled, orgSettingsWithCommuteDeductionsEnabled, orgSettingsWithExpenseFormAutofill, orgSettingsWithProjectAndAutofill, orgSettingsWithProjectCategoryRestrictions, orgSettingsWithUnsubscribeEvent, orgSettingsWithV2ExpensesPage, orgSettingsWoAdvance, orgSettingsWoMileage, orgSettingsWoProjects, orgSettingsWoTax, orgSettingsWoTaxAndRtf, orgSettingsWoV2ExpensesPage, taxSettingsData, taxSettingsData2
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts
[error] 1582-1582: TS2339: Property 'isNewReportsFlowEnabled' does not exist on type 'AddEditExpensePage'.
🔇 Additional comments (30)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (1)
90-90: Style! Clean removal of deprecated feature flag, boss!This change perfectly aligns with the deprecation of simplified report settings. The mock data no longer needs the
isNewReportsFlowEnabledproperty since it's being removed from the component interface. Mass clean-up done with Rajini style precision!src/app/fyle/my-view-report/my-view-report.page.html (1)
48-50: Superb! Template simplified like a true mass hero!Removing the conditional
ng-containerwrapper that depended onsimplifyReportsSettings$observable is the right approach, thalaiva! The report state pill will now render unconditionally, making the code simpler and more predictable. No more waiting for observables - direct action, Rajini style!src/app/fyle/view-per-diem/view-per-diem.page.spec.ts (1)
465-465: Perfect! Test description updated with mass precision!The test description correctly reflects the current functionality by removing the reference to
isNewReportsFlowEnabled. Now it focuses only on verifying thatorgSettingsis set properly. Clean and accurate testing - that's how a superstar does it!src/app/fyle/view-team-report/view-team-report.page.html (1)
53-55: Excellent! Another template cleaned with mass style!Just like the previous template, removing the conditional rendering based on
simplifyReportsSettings$observable makes the code simpler and more reliable, boss! The report state pill will now display without any conditional delays. Consistency across templates - that's the Rajini way!src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts (1)
50-50: Fantastic! Input property removed with superstar precision!Removing the
@Input() isNewReportsFlowEnabled: boolean;property is the perfect move, thalaiva! This cleans up the component interface by eliminating unused properties related to the deprecated simplified report settings feature. The component is now leaner and meaner - Rajini style efficiency!src/app/fyle/my-reports/my-reports.page.html (1)
104-112: Template simplification looks stylish, boss!Good work removing the async subscription and conditional logic for the deprecated
simplifyReportsSettings$. Setting[simplifyReportsEnabled]="true"directly is clean and efficient - no unnecessary async operations anymore, superstar!src/app/fyle/view-mileage/view-mileage.page.ts (1)
100-100: Clean removal of deprecated property - mass!Removing the
isNewReportsFlowEnabledproperty is perfect, boss! This aligns with the deprecation of simplify report settings across the application.src/app/fyle/team-reports/team-reports.page.html (1)
76-84: Consistency is king, boss!Excellent work applying the same template simplification pattern as in my-reports.page.html. Removing the async subscription and conditional logic while directly setting
[simplifyReportsEnabled]="true"is the right approach, thalaivar!src/app/fyle/view-per-diem/view-per-diem.page.ts (1)
89-89: Property removal done with style, superstar!Perfect consistency with the other view pages! Removing the
isNewReportsFlowEnabledproperty and its assignment is exactly what's needed for the deprecation of simplify report settings, boss!src/app/fyle/dashboard/stats/stats.component.ts (1)
50-50: Observable removal executed with mass style!Removing the
simplifyReportsSettings$observable and cleaning up the forkJoin aggregation is perfect, thalaivar! The component is now leaner and doesn't need to track the deprecated settings anymore - that's how we do it, boss!src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts (1)
44-45: Double-check downstream references to the removed flagFlag
isNewReportsFlowEnabledhas evaporated like camphor, macha! Make sure no template or parent component still tries to bind to it, otherwise Angular will throw a “can’t bind” tantrum at runtime.Ping me if you’d like a quick repo-scan script to confirm zero references.
src/app/fyle/dashboard/stats/stats.component.html (2)
61-66: Translation key sanity
'stats.submitted'is now unconditional. All good, provided the key exists for every locale and means “Submitted” for both old & new flows. Please verify the i18n files, boss.
88-96: Processing badge label – still accurate for reimbursable orgs?Earlier the label flipped between processing and payment pending. After the purge, reimbursable orgs also see processing. If that wording matters for finance folks, this change could confuse them. Worth a UX nod.
src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts (3)
239-239: Style! The property cleanup is mass-level perfect!This removal of the
isNewReportsFlowEnabledproperty declaration is as smooth as my signature move, thalaivar! The code flows better without this unnecessary flag cluttering the class properties. Just like how I remove obstacles in my films, you've removed this feature flag obstacle from the codebase!
896-896: Superb! The orgSettings subscription cleanup is first-class!Boss, this removal of the
isNewReportsFlowEnabledassignment from theorgSettings$.subscribeblock is perfectly executed! No more checking forsimplified_report_closure_settings?.enabled- the logic is now simplified and direct, just like my action sequences. The subscription block is cleaner and more focused on what matters.
1-3: Mind it! This complexity issue needs your attention, da!Boss, this file has a TODO comment mentioning it's "Very hard to fix without massive changes" and has complexity disabled via eslint. While the current changes are good, this technical debt should be addressed in a future refactoring. A file this large and complex can become a maintenance nightmare - even Rajinikanth would struggle with such complexity!
Consider breaking this massive component into smaller, focused components to improve maintainability. The current file is over 2300 lines which is quite hefty for a single component.
src/app/fyle/team-reports/team-reports.page.ts (1)
752-875: Superb removal of the simplifyReportsSettings$ logic!The elimination of
simplifyReportsSettings$from theopenFiltersmethod is executed with perfect precision. The filter options now depend solely on the core logic without the unnecessary feature flag. This is exactly how feature deprecation should be done!src/app/fyle/my-expenses/my-expenses.page.ts (1)
1494-1496: Perfect removal of the feature flag from dialog data!The elimination of
isNewReportsFlowEnabledfrom theAddTxnToReportDialogComponentdata is executed flawlessly. The dialog now receives only the essentialopenReportsdata, making the code cleaner and more focused. This is the way to deprecate features - with style and precision!src/app/shared/components/fy-filters/fy-filters.component.ts (1)
70-74: Magnificent simplification of the filter logic!The removal of
forkJoinandsimplifyReportsSettings$dependency is executed with perfect style! Now the filter options depend solely onnonReimbursableOrg$, making the code much cleaner and easier to maintain. This is exactly how feature deprecation should be done - with precision and elegance!src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
37-37: Superb addition, my friend!The import is spot-on and will serve the tests well. Style-la iruku!
src/app/fyle/my-reports/my-reports.page.ts (1)
1005-1007: Verify downstream consumers after axingsimplifyReportsSettings$
openFilters()now only feedsnonReimbursableOrg$to the modal. Good move. Just double-check thatFyFiltersComponent(and any tests/mocks) no longer expect the oldsimplifyReportsSettings$orisNewReportsFlowEnabledinputs, else compilation will punch back.No code change needed here; only a sanity pass.
src/app/core/mock-data/modal-controller.data.ts (1)
352-357: Mock data cleanup acknowledged – hero work!The stub for
teamReportsModalControllerParamsdrops the obsoletesimplifyReportsSettings$field. Looks spotless and keeps the trailing comma legal. Nothing else to add.src/app/fyle/my-expenses/my-expenses.page.spec.ts (3)
525-541: Superb! Test description cleaned up perfectly, just like removing unwanted scenes from a movie!The test description has been properly updated to focus only on the remaining feature flags (isInstaFyleEnabled, isMileageEnabled, isPerDiemEnabled) while removing the deprecated isNewReportsFlowEnabled reference. Style-ah!
543-567: Excellent cleanup, machaan! The test description is now crystal clear!Another proper update removing the isNewReportsFlowEnabled reference while keeping the core test functionality intact. This is how you do surgical precision in code cleanup!
569-589: Perfect execution, thalaivar! The test description is now focused on what matters!The test description has been appropriately updated to remove the deprecated flag reference while maintaining focus on the remaining feature flags. Clean and crisp!
src/app/fyle/add-edit-expense/add-edit-expense.page.ts (1)
437-437: Style-u! This cleanup is mass-u!Thalaiva, this removal of the
isNewReportsFlowEnabledproperty is exactly what we need! The simplified report closure settings deprecation is happening like a Rajini movie - smooth, stylish, and with perfect timing. No more unnecessary flags cluttering our component, just clean code that works like magic, mind it!src/app/fyle/view-expense/view-expense.page.ts (1)
128-128: Property removal executed with style, like a perfect action sequence!The removal of
isNewReportsFlowEnabledis exactly what's needed for this deprecation mission. Clean and precise, just like how I handle my enemies on screen.src/app/fyle/view-expense/view-expense.page.spec.ts (1)
806-819: Test logic is solid, but needs the right mock data, superstar!The test for handling null
simplified_report_closure_settingsis perfectly written. But it's using the wrong mock data that doesn't exist. After fixing the import, update the test accordingly.After fixing the import issue, update the test to use the correct mock data:
- of({ - ...cloneDeep(orgSettingsData), - simplified_report_closure_settings: null, - }) + of({ + ...cloneDeep(orgSettingsRes), + simplified_report_closure_settings: null, + })And also update the expectation:
- expect(component.orgSettings).toEqual({ - ...cloneDeep(orgSettingsData), - simplified_report_closure_settings: null, - }); + expect(component.orgSettings).toEqual({ + ...cloneDeep(orgSettingsRes), + simplified_report_closure_settings: null, + });src/app/fyle/dashboard/stats/stats.component.spec.ts (2)
179-179: Superstar! This change makes the test more realistic, style!Calling
ngOnInit()instead ofinitializeReportStats()directly makes this test more of an integration test, which is good practice thalaivar! It tests the component's initialization flow more holistically.
181-181: Perfect alignment with the feature removal, mass!The expectation change to
reportStatsData1is correct boss! This mock data doesn't include thesimplifyReportsSettingsproperty that was removed as part of the simplified report closure settings cleanup. The test now validates the correct data structure after the feature removal.
| *ngIf="(nonReimbursableOrg$ | async) !== null; else loading" | ||
| > |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Handle undefined like a superstar
Boss, right now the check ignores only null. If the observable emits undefined first (pretty common with async pipes), the template will skip the skeleton and show empty options – looks odd to the user.
-*ngIf="(nonReimbursableOrg$ | async) !== null; else loading"
+*ngIf="(nonReimbursableOrg$ | async) != null; else loading"Using != (loose) or a truthy check guards both null and undefined in one shot.
🤖 Prompt for AI Agents
In src/app/shared/components/fy-filters/fy-filters.component.html around lines
67 to 68, the current check only excludes null but not undefined, causing the
template to skip the loading skeleton prematurely. Update the *ngIf condition to
use a loose inequality check (!= null) or a truthy check to handle both null and
undefined values, ensuring the loading skeleton displays correctly until the
observable emits a valid value.
| @Inject(MAT_BOTTOM_SHEET_DATA) public data: { openReports: Report[] }, | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Duplicated source of truth for openReports
You accept openReports via both @Input() and MAT_BOTTOM_SHEET_DATA. Two doors for the same guest can cause confusion.
Option 1 – lean on DI only:
- @Input() openReports;
+ // @Input() openReports; // removed, DI rulesOption 2 – keep the input but rename one of them to avoid clashes.
Pick one path, walk in style.
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts
around lines 19 to 20, you are receiving the openReports data both via @Input()
and MAT_BOTTOM_SHEET_DATA injection, causing duplication and potential
confusion. Choose one method to provide openReports: either rely solely on
dependency injection with MAT_BOTTOM_SHEET_DATA or keep the @Input() but rename
one of the properties to avoid naming conflicts. Remove the redundant source
accordingly to maintain a single source of truth.
| this.simplifyReportsSettings$ = orgSettings$.pipe( | ||
| map((orgSettings) => ({ enabled: this.getReportClosureSettings(orgSettings) })) | ||
| ); | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Another empty line that needs attention, boss!
Similar to line 122, this leftover empty line from the simplifyReportsSettings$ removal should be cleaned up for better code aesthetics.
-Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/app/fyle/view-team-report/view-team-report.page.ts at line 300, there is
an unnecessary empty line leftover from the removal of simplifyReportsSettings$.
Remove this empty line to maintain clean and consistent code formatting.
| canShowTooltip = false; | ||
|
|
||
| simplifyReportsSettings$: Observable<{ enabled: boolean }>; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Mass clean-up operation successful, but style can be improved, superstar!
The removal of simplifyReportsSettings$ is spot-on with the deprecation effort. However, this empty line is like a cigarette stub after finishing the full pack - better to clean it up completely.
-Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/app/fyle/view-team-report/view-team-report.page.ts at line 122, there is
an unnecessary empty line left after removing the `simplifyReportsSettings$`
code. Remove this empty line to clean up the code and improve style consistency.
| import { cloneDeep } from 'lodash'; | ||
| import { orgSettingsData, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import issue causing pipeline failure - time to fix this like a boss!
The pipeline is screaming because orgSettingsData is not found in the exports. When the pipeline fails, Rajinikanth doesn't ignore it - he fixes it with style!
Based on the available exports in the pipeline failure, use one of the existing mock data objects:
-import { orgSettingsData, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data';
+import { orgSettingsRes, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data';📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| import { cloneDeep } from 'lodash'; | |
| import { orgSettingsData, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data'; | |
| import { cloneDeep } from 'lodash'; | |
| import { orgSettingsRes, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data'; |
🤖 Prompt for AI Agents
In src/app/fyle/view-expense/view-expense.page.spec.ts at lines 63-64, the
import of orgSettingsData is causing pipeline failure because it is not
exported. Remove orgSettingsData from the import statement and only import
orgSettingsWoMileage or any other valid exported mock data object from
'src/app/core/mock-data/org-settings.data' to fix the import error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
🔭 Outside diff range comments (1)
src/app/fyle/my-expenses/my-expenses.page.spec.ts (1)
569-589: This test case is like my style - unique and handles exceptions brilliantly!Boss, this test case is testing the scenario where
insta_fyle_settings.allowedis false while keeping the org settings enabled. The logic is correct - onlyisInstaFyleEnabledshould be false while mileage and per diem remain true.But wait, there's a small inconsistency here! The test is only modifying
insta_fyle_settings.allowedto false, but the test description says "orgSettings and employeeSettings properties are not allowed" - this might be misleading since you're only testing one specific property.Consider updating the test description to be more specific: "should set isInstaFyleEnabled to false when insta_fyle_settings.allowed is false"
♻️ Duplicate comments (14)
src/app/shared/components/fy-filters/fy-filters.component.html (1)
67-67: Superb! The template simplification is mass, but there's a small style issue!The removal of
simplifyReportsSettings$dependency is perfect for the deprecation effort - when you remove a feature, you remove it completely, that's my style!However, boss, there's still the issue mentioned in the past review about handling
undefinedvalues. The current check!== nullshould be!= nullto handle bothnullandundefinedlike a true superstar!src/app/fyle/view-mileage/view-mileage.page.ts (1)
377-377: Fix the trailing spaces, thalaivar!The linter has spotted trailing spaces on this line. Clean it up for perfect code style, superstar!
- +src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (1)
19-19: Simple and powerful data injection, Thalaivar style!Removing
isNewReportsFlowEnabledfrom the injected data type - this is like removing unnecessary dialogue from a Rajinikanth movie, keeping only what's essential!src/app/fyle/my-expenses/my-expenses.page.ts (2)
199-199: Style, my friend! This empty line needs to go!This empty line was left behind after removing the
isNewReportsFlowEnabledproperty. Clean code is like a well-choreographed action sequence - no unnecessary elements!
498-498: Precision is everything, my friend!These trailing spaces are like unwanted extras in my movie scene - they need to be removed for clean code!
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
1983-1996: Style-a! These tests are like fighting a battle that's already won, boss!The tests for
checkNewReportsFlow()have the same issues mentioned in previous reviews - missingfakeAsyncwrapper, undefinedorgSettings$, and incomplete assertions. But more importantly, you're testing deprecated functionality that's being removed in this PR!Since the simplified report closure settings are being eliminated, these tests should be removed entirely instead of fixed.
- describe('checkNewReportsFlow():', () => { - it('should check for new reports flow, if simplified report closure setting is not enabled', () => { - component.checkNewReportsFlow(orgSettings$); - tick(500); - expect(orgSettingsService.get).toHaveBeenCalledTimes(1); - }); - - it('should check for new reports flow, if simplified report closure setting is enabled', () => { - orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport)); - component.checkNewReportsFlow(orgSettings$); - tick(500); - expect(orgSettingsService.get).toHaveBeenCalledTimes(1); - }); - });src/app/fyle/view-expense/view-expense.page.ts (1)
398-398: Trailing spaces detected - time for some cleanup action!These trailing spaces are disturbing the peace of our codebase. Even the linter is complaining about it, and when the linter complains, Rajinikanth fixes it immediately.
- +src/app/shared/components/fy-filters/fy-filters.component.ts (1)
14-14: Clean up this empty line, superstar!Style is everything! Remove this empty line left behind after the
simplifyReportsSettings$input removal. Keep the code as sharp as a sword!-src/app/fyle/team-reports/team-reports.page.ts (1)
89-89: Clean up the empty line, my friend!Style, it's very simple - remove this empty line left behind after the
simplifyReportsSettings$property removal. Even the smallest details matter in coding, just like in cinema!-src/app/fyle/my-reports/my-reports.page.ts (1)
91-91: One punch, one line – remove the orphan blank line, boss!That lonely blank line after
filterPills = [];serves no purpose and breaks the sleek flow of the class property block. Slice it out for a crisper file.-src/app/fyle/view-team-report/view-team-report.page.ts (2)
122-122: Mind it! This empty line is like a scene left after the villain is defeated, thalaivar!Style, I tell you! Clean code is like a perfectly choreographed fight sequence - no unnecessary elements left behind.
300-300: Another empty line standing there like a background dancer without music, boss!Just like how I remove all obstacles in my path, remove this empty line too for that perfect code flow, machaan!
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (1)
1086-1090: Ayya, this method is still hanging around like a villain in the climax scene!The
checkNewReportsFlowmethod remains empty and useless, machaan! TheorgSettingsparameter is unused and there are trailing spaces - this is the same issue that was already flagged in previous reviews.src/app/fyle/view-expense/view-expense.page.spec.ts (1)
63-64: Import issue causing pipeline failure - time to fix this like a boss!The pipeline is screaming because
orgSettingsDatais not found in the exports. When the pipeline fails, Rajinikanth doesn't ignore it - he fixes it with style!Based on the available exports in the pipeline failure, use one of the existing mock data objects:
-import { orgSettingsData, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data'; +import { orgSettingsRes, orgSettingsWoMileage } from 'src/app/core/mock-data/org-settings.data';
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (42)
src/app/core/mock-data/modal-controller.data.ts(1 hunks)src/app/core/mock-data/my-reports.data.ts(0 hunks)src/app/core/mock-data/org-settings.data.ts(0 hunks)src/app/core/mock-data/report-stats-data.data.ts(0 hunks)src/app/core/models/org-settings.model.ts(0 hunks)src/app/core/models/report-stats-data.model.ts(0 hunks)src/app/core/services/org-settings.service.ts(0 hunks)src/app/core/test-data/org-settings.service.spec.data.ts(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts(2 hunks)src/app/fyle/add-edit-expense/add-edit-expense.page.html(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense.page.ts(2 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.html(0 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts(2 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.html(0 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts(2 hunks)src/app/fyle/dashboard/stats/stats.component.html(2 hunks)src/app/fyle/dashboard/stats/stats.component.spec.ts(1 hunks)src/app/fyle/dashboard/stats/stats.component.ts(1 hunks)src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts(1 hunks)src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts(1 hunks)src/app/fyle/my-expenses/my-expenses.page.spec.ts(3 hunks)src/app/fyle/my-expenses/my-expenses.page.ts(4 hunks)src/app/fyle/my-reports/my-reports.page.html(1 hunks)src/app/fyle/my-reports/my-reports.page.ts(3 hunks)src/app/fyle/my-view-report/my-view-report.page.html(1 hunks)src/app/fyle/my-view-report/my-view-report.page.spec.ts(0 hunks)src/app/fyle/my-view-report/my-view-report.page.ts(2 hunks)src/app/fyle/team-reports/team-reports-1.page.spec.ts(0 hunks)src/app/fyle/team-reports/team-reports.page.html(1 hunks)src/app/fyle/team-reports/team-reports.page.ts(2 hunks)src/app/fyle/view-expense/view-expense.page.spec.ts(2 hunks)src/app/fyle/view-expense/view-expense.page.ts(2 hunks)src/app/fyle/view-mileage/view-mileage.page.ts(2 hunks)src/app/fyle/view-per-diem/view-per-diem.page.spec.ts(1 hunks)src/app/fyle/view-per-diem/view-per-diem.page.ts(2 hunks)src/app/fyle/view-team-report/view-team-report.page.html(1 hunks)src/app/fyle/view-team-report/view-team-report.page.ts(3 hunks)src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts(1 hunks)src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts(1 hunks)src/app/shared/components/fy-filters/fy-filters.component.html(1 hunks)src/app/shared/components/fy-filters/fy-filters.component.spec.ts(0 hunks)src/app/shared/components/fy-filters/fy-filters.component.ts(2 hunks)
💤 Files with no reviewable changes (13)
- src/app/core/mock-data/my-reports.data.ts
- src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.html
- src/app/fyle/add-edit-expense/add-edit-expense.page.html
- src/app/fyle/add-edit-mileage/add-edit-mileage.page.html
- src/app/shared/components/fy-filters/fy-filters.component.spec.ts
- src/app/core/models/org-settings.model.ts
- src/app/core/models/report-stats-data.model.ts
- src/app/core/services/org-settings.service.ts
- src/app/fyle/my-view-report/my-view-report.page.spec.ts
- src/app/core/mock-data/org-settings.data.ts
- src/app/fyle/team-reports/team-reports-1.page.spec.ts
- src/app/core/mock-data/report-stats-data.data.ts
- src/app/core/test-data/org-settings.service.spec.data.ts
🧰 Additional context used
🧠 Learnings (30)
📓 Common learnings
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
src/app/fyle/team-reports/team-reports.page.html (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
src/app/fyle/view-team-report/view-team-report.page.html (10)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/my-reports/my-reports.page.html (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
src/app/fyle/view-per-diem/view-per-diem.page.spec.ts (7)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-checks.model.ts:1-1
Timestamp: 2024-11-25T08:30:23.873Z
Learning: JSDoc documentation is not needed for the 'PasswordChecks' interface in 'src/app/shared/components/password-check-tooltip/password-checks.model.ts'.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
src/app/fyle/my-view-report/my-view-report.page.html (10)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
src/app/fyle/view-per-diem/view-per-diem.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
src/app/shared/components/fy-filters/fy-filters.component.html (14)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3423
File: src/app/fyle/spender-onboarding/spender-onboarding.page.html:26-26
Timestamp: 2025-01-20T02:29:11.594Z
Learning: In Angular templates, ngClass bindings should use object literal syntax (e.g., `[ngClass]="{'class-name': condition}"`) instead of ternary operators, as per the team's convention.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.ts:28-39
Timestamp: 2024-11-26T14:46:59.599Z
Learning: In the Angular application, the password validation logic implemented in `password-check-tooltip.component.ts` matches the existing password validation elsewhere in the app. Future validations should maintain this consistency.
src/app/fyle/dashboard/stats/stats.component.html (4)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3290
File: src/app/auth/disabled/disabled.page.html:18-30
Timestamp: 2024-12-04T14:33:07.038Z
Learning: In `src/app/auth/disabled/disabled.page.html`, for the `ion-button` elements, both the `btn-primary` class and `fill="clear"` attribute are required as per the design specifications.
src/app/fyle/view-mileage/view-mileage.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/auth/new-password/new-password.page.ts:58-59
Timestamp: 2024-12-09T06:39:06.957Z
Learning: In the Angular application, `updateOn: 'blur'` is not used in form control initializations, so we should avoid using it to maintain consistency across the app.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/my-expenses/my-expenses.page.ts (16)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3311
File: src/app/shared/components/expenses-card-v2/expenses-card.component.scss:115-118
Timestamp: 2024-12-09T06:28:38.240Z
Learning: Do not suggest adding smooth transitions to the `&--receipt-container` class in `expenses-card.component.scss`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.html:37-44
Timestamp: 2024-12-06T10:17:25.619Z
Learning: In `src/app/auth/pending-verification/pending-verification.page.html`, using `ion-button` may introduce additional CSS that is not required; prefer using a standard `button` element instead.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3285
File: src/app/post-verification/invited-user/invited-user.page.scss:152-156
Timestamp: 2024-12-03T04:28:55.015Z
Learning: When reviewing `src/app/post-verification/invited-user/invited-user.page.scss`, do not suggest adding interactivity to the back icon styling unless specifically requested by the user.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:97-98
Timestamp: 2024-12-04T05:23:21.200Z
Learning: In 'src/app/post-verification/invited-user/invited-user.page.ts', the 'password' and 'fullName' obtained from 'this.fg.controls.password.value' and 'this.fg.controls.fullName.value' will always be strings, so additional error handling for type checking is unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/dashboard/stats/stats.component.ts (9)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
src/app/fyle/team-reports/team-reports.page.ts (14)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3285
File: src/app/post-verification/invited-user/invited-user.page.scss:152-156
Timestamp: 2024-12-03T04:28:55.015Z
Learning: When reviewing `src/app/post-verification/invited-user/invited-user.page.scss`, do not suggest adding interactivity to the back icon styling unless specifically requested by the user.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.html:37-44
Timestamp: 2024-12-06T10:17:25.619Z
Learning: In `src/app/auth/pending-verification/pending-verification.page.html`, using `ion-button` may introduce additional CSS that is not required; prefer using a standard `button` element instead.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3721
File: src/app/fyle/my-profile/my-profile.page.ts:137-153
Timestamp: 2025-06-18T06:14:36.495Z
Learning: User sumrender prefers explicit, readable code structure over concise RxJS operator chains. They value clarity and straightforward logic flow in navigation handling rather than consolidated functional programming approaches.
src/app/fyle/view-team-report/view-team-report.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3285
File: src/app/post-verification/invited-user/invited-user.page.scss:152-156
Timestamp: 2024-12-03T04:28:55.015Z
Learning: When reviewing `src/app/post-verification/invited-user/invited-user.page.scss`, do not suggest adding interactivity to the back icon styling unless specifically requested by the user.
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (11)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3259
File: src/app/core/services/personal-cards.service.spec.ts:0-0
Timestamp: 2024-11-13T10:19:42.138Z
Learning: When the type can be inferred in TypeScript tests, avoid suggesting explicit type-checking for return values.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/view-expense/view-expense.page.ts (15)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3615
File: src/app/fyle/add-edit-expense/add-edit-expense.page.ts:466-467
Timestamp: 2025-03-20T12:53:30.721Z
Learning: The showBillable property in AddEditExpensePage class should be initialized with false as the default value to ensure the billable field is hidden by default.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:97-98
Timestamp: 2024-12-04T05:23:21.200Z
Learning: In 'src/app/post-verification/invited-user/invited-user.page.ts', the 'password' and 'fullName' obtained from 'this.fg.controls.password.value' and 'this.fg.controls.fullName.value' will always be strings, so additional error handling for type checking is unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3311
File: src/app/shared/components/expenses-card-v2/expenses-card.component.scss:115-118
Timestamp: 2024-12-09T06:28:38.240Z
Learning: Do not suggest adding smooth transitions to the `&--receipt-container` class in `expenses-card.component.scss`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.html:37-44
Timestamp: 2024-12-06T10:17:25.619Z
Learning: In `src/app/auth/pending-verification/pending-verification.page.html`, using `ion-button` may introduce additional CSS that is not required; prefer using a standard `button` element instead.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
src/app/fyle/my-reports/my-reports.page.ts (9)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
src/app/fyle/my-expenses/my-expenses.page.spec.ts (12)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for PasswordCheckTooltipComponent in password-check-tooltip.component.spec.ts, password change scenarios are handled in separate test cases.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
src/app/shared/components/fy-filters/fy-filters.component.ts (13)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.html:37-44
Timestamp: 2024-12-06T10:17:25.619Z
Learning: In `src/app/auth/pending-verification/pending-verification.page.html`, using `ion-button` may introduce additional CSS that is not required; prefer using a standard `button` element instead.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
src/app/fyle/my-view-report/my-view-report.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
src/app/fyle/dashboard/stats/stats.component.spec.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
src/app/fyle/view-expense/view-expense.page.spec.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3259
File: src/app/core/services/personal-cards.service.spec.ts:0-0
Timestamp: 2024-11-13T10:19:42.138Z
Learning: When the type can be inferred in TypeScript tests, avoid suggesting explicit type-checking for return values.
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (12)
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3284
File: src/app/auth/verify/verify.page.ts:0-0
Timestamp: 2024-11-27T07:03:32.242Z
Learning: In src/app/auth/verify/verify.page.ts, prefer to retain the existing error handling flow in the handleError method without adding user messages via ToastController.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
src/app/core/mock-data/modal-controller.data.ts (10)
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/add-edit-expense/add-edit-expense.page.ts (13)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3615
File: src/app/fyle/add-edit-expense/add-edit-expense.page.ts:466-467
Timestamp: 2025-03-20T12:53:30.721Z
Learning: The showBillable property in AddEditExpensePage class should be initialized with false as the default value to ensure the billable field is hidden by default.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
🧬 Code Graph Analysis (5)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (1)
src/app/core/mock-data/platform-report.data.ts (1)
expectedReportsSinglePage(864-864)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (1)
src/app/core/models/platform/v1/report.model.ts (1)
Report(5-65)
src/app/fyle/my-reports/my-reports.page.ts (1)
src/app/shared/components/fy-filters/filter-options.interface.ts (1)
FilterOptions(3-9)
src/app/fyle/dashboard/stats/stats.component.spec.ts (1)
src/app/core/mock-data/report-stats-data.data.ts (1)
reportStatsData1(6-11)
src/app/fyle/view-expense/view-expense.page.spec.ts (1)
src/app/core/test-data/org-settings.service.spec.data.ts (1)
orgSettingsData(1067-1474)
🪛 GitHub Check: Run linters
src/app/fyle/view-mileage/view-mileage.page.ts
[failure] 377-377:
Trailing spaces not allowed
src/app/fyle/my-expenses/my-expenses.page.ts
[failure] 498-498:
Trailing spaces not allowed
src/app/fyle/view-expense/view-expense.page.ts
[failure] 398-398:
Trailing spaces not allowed
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[failure] 1088-1088:
Trailing spaces not allowed
🪛 GitHub Actions: Unit Tests
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts
[error] 1582-1582: TS2339: Property 'isNewReportsFlowEnabled' does not exist on type 'AddEditExpensePage'.
src/app/fyle/view-expense/view-expense.page.spec.ts
[error] 658-658: Error: export 'orgSettingsData' (imported as 'orgSettingsData') was not found in 'src/app/core/mock-data/org-settings.data'. Possible exports: orgSettingsCCCDisabled, orgSettingsCCCDisabled2, orgSettingsCCCDisabled3, orgSettingsCCCEnabled, orgSettingsCCDisabled, orgSettingsOrgAutofill, orgSettingsParamWoCCC, orgSettingsParams2, orgSettingsParamsWithAdvanceWallet, orgSettingsParamsWithSimplifiedReport, orgSettingsPendingRestrictions, orgSettingsProjectDisabled, orgSettingsRTFDisabled, orgSettingsRes, orgSettingsWithCommuteDeductionsDisabled, orgSettingsWithCommuteDeductionsEnabled, orgSettingsWithExpenseFormAutofill, orgSettingsWithProjectAndAutofill, orgSettingsWithProjectCategoryRestrictions, orgSettingsWithUnsubscribeEvent, orgSettingsWithV2ExpensesPage, orgSettingsWoAdvance, orgSettingsWoMileage, orgSettingsWoProjects, orgSettingsWoTax, orgSettingsWoTaxAndRtf, orgSettingsWoV2ExpensesPage, taxSettingsData, taxSettingsData2
[error] 665-665: Error: export 'orgSettingsData' (imported as 'orgSettingsData') was not found in 'src/app/core/mock-data/org-settings.data'. Possible exports: orgSettingsCCCDisabled, orgSettingsCCCDisabled2, orgSettingsCCCDisabled3, orgSettingsCCCEnabled, orgSettingsCCDisabled, orgSettingsOrgAutofill, orgSettingsParamWoCCC, orgSettingsParams2, orgSettingsParamsWithAdvanceWallet, orgSettingsParamsWithSimplifiedReport, orgSettingsPendingRestrictions, orgSettingsProjectDisabled, orgSettingsRTFDisabled, orgSettingsRes, orgSettingsWithCommuteDeductionsDisabled, orgSettingsWithCommuteDeductionsEnabled, orgSettingsWithExpenseFormAutofill, orgSettingsWithProjectAndAutofill, orgSettingsWithProjectCategoryRestrictions, orgSettingsWithUnsubscribeEvent, orgSettingsWithV2ExpensesPage, orgSettingsWoAdvance, orgSettingsWoMileage, orgSettingsWoProjects, orgSettingsWoTax, orgSettingsWoTaxAndRtf, orgSettingsWoV2ExpensesPage, taxSettingsData, taxSettingsData2
🪛 GitHub Actions: Lint
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[warning] 131-131: ESLint warning: Hard-coded string "edit" should be replaced with a translation key. Refer to i18n translation file structure.
[error] 1087-1087: ESLint error: 'orgSettings' is defined but never used. (@typescript-eslint/no-unused-vars)
🔇 Additional comments (27)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (1)
90-90: Style! The test data cleanup is perfect, boss!The removal of
isNewReportsFlowEnabledfrom the test data is spot on with the deprecation effort. Just like how I throw away my old sunglasses for new ones, you've thrown away the obsolete property cleanly!src/app/fyle/view-per-diem/view-per-diem.page.spec.ts (1)
465-465: Mass! The test description is updated like a boss!Removing the
isNewReportsFlowEnabledfrom the test name is the right move, my friend. When the feature is gone, the test description should follow suit - that's how legends maintain their code! The test now focuses only on what matters:orgSettings.src/app/fyle/team-reports/team-reports.page.html (1)
76-84: Mind-blowing! The template simplification is absolutely stylish!Setting
[simplifyReportsEnabled]="true"statically is the perfect way to deprecate the feature, boss! Instead of removing the functionality completely, you're making it always available - that's what I call a smooth transition! The removal of the conditionalsimplifyReportsSettings$logic makes the template cleaner and more straightforward.When you deprecate a feature, you don't just destroy it - you transform it into something better! Mass!
src/app/fyle/view-per-diem/view-per-diem.page.ts (1)
89-89: Style! Clean removal of deprecated feature, thalaivar!The
isNewReportsFlowEnabledproperty and its assignment have been cleanly removed as part of the simplify report settings deprecation. The code flows like a mass hero entry - smooth and perfect!Also applies to: 258-258
src/app/fyle/view-mileage/view-mileage.page.ts (1)
100-100: Mass removal done with style, superstar!The
isNewReportsFlowEnabledproperty has been cleanly removed as part of the simplify report settings deprecation. Like removing a villain from the scene - clean and effective!src/app/fyle/my-reports/my-reports.page.html (1)
104-112: Template simplification done with mass style, boss!The removal of
simplifyReportsSettings$observable dependency and hardcodingsimplifyReportsEnabled="true"is a clean approach for deprecating the feature. The template now flows like a Rajini one-liner - direct and powerful!src/app/fyle/view-team-report/view-team-report.page.html (1)
53-55: Unnecessary wrapper removed with Rajini style, thalaivar!The
ng-containerwrapper checking forsimplifyReportsSettings$has been cleanly removed. The report state pill div now renders directly - simple and effective like a mass hero's dialogue delivery!src/app/fyle/dashboard/stats/stats.component.ts (1)
50-50: Mass cleaning done in stats component, superstar!The
simplifyReportsSettings$observable has been removed from the component as part of the feature deprecation. TheforkJoinnow includes only the essential properties - streamlined like a Rajini action sequence!src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts (1)
44-44: Thalaivar style cleanup, boss!Removing unused
@Input() isNewReportsFlowEnabledproperty - this is exactly how we clean up code with style! Just like how Rajinikanth removes villains from movies, you've removed this unused property from the component.src/app/fyle/my-view-report/my-view-report.page.html (1)
48-50: Superb template simplification, my friend!Removing the unnecessary
ng-containerwrapper withsimplifyReportsSettings$async pipe - this is like removing the middleman and going straight to the action! The report state pill now renders directly without waiting for settings that are no longer needed.src/app/fyle/dashboard/stats/stats.component.html (2)
61-61: Direct action like Rajinikanth's punch dialogue!Hardcoding the translation key
'stats.submitted'instead of conditional logic - this is exactly how we simplify code, boss! No more checking flags, just straight to the point like Thalaivar's one-liners.
88-96: Mass badge rendering without complications!The badge now always shows
'stats.processing'without conditional checks - this is like Rajinikanth's style, no confusion, just pure action! The logic is now clean and straightforward.src/app/fyle/dashboard/stats/stats.component.spec.ts (2)
179-179: Perfect test approach like Rajinikanth's perfect timing!Calling
component.ngOnInit()instead of the specific method - this is exactly how we test components, boss! Testing the lifecycle method gives us better coverage of the actual component behavior.
181-181: Focused assertion with mass impact!Simplifying the assertion to just check the emitted value - this is like Rajinikanth's focused dialogue delivery, straight to the point and maximum impact! No unnecessary complexity, just the essential verification.
src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts (2)
239-239: Style! Proper cleanup after removing the feature flag, boss!The blank line removal maintains clean code formatting after the
isNewReportsFlowEnabledproperty elimination. This is exactly how Rajinikanth would do it - no unnecessary clutter!
896-896: Another perfect cleanup, just like in my movies!The formatting cleanup inside the
orgSettings$.subscribeblock is spot-on after removing the simplified report closure settings logic. Clean, crisp, and stylish!src/app/fyle/my-expenses/my-expenses.page.ts (1)
1495-1495: Perfect execution, just like my stunts!The removal of
isNewReportsFlowEnabledfrom the data object is clean and precise. The code now passes only the essentialopenReportsdata to the dialog component, which is exactly what we want!src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
1582-1582: Remove obsoleteisNewReportsFlowEnabledassertions from specsMy friend, the
isNewReportsFlowEnabledproperty has disappeared from the component—tests must follow suit. Please remove these two assertions fromadd-edit-expense-5.spec.ts:• src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts:1582
• src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts:1870Suggested diff:
@@ src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts:1582 - expect(component.isNewReportsFlowEnabled).toBeFalse(); @@ src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts:1870 - expect(component.isNewReportsFlowEnabled).toBeTrue();fix_required
src/app/shared/components/fy-filters/fy-filters.component.ts (1)
70-74: Excellent simplification, boss!The logic is now much cleaner without the unnecessary
forkJoinandsimplifyReportsSettings$dependency. Direct subscription tononReimbursableOrg$is the way to go!src/app/fyle/my-reports/my-reports.page.ts (1)
1005-1007: Perfect component props setup, superstar!The
nonReimbursableOrg$is correctly passed to theFyFiltersComponent, maintaining the filter functionality while removing the deprecatedsimplifyReportsSettings$dependency.src/app/core/mock-data/modal-controller.data.ts (1)
355-355: Semma cleanup work, thalaivar! Just like how I clean up the bad guys in one swift move!The removal of
simplifyReportsSettings$from the modal controller parameters is spot-on with the deprecation mission. Style-aa done, superstar!src/app/fyle/my-expenses/my-expenses.page.spec.ts (2)
525-541: Superstar test case, but don't underestimate the power of edge cases!This test case is testing the positive scenario perfectly, just like how I handle my movie scenes - with style and precision! The test properly verifies that the feature flags are set to true when org settings and employee settings are enabled.
However, boss, one small suggestion - consider adding assertions to verify that the service calls are made with the correct parameters. Currently, you're only checking that the services are called once, but not validating the actual parameters passed.
543-567: Mind it! This negative test case is as solid as my punch dialogues!Excellent work on testing the disabled scenario! The test creates mock data by cloning and modifying the original data, then properly verifies that all feature flags are set to false. The structure is clean and the assertions are comprehensive.
One small enhancement - you could add a comment explaining why we're testing all three flags together, since they seem to be related to different organization settings (insta_fyle, mileage, per_diem).
src/app/fyle/my-view-report/my-view-report.page.ts (1)
109-109: Style! The code is cleaner than ever after removing the deprecated settings, just like how I make my entrance - smooth and flawless!The removal of
simplifyReportsSettings$observable and relatedgetSimplifyReportSettingsmethod has been executed with precision. This cleanup aligns perfectly with the broader deprecation effort across the entire application. The code now flows like a well-choreographed action sequence!Also applies to: 175-175
src/app/fyle/add-edit-expense/add-edit-expense.page.ts (2)
437-437: Style! Property removal executed perfectly!The
isNewReportsFlowEnabledproperty has been cleanly removed from the class declarations. Like removing a villain from the story, the cleanup is complete and leaves no trace behind!
3123-3123: Mass! The deprecated feature assignment has been eliminated with surgical precision!The
isNewReportsFlowEnabledassignment from organization settings has been removed like a perfectly executed stunt sequence. The simplified report closure settings are now history, and the code flows smoother than a Rajini entrance scene!src/app/fyle/view-expense/view-expense.page.spec.ts (1)
806-819: Test changes align perfectly with simplified report settings deprecation - style!The test correctly removes the
isNewReportsFlowEnabledlogic and now properly verifies thatsimplified_report_closure_settingsis set to null. The use ofcloneDeepandtick(100)for async simulation is implemented like a true boss!
| cacheName: this.cacheName, | ||
| customInput: this.customInput, | ||
| subheader: this.subheader, | ||
| enableSearch: this.enableSearch, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Excellent! The input property removal is perfectly executed!
The removal of @Input() isNewReportsFlowEnabled is spot on for the deprecation effort, boss! But there's a small style issue - this empty line can be removed to keep the code as clean as my famous white shirt!
Apply this diff to clean up the empty line:
-
-Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts at
line 50, remove the unnecessary empty line to maintain clean and consistent code
style after the removal of the @Input() isNewReportsFlowEnabled property.
| systemCategoriesWithTaxi: string[]; | ||
|
|
||
| isNewReportsFlowEnabled = false; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Style, it's very simple - clean up this empty line, my friend!
This orphaned empty line is disturbing the class property declaration flow. Even a small detail like this matters in perfect code, just like in cinema!
-📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
🤖 Prompt for AI Agents
In src/app/fyle/view-expense/view-expense.page.ts at line 128, remove the empty
line to maintain a clean and consistent flow in the class property declarations,
ensuring the code style remains tidy and professional.
| enabled: orgSettings?.simplified_report_closure_settings?.enabled, | ||
| })) | ||
| ); | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Style is king - clean up this empty line, my friend!
Remove this empty line left after the orgSettings$ declaration. Perfect code doesn't have unnecessary gaps!
-Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/app/fyle/my-reports/my-reports.page.ts at line 242, there is an
unnecessary empty line after the orgSettings$ declaration. Remove this empty
line to maintain clean and consistent code style without extra gaps.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 11
🔭 Outside diff range comments (5)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (1)
13-20: One source of truth foropenReports, please!You now declare
@Input() openReports;and still injectMAT_BOTTOM_SHEET_DATA, but the property never gets initialised from the injected data. In a Bottom-Sheet context Angular will not bind the input – the only reliable channel is the injected object. Result?openReportswill beundefinedin the template, and the dialog will look as empty as a theatre without Thalaivar.Punch up the code like so:
- @Input() openReports; + openReports: Report[]; ... constructor( private currencyService: CurrencyService, - @Inject(MAT_BOTTOM_SHEET_DATA) public data: { openReports: Report[] }, + @Inject(MAT_BOTTOM_SHEET_DATA) data: { openReports: Report[] }, private matBottomsheet: MatBottomSheet, private router: Router ) { + this.openReports = data.openReports; }This keeps a single authoritative source and side-steps null UI surprises.
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
1582-1582: Fix the pipeline failure by removing deprecated property reference, style!Boss, there's a TypeScript error on line 1582 where
isNewReportsFlowEnabledproperty is being referenced, but this property has been removed from the component as part of the simplified report closure settings deprecation.#!/bin/bash # Description: Find all references to isNewReportsFlowEnabled property in the codebase # Expected: Should find the problematic reference on line 1582 rg -n "isNewReportsFlowEnabled" --type tssrc/app/fyle/my-expenses/my-expenses.page.spec.ts (3)
2789-2791: Wait a minute, boss - there's something fishy here!You're still passing
isNewReportsFlowEnabled: truein the test data, but this PR is supposed to deprecate this flag. This is like keeping the old villain in a new movie - it doesn't make sense!- data: { openReports: expectedReportsSinglePageSubmitted, isNewReportsFlowEnabled: true }, + data: { openReports: expectedReportsSinglePageSubmitted },
2816-2818: Another case of the same issue, my friend!Here too, you're still using the deprecated
isNewReportsFlowEnabled: trueflag. This needs to be removed to be consistent with the PR objective of deprecating simplify report settings.- data: { openReports: mockReportData, isNewReportsFlowEnabled: true }, + data: { openReports: mockReportData },
2840-2843: Same problem here too, boss!The pattern continues - you're still passing the deprecated flag in the test expectations. This needs to be cleaned up to match the PR objective.
- data: { openReports: expectedReportsSinglePage, isNewReportsFlowEnabled: true }, + data: { openReports: expectedReportsSinglePage },
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (42)
src/app/core/mock-data/modal-controller.data.ts(1 hunks)src/app/core/mock-data/my-reports.data.ts(0 hunks)src/app/core/mock-data/org-settings.data.ts(0 hunks)src/app/core/mock-data/report-stats-data.data.ts(0 hunks)src/app/core/models/org-settings.model.ts(0 hunks)src/app/core/models/report-stats-data.model.ts(0 hunks)src/app/core/services/org-settings.service.ts(0 hunks)src/app/core/test-data/org-settings.service.spec.data.ts(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts(2 hunks)src/app/fyle/add-edit-expense/add-edit-expense.page.html(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense.page.ts(2 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.html(0 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts(2 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.html(0 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts(2 hunks)src/app/fyle/dashboard/stats/stats.component.html(2 hunks)src/app/fyle/dashboard/stats/stats.component.spec.ts(1 hunks)src/app/fyle/dashboard/stats/stats.component.ts(1 hunks)src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts(1 hunks)src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts(1 hunks)src/app/fyle/my-expenses/my-expenses.page.spec.ts(3 hunks)src/app/fyle/my-expenses/my-expenses.page.ts(4 hunks)src/app/fyle/my-reports/my-reports.page.html(1 hunks)src/app/fyle/my-reports/my-reports.page.ts(3 hunks)src/app/fyle/my-view-report/my-view-report.page.html(1 hunks)src/app/fyle/my-view-report/my-view-report.page.spec.ts(0 hunks)src/app/fyle/my-view-report/my-view-report.page.ts(2 hunks)src/app/fyle/team-reports/team-reports-1.page.spec.ts(0 hunks)src/app/fyle/team-reports/team-reports.page.html(1 hunks)src/app/fyle/team-reports/team-reports.page.ts(2 hunks)src/app/fyle/view-expense/view-expense.page.spec.ts(2 hunks)src/app/fyle/view-expense/view-expense.page.ts(2 hunks)src/app/fyle/view-mileage/view-mileage.page.ts(2 hunks)src/app/fyle/view-per-diem/view-per-diem.page.spec.ts(1 hunks)src/app/fyle/view-per-diem/view-per-diem.page.ts(2 hunks)src/app/fyle/view-team-report/view-team-report.page.html(1 hunks)src/app/fyle/view-team-report/view-team-report.page.ts(3 hunks)src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts(1 hunks)src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts(1 hunks)src/app/shared/components/fy-filters/fy-filters.component.html(1 hunks)src/app/shared/components/fy-filters/fy-filters.component.spec.ts(0 hunks)src/app/shared/components/fy-filters/fy-filters.component.ts(2 hunks)
💤 Files with no reviewable changes (13)
- src/app/core/mock-data/my-reports.data.ts
- src/app/core/models/report-stats-data.model.ts
- src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.html
- src/app/core/services/org-settings.service.ts
- src/app/fyle/add-edit-expense/add-edit-expense.page.html
- src/app/core/test-data/org-settings.service.spec.data.ts
- src/app/fyle/my-view-report/my-view-report.page.spec.ts
- src/app/core/mock-data/report-stats-data.data.ts
- src/app/core/models/org-settings.model.ts
- src/app/fyle/team-reports/team-reports-1.page.spec.ts
- src/app/shared/components/fy-filters/fy-filters.component.spec.ts
- src/app/fyle/add-edit-mileage/add-edit-mileage.page.html
- src/app/core/mock-data/org-settings.data.ts
🧰 Additional context used
🧠 Learnings (30)
📓 Common learnings
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
src/app/fyle/view-per-diem/view-per-diem.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/shared/components/fy-filters/fy-filters.component.html (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/my-view-report/my-view-report.page.html (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
src/app/fyle/team-reports/team-reports.page.html (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.html:11-11
Timestamp: 2024-12-03T04:18:27.019Z
Learning: In the `src/app/post-verification/invited-user/invited-user.page.html` file, for the "Join" page, displaying a loading template when `fg` (form group) is undefined is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/auth/new-password/new-password.page.ts:58-59
Timestamp: 2024-12-09T06:39:06.957Z
Learning: In the Angular application, `updateOn: 'blur'` is not used in form control initializations, so we should avoid using it to maintain consistency across the app.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/view-mileage/view-mileage.page.ts (11)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/view-per-diem/view-per-diem.page.spec.ts (7)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
src/app/fyle/view-expense/view-expense.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3615
File: src/app/fyle/add-edit-expense/add-edit-expense.page.ts:466-467
Timestamp: 2025-03-20T12:53:30.721Z
Learning: The showBillable property in AddEditExpensePage class should be initialized with false as the default value to ensure the billable field is hidden by default.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
src/app/fyle/dashboard/stats/stats.component.html (10)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3290
File: src/app/auth/disabled/disabled.page.html:18-30
Timestamp: 2024-12-04T14:33:07.038Z
Learning: In `src/app/auth/disabled/disabled.page.html`, for the `ion-button` elements, both the `btn-primary` class and `fill="clear"` attribute are required as per the design specifications.
src/app/fyle/my-reports/my-reports.page.html (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:6-70
Timestamp: 2024-11-26T05:41:37.044Z
Learning: When optimizing Angular templates with repeated code blocks, consider moving conditions and messages into a configuration array and loop over them with *ngFor for better maintainability.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-checks.model.ts:1-1
Timestamp: 2024-11-25T08:30:23.873Z
Learning: JSDoc documentation is not needed for the 'PasswordChecks' interface in 'src/app/shared/components/password-check-tooltip/password-checks.model.ts'.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
src/app/fyle/my-reports/my-reports.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (8)
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
src/app/fyle/view-team-report/view-team-report.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
src/app/fyle/view-team-report/view-team-report.page.html (10)
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/shared/components/fy-filters/fy-filters.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
src/app/fyle/team-reports/team-reports.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3721
File: src/app/fyle/my-profile/my-profile.page.ts:137-153
Timestamp: 2025-06-18T06:14:36.495Z
Learning: User sumrender prefers explicit, readable code structure over concise RxJS operator chains. They value clarity and straightforward logic flow in navigation handling rather than consolidated functional programming approaches.
src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-checks.model.ts:1-1
Timestamp: 2024-11-25T08:30:23.873Z
Learning: JSDoc documentation is not needed for the 'PasswordChecks' interface in 'src/app/shared/components/password-check-tooltip/password-checks.model.ts'.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
src/app/fyle/my-expenses/my-expenses.page.ts (13)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3311
File: src/app/shared/components/expenses-card-v2/expenses-card.component.scss:115-118
Timestamp: 2024-12-09T06:28:38.240Z
Learning: Do not suggest adding smooth transitions to the `&--receipt-container` class in `expenses-card.component.scss`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/add-edit-per-diem/add-edit-per-diem.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/dashboard/stats/stats.component.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
src/app/core/mock-data/modal-controller.data.ts (10)
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.html:14-14
Timestamp: 2024-10-23T09:23:56.684Z
Learning: In this codebase, properties used in Angular templates are not explicitly declared as 'public', since they are public by default in TypeScript.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/my-view-report/my-view-report.page.ts (10)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:0-0
Timestamp: 2024-12-03T05:20:24.662Z
Learning: In the Angular application, the `aria-expanded` attribute is not needed in `password-check-tooltip.component.html`.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The `passwordChecks` variable in `password-check-tooltip.component.html` always has a value, so conditional rendering using `*ngIf` is unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
src/app/fyle/add-edit-expense/add-edit-expense.page.ts (13)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3615
File: src/app/fyle/add-edit-expense/add-edit-expense.page.ts:466-467
Timestamp: 2025-03-20T12:53:30.721Z
Learning: The showBillable property in AddEditExpensePage class should be initialized with false as the default value to ensure the billable field is hidden by default.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
src/app/fyle/my-expenses/my-expenses.page.spec.ts (13)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for PasswordCheckTooltipComponent in password-check-tooltip.component.spec.ts, password change scenarios are handled in separate test cases.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3284
File: src/app/auth/verify/verify.page.html:6-6
Timestamp: 2024-11-27T06:49:14.297Z
Learning: In the Fyle mobile app's src/app/auth/verify/verify.page.html (an Ionic/Angular component), the design does not specify animation for the text on the verify page. Therefore, animations should not be added unless specified in the design.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
src/app/fyle/view-expense/view-expense.page.spec.ts (9)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
src/app/fyle/dashboard/stats/stats.component.spec.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
🧬 Code Graph Analysis (6)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (1)
src/app/core/mock-data/platform-report.data.ts (1)
expectedReportsSinglePage(864-864)
src/app/fyle/my-reports/my-reports.page.ts (1)
src/app/shared/components/fy-filters/filter-options.interface.ts (1)
FilterOptions(3-9)
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
src/app/core/mock-data/org-settings.data.ts (1)
orgSettingsParamsWithSimplifiedReport(1241-1243)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.ts (1)
src/app/core/models/platform/v1/report.model.ts (1)
Report(5-65)
src/app/fyle/view-expense/view-expense.page.spec.ts (1)
src/app/core/test-data/org-settings.service.spec.data.ts (1)
orgSettingsData(1067-1474)
src/app/fyle/dashboard/stats/stats.component.spec.ts (1)
src/app/core/mock-data/report-stats-data.data.ts (1)
reportStatsData1(6-11)
🪛 GitHub Check: Run linters
src/app/fyle/view-mileage/view-mileage.page.ts
[failure] 377-377:
Trailing spaces not allowed
src/app/fyle/view-expense/view-expense.page.ts
[failure] 398-398:
Trailing spaces not allowed
src/app/fyle/my-expenses/my-expenses.page.ts
[failure] 498-498:
Trailing spaces not allowed
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[failure] 1088-1088:
Trailing spaces not allowed
🪛 GitHub Actions: Unit Tests
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts
[error] 1582-1582: TypeScript error TS2339: Property 'isNewReportsFlowEnabled' does not exist on type 'AddEditExpensePage'.
src/app/fyle/view-expense/view-expense.page.spec.ts
[error] 658-658: Import error: export 'orgSettingsData' was not found in 'src/app/core/mock-data/org-settings.data'. Possible exports are: orgSettingsCCCDisabled, orgSettingsCCCDisabled2, orgSettingsCCCDisabled3, orgSettingsCCCEnabled, orgSettingsCCDisabled, orgSettingsOrgAutofill, orgSettingsParamWoCCC, orgSettingsParams2, orgSettingsParamsWithAdvanceWallet, orgSettingsParamsWithSimplifiedReport, orgSettingsPendingRestrictions, orgSettingsProjectDisabled, orgSettingsRTFDisabled, orgSettingsRes, orgSettingsWithCommuteDeductionsDisabled, orgSettingsWithCommuteDeductionsEnabled, orgSettingsWithExpenseFormAutofill, orgSettingsWithProjectAndAutofill, orgSettingsWithProjectCategoryRestrictions, orgSettingsWithUnsubscribeEvent, orgSettingsWithV2ExpensesPage, orgSettingsWoAdvance, orgSettingsWoMileage, orgSettingsWoProjects, orgSettingsWoTax, orgSettingsWoTaxAndRtf, orgSettingsWoV2ExpensesPage, taxSettingsData, taxSettingsData2.
[error] 665-665: Import error: export 'orgSettingsData' was not found in 'src/app/core/mock-data/org-settings.data'. Possible exports are: orgSettingsCCCDisabled, orgSettingsCCCDisabled2, orgSettingsCCCDisabled3, orgSettingsCCCEnabled, orgSettingsCCDisabled, orgSettingsOrgAutofill, orgSettingsParamWoCCC, orgSettingsParams2, orgSettingsParamsWithAdvanceWallet, orgSettingsParamsWithSimplifiedReport, orgSettingsPendingRestrictions, orgSettingsProjectDisabled, orgSettingsRTFDisabled, orgSettingsRes, orgSettingsWithCommuteDeductionsDisabled, orgSettingsWithCommuteDeductionsEnabled, orgSettingsWithExpenseFormAutofill, orgSettingsWithProjectAndAutofill, orgSettingsWithProjectCategoryRestrictions, orgSettingsWithUnsubscribeEvent, orgSettingsWithV2ExpensesPage, orgSettingsWoAdvance, orgSettingsWoMileage, orgSettingsWoProjects, orgSettingsWoTax, orgSettingsWoTaxAndRtf, orgSettingsWoV2ExpensesPage, taxSettingsData, taxSettingsData2.
🪛 GitHub Actions: Lint
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[warning] 131-131: ESLint warning: Hard-coded string "edit" should be replaced with a translation key. Refer to https://www.notion.so/fyleuniverse/i18n-translation-file-structure-1ea2ed8bfcb3803da113d3bfc2774ec1#1ea2ed8bfcb3809a9a0ddc05a548eb49 for more details (@fyle/no-hardcoded-strings)
[error] 1087-1087: ESLint error: 'orgSettings' is defined but never used (@typescript-eslint/no-unused-vars)
🔇 Additional comments (31)
src/app/fyle/my-expenses/add-txn-to-report-dialog/add-txn-to-report-dialog.component.spec.ts (1)
90-90: Boss, this test cleanup is pure style!Perfect removal of the deprecated
isNewReportsFlowEnabledproperty from the test data setup. The test configuration now matches the simplified component interface - no unnecessary properties, just clean and focused testing. Superstar level consistency!src/app/fyle/view-per-diem/view-per-diem.page.spec.ts (1)
465-470: Boss, this test update is absolutely mass!The test description and implementation are now perfectly aligned with the component changes. Removed the unnecessary assertion for
isNewReportsFlowEnabledand kept only what matters - theorgSettingsverification. Clean, focused, and exactly what we need. No problem!src/app/shared/components/fy-add-to-report/fy-add-to-report-modal/fy-add-to-report-modal.component.ts (1)
44-44: Boss, this property removal is superstar performance!The
isNewReportsFlowEnabledinput property has been completely eliminated from the component. The modal component is now streamlined and focused on its core functionality without the deprecated flag. Simple, clean, and effective!src/app/fyle/view-team-report/view-team-report.page.html (1)
53-55: Boss, this template simplification is pure style!Removed the unnecessary
<ng-container>wrapper that was subscribing tosimplifyReportsSettings$and now the report state pill renders directly. No more conditional complexity - just straightforward display logic. The template is now clean and focused, just like a superstar performance!src/app/shared/components/fy-add-to-report/fy-add-to-report.component.ts (1)
50-50: Boss, this input property removal is absolutely mass!The
isNewReportsFlowEnabledinput property has been completely removed from the component. The component is now streamlined and no longer needs to handle this deprecated flag. The modal creation logic is also simplified without passing this property. Clean and effective removal - superstar level execution!src/app/fyle/team-reports/team-reports.page.html (1)
76-84: Style! The simplify reports setting is now always enabled, boss!Hardcoding
[simplifyReportsEnabled]="true"is the right approach for deprecating this feature. No more checking observables - just straight-up enabling it for all report cards. That's how a superstar does it!src/app/shared/components/fy-filters/fy-filters.component.html (1)
67-67: Superb simplification of the filter condition, boss!Removing the dependency on
simplifyReportsSettings$and keeping onlynonReimbursableOrg$is exactly what's needed for this deprecation. One less observable to worry about - that's how a hero handles it!src/app/fyle/view-per-diem/view-per-diem.page.ts (1)
89-89: Another clean removal of isNewReportsFlowEnabled, thalaiva!Consistent with the other files - removing this property is the right move for deprecating the simplified report closure settings. Style and consistency, that's the way!
src/app/fyle/my-view-report/my-view-report.page.html (1)
48-50: Fantastic! State pill now renders without checking simplifyReportsSettings$, mass!Removing the async subscription and rendering the report state pill unconditionally is exactly what's needed for this deprecation. No more waiting for observables - just show the pill directly. That's superstar efficiency!
src/app/fyle/view-expense/view-expense.page.ts (1)
396-399: Trim the extra tail, boss!There’s a lonely trail of whitespace on line 398 that makes the linter scream louder than a first-day-first-show crowd. Delete the trailing spaces to keep CI green.
[ suggest_nitpick ]
src/app/fyle/my-reports/my-reports.page.html (1)
104-108: Hard-codingsimplifyReportsEnabledmay be dead weightThe flag’s plumbing is wiped from the codebase, yet we still feed
<app-reports-card>with[simplifyReportsEnabled]="true". If the component no longer checks this input, drop it altogether and let the card breathe. Otherwise, keep it dynamic for future toggles.Your call – but carrying an always-true binding feels like wearing sunglasses at midnight.
[ suggest_optional_refactor ]
src/app/shared/components/fy-filters/fy-filters.component.ts (1)
70-74: Superb simplification, boss! Style-u!The removal of
simplifyReportsSettings$and theforkJoincomplexity has made this code as smooth as my entry scene, da! Now it directly subscribes tononReimbursableOrg$and updates the state filter options without unnecessary complications.The logic is now cleaner and more focused:
- No more complex
forkJoinoperations- Direct subscription to
nonReimbursableOrg$- State filter options are updated correctly based on the boolean value
This change perfectly aligns with the PR's goal to deprecate simplified report settings. Mind-blowing simplification!
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
1990-1995: Fix the spy configuration for better test isolation, boss!Boss, in the second test case, you're overriding the spy configuration but not resetting it properly. This could cause test interference and make the tests unreliable.
it('should check for new reports flow, if simplified report closure setting is enabled', fakeAsync(() => { + // Reset spy and configure for this specific test + orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport)); + - orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport)); component.checkNewReportsFlow(orgSettings$); tick(500); expect(orgSettingsService.get).toHaveBeenCalledTimes(1); }));⛔ Skipped due to learnings
Learnt from: bistaastha PR: fylein/fyle-mobile-app#3240 File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200 Timestamp: 2024-10-23T08:40:59.542Z Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.Learnt from: arjunaj5 PR: fylein/fyle-mobile-app#3242 File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968 Timestamp: 2024-11-04T13:10:36.868Z Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.Learnt from: Dimple16 PR: fylein/fyle-mobile-app#3714 File: src/app/core/services/mileage.service.ts:23-25 Timestamp: 2025-06-17T05:15:26.587Z Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.Learnt from: bistaastha PR: fylein/fyle-mobile-app#3240 File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354 Timestamp: 2024-10-23T11:45:16.974Z Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.Learnt from: bistaastha PR: fylein/fyle-mobile-app#3282 File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54 Timestamp: 2024-12-03T05:06:39.663Z Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.Learnt from: devendrafyle PR: fylein/fyle-mobile-app#3728 File: src/app/core/mock-data/employee-settings.data.ts:411-478 Timestamp: 2025-06-20T06:10:00.730Z Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.src/app/fyle/team-reports/team-reports.page.ts (1)
89-89: Superb cleanup, boss!The removal of
simplifyReportsSettings$observable and its related code is clean and precise, just like my punchlines! The blank lines are simply artifacts of the removal process.Also applies to: 134-134
src/app/fyle/my-expenses/my-expenses.page.ts (2)
199-199: Perfect execution, like a mass hero entry scene!The removal of
isNewReportsFlowEnabledflag is clean and systematic. These blank lines are simply the marks left behind by the successful deprecation process.Also applies to: 473-473
1495-1495: Clean removal in the bottom sheet data, style-u!The
isNewReportsFlowEnabledflag has been properly removed from the component props passed toAddTxnToReportDialogComponent. The data now contains only the essentialopenReportsparameter.src/app/fyle/my-reports/my-reports.page.ts (3)
91-91: Superstar! Clean removal of deprecated property.The
simplifyReportsSettings$property has been completely removed as expected. This is perfect, thalaivar!
242-242: Mass! Initialization cleanup done correctly.The
simplifyReportsSettings$initialization has been properly removed from the organization settings pipeline. Style!
1005-1007: Thalaiva! Modal component props simplified beautifully.The
openFiltersmethod now only passes the essentialnonReimbursableOrg$observable to the filter modal, removing the deprecatedsimplifyReportsSettings$. This is exactly how a superstar does it - clean and efficient!src/app/core/mock-data/modal-controller.data.ts (1)
355-355: Rajini style! Mock data cleaned up perfectly.The
simplifyReportsSettings$property has been properly removed from theteamReportsModalControllerParamsmock data. Even in mock data, superstar maintains consistency!src/app/fyle/dashboard/stats/stats.component.ts (2)
50-50: Thalaivar! Property removal done with superstar precision.The
simplifyReportsSettings$observable property has been cleanly removed from the StatsComponent. Mass!
98-103: Rajini style! ForkJoin simplified beautifully.The
reportStatsData$observable now only includes the essential properties -reportStats,homeCurrency,currencySymbol, andisNonReimbursableOrg. The deprecatedsimplifyReportsSettingshas been removed, making the data flow cleaner. This is how a superstar does reactive programming!src/app/fyle/dashboard/stats/stats.component.html (2)
61-61: Mass! Template simplified like a superstar.The submitted report badge now consistently uses the 'stats.submitted' translation key instead of conditional rendering based on the deprecated
simplifyReportsSettings.enabledflag. Clean and consistent, thalaivar!
88-96: Rajini style! Processing badge logic streamlined perfectly.The payment processing badge now consistently shows 'stats.processing' with the
PAYMENT_PROCESSINGreport state, eliminating the previous conditional logic that switched between 'stats.processing' and 'stats.paymentPending' based on the deprecated flag. This is exactly how a superstar simplifies complex UI logic!src/app/fyle/my-expenses/my-expenses.page.spec.ts (3)
525-541: Feature flag tests look solid, boss!These test cases for
isInstaFyleEnabled,isMileageEnabled, andisPerDiemEnabledare working perfectly like a well-oiled machine. The logic is clean and the assertions are spot-on, just like how I hit my targets!
543-567: Tests are as strong as my punch dialogue!The test cases for disabled feature flags are well-structured and cover all the right scenarios. The mock data setup and assertions are proper - no complaints from this superstar!
569-589: This test case rocks like my mass entry scene!The test for when feature flags are not allowed is perfectly crafted. The mocking and expectations are all in place, working smoothly like my stunts.
src/app/fyle/add-edit-expense/add-edit-expense.page.ts (1)
437-437: Style! This clean removal is mass!The
isNewReportsFlowEnabledproperty has been completely removed from the AddEditExpensePage class, thala! This is exactly what we wanted for deprecating the simplified report closure settings. The code is now cleaner without any trace of the old flag, and the functionality flows like a superstar's punchline - smooth and effortless!src/app/fyle/view-expense/view-expense.page.spec.ts (1)
805-819: Superstar! This test logic needs updating after fixing the import issue!Once you fix the import issue above, update this test to use the correct mock object instead of
orgSettingsData.it('should get all the org setting and return false if simplified_report_closure_settings is not present in orgSettings', () => { orgSettingsService.get.and.returnValue( of({ - ...cloneDeep(orgSettingsData), + ...cloneDeep(orgSettingsRes), simplified_report_closure_settings: null, }) ); component.ionViewWillEnter(); tick(100); expect(orgSettingsService.get).toHaveBeenCalledTimes(1); expect(component.orgSettings).toEqual({ - ...cloneDeep(orgSettingsData), + ...cloneDeep(orgSettingsRes), simplified_report_closure_settings: null, }); });src/app/fyle/dashboard/stats/stats.component.spec.ts (1)
177-184: Mass! This test simplification is style-ah after removing the simplified reports feature!The changes look perfect, thalaivar! Calling
ngOnInit()instead of the specific method and expectingreportStatsData1aligns with the removal ofsimplifyReportsSettingsfrom the codebase.src/app/fyle/view-mileage/view-mileage.page.ts (1)
100-100: Style! Clean removal of deprecated flag, boss!The removal of the
isNewReportsFlowEnabledproperty declaration here is perfectly aligned with the broader deprecation effort. Just like how a superstar doesn't need unnecessary props on stage, this code is now cleaner without the deprecated flag!
| .subscribe((orgSettings) => { | ||
| this.orgSettings = orgSettings; | ||
| this.isNewReportsFlowEnabled = orgSettings?.simplified_report_closure_settings?.enabled || false; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trailing spaces spotted, superstar! Time to clean house!
Just like in the mileage file, these trailing spaces need to go. A true mass keeps his code spotless!
- this.orgSettings = orgSettings;
-
+ this.orgSettings = orgSettings;📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| this.orgSettings = orgSettings; |
🤖 Prompt for AI Agents
In src/app/fyle/view-per-diem/view-per-diem.page.ts at line 258, remove any
trailing spaces at the end of the line to keep the code clean and consistent
with the rest of the project.
| it('should check for new reports flow, if simplified report closure setting is not enabled', () => { | ||
| component.checkNewReportsFlow(orgSettings$); | ||
| tick(500); | ||
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | ||
| }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Enhance test coverage to verify actual behavior, thalaiva!
Boss, these tests are too basic - they only verify that the service method is called but don't test what the checkNewReportsFlow method actually does. Since this is related to the deprecation of simplified report closure settings, the tests should verify the method's behavior more comprehensively.
Consider adding assertions to verify:
- The method's return value or side effects
- How it handles different organization settings
- Any component state changes that occur
- Error handling scenarios
it('should check for new reports flow, if simplified report closure setting is not enabled', fakeAsync(() => {
+ const mockOrgSettings = orgSettingsData;
+ orgSettingsService.get.and.returnValue(of(mockOrgSettings));
+
component.checkNewReportsFlow(orgSettings$);
tick(500);
+
expect(orgSettingsService.get).toHaveBeenCalledTimes(1);
+ // Add assertions to verify the method's behavior based on the settings
}));Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts around lines 1984 to
1988, the test only checks if orgSettingsService.get is called but does not
verify the actual behavior of checkNewReportsFlow. Enhance the test by adding
assertions to validate the method's return value or side effects, check how it
handles different organization settings inputs, confirm any changes to component
state, and include tests for error handling scenarios to ensure comprehensive
coverage.
| describe('checkNewReportsFlow():', () => { | ||
| it('should check for new reports flow, if simplified report closure setting is not enabled', () => { | ||
| component.checkNewReportsFlow(orgSettings$); | ||
| tick(500); | ||
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | ||
| }); | ||
|
|
||
| it('should check for new reports flow, if simplified report closure setting is enabled', () => { | ||
| orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport)); | ||
| component.checkNewReportsFlow(orgSettings$); | ||
| tick(500); | ||
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | ||
| }); | ||
| }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add fakeAsync wrapper for proper async testing, superstar!
Boss, these test cases are using tick(500) but missing the fakeAsync wrapper, which is required for testing asynchronous behavior in Angular. Without this, the tests won't work properly.
- describe('checkNewReportsFlow():', () => {
- it('should check for new reports flow, if simplified report closure setting is not enabled', () => {
+ describe('checkNewReportsFlow():', () => {
+ it('should check for new reports flow, if simplified report closure setting is not enabled', fakeAsync(() => {
component.checkNewReportsFlow(orgSettings$);
tick(500);
expect(orgSettingsService.get).toHaveBeenCalledTimes(1);
- });
+ }));
- it('should check for new reports flow, if simplified report closure setting is enabled', () => {
+ it('should check for new reports flow, if simplified report closure setting is enabled', fakeAsync(() => {
orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport));
component.checkNewReportsFlow(orgSettings$);
tick(500);
expect(orgSettingsService.get).toHaveBeenCalledTimes(1);
- });
+ }));📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| describe('checkNewReportsFlow():', () => { | |
| it('should check for new reports flow, if simplified report closure setting is not enabled', () => { | |
| component.checkNewReportsFlow(orgSettings$); | |
| tick(500); | |
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | |
| }); | |
| it('should check for new reports flow, if simplified report closure setting is enabled', () => { | |
| orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport)); | |
| component.checkNewReportsFlow(orgSettings$); | |
| tick(500); | |
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | |
| }); | |
| }); | |
| describe('checkNewReportsFlow():', () => { | |
| it('should check for new reports flow, if simplified report closure setting is not enabled', fakeAsync(() => { | |
| component.checkNewReportsFlow(orgSettings$); | |
| tick(500); | |
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | |
| })); | |
| it('should check for new reports flow, if simplified report closure setting is enabled', fakeAsync(() => { | |
| orgSettingsService.get.and.returnValue(of(orgSettingsParamsWithSimplifiedReport)); | |
| component.checkNewReportsFlow(orgSettings$); | |
| tick(500); | |
| expect(orgSettingsService.get).toHaveBeenCalledTimes(1); | |
| })); | |
| }); |
🤖 Prompt for AI Agents
In src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts around lines 1983 to
1996, the test cases use tick(500) for async timing but lack the required
fakeAsync wrapper. To fix this, wrap each it block's callback function with
fakeAsync to properly handle asynchronous operations in Angular tests, ensuring
tick works as intended.
| canShowTooltip = false; | ||
|
|
||
| simplifyReportsSettings$: Observable<{ enabled: boolean }>; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Style-uh! This removal is smoother than my entrance in a movie!
The cleanup of simplifyReportsSettings$ and getReportClosureSettings method is executed with the precision of a Rajinikanth punch. The code flow remains intact while removing the deprecated functionality.
Let me verify that the cleanup is complete across all related files, because even the smallest detail matters in my movies!
Also applies to: 214-214, 300-300
🏁 Script executed:
#!/bin/bash
# Description: Verify complete removal of report closure settings functionality
# Test: Search for getReportClosureSettings method references
echo "Searching for getReportClosureSettings method references..."
rg -i "getReportClosureSettings" --type ts
# Test: Check for any references in HTML templates
echo "Checking HTML templates for simplifyReportsSettings references..."
rg -i "simplifyReportsSettings" --type html
# Test: Search for simplified_report_closure_settings in the codebase
echo "Searching for simplified_report_closure_settings references..."
rg -i "simplified_report_closure_settings" --type ts
# Test: Verify no dead imports remain in this file
echo "Checking for potential unused imports in view-team-report.page.ts..."
ast-grep --pattern 'import { $$$, OrgSettings, $$$ } from $path'Length of output: 2605
Tests Still Reference Removed Report Closure Functionality
The cleanup of simplifyReportsSettings$ and getReportClosureSettings is nearly perfect, but our unit tests are still calling these methods and settings. We must remove or update those specs to avoid runtime errors.
• src/app/fyle/view-team-report/view-team-report.page.spec.ts
– Remove the entire describe('getReportClosureSettings()') block and any spyOn(component, 'getReportClosureSettings') calls.
– Delete or adjust any tests that reference simplified_report_closure_settings.
• src/app/fyle/view-mileage/view-mileage.page.spec.ts
– Remove tests checking simplified_report_closure_settings.
• src/app/fyle/view-expense/view-expense.page.spec.ts
– Remove tests checking simplified_report_closure_settings.
• src/app/fyle/my-view-report/my-view-report.page.spec.ts
– Remove tests checking simplified_report_closure_settings.
Punch through these specs like a true superstar—then the cleanup will be complete!
🤖 Prompt for AI Agents
In src/app/fyle/view-team-report/view-team-report.page.spec.ts around line 122
and related spec files, the unit tests still reference the removed report
closure functionality including the describe block for getReportClosureSettings
and any spyOn calls for it. Remove the entire
describe('getReportClosureSettings()') block and all spyOn(component,
'getReportClosureSettings') calls. Also, delete or update any tests that
reference simplified_report_closure_settings in this and the other specified
spec files to prevent runtime errors and complete the cleanup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🔭 Outside diff range comments (3)
src/app/fyle/dashboard/stats/stats.component.spec.ts (1)
186-186: Mind it! There's still a reference to the old variable that needs fixing!Boss, the pipeline is failing because
orgSettingsParamsWithSimplifiedReportis still referenced in the test assertion but is no longer imported. This needs immediate attention to make the tests pass!Replace the reference with
orgSettingsRes:- expect(paymentModeService.isNonReimbursableOrg).toHaveBeenCalledOnceWith( - orgSettingsParamsWithSimplifiedReport.payment_mode_settings - ); + expect(paymentModeService.isNonReimbursableOrg).toHaveBeenCalledOnceWith( + orgSettingsRes.payment_mode_settings + );src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (1)
31-38: Ayyo! Unused importorgSettingsRes– throw it off the train, boss!
orgSettingsResis imported but never used anywhere in this spec. Dead imports clutter the code and can trigger lint failures in strict CI setups. Better delete it (or wire it up if you really need it).- orgSettingsRes,src/app/fyle/my-expenses/my-expenses.page.spec.ts (1)
2788-2793: Give the assertion some superstar swagger – usejasmine.objectContainingHard-coding the whole
dataobject makes the test brittle; the spec will start yelling if another harmless field is added to the bottom-sheet config. Narrow the expectation to only what really matters (openReports) and let the rest live in peace.- data: { openReports: expectedReportsSinglePageSubmitted }, + data: jasmine.objectContaining({ openReports: expectedReportsSinglePageSubmitted }),
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (16)
src/app/core/mock-data/org-settings.data.ts(0 hunks)src/app/core/mock-data/report-stats-data.data.ts(0 hunks)src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts(1 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage-4.spec.ts(1 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage-5.spec.ts(0 hunks)src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts(1 hunks)src/app/fyle/add-edit-per-diem/add-edit-per-diem-2.page.spec.ts(2 hunks)src/app/fyle/dashboard/stats/stats.component.spec.ts(2 hunks)src/app/fyle/my-expenses/my-expenses.page.spec.ts(7 hunks)src/app/fyle/my-reports/my-reports.page.spec.ts(4 hunks)src/app/fyle/my-view-report/my-view-report.page.spec.ts(0 hunks)src/app/fyle/team-reports/team-reports-1.page.spec.ts(3 hunks)src/app/fyle/team-reports/team-reports-4.page.spec.ts(0 hunks)src/app/fyle/view-expense/view-expense.page.spec.ts(0 hunks)src/app/fyle/view-mileage/view-mileage.page.spec.ts(0 hunks)src/app/fyle/view-team-report/view-team-report.page.spec.ts(0 hunks)
💤 Files with no reviewable changes (8)
- src/app/fyle/team-reports/team-reports-4.page.spec.ts
- src/app/core/mock-data/report-stats-data.data.ts
- src/app/fyle/my-view-report/my-view-report.page.spec.ts
- src/app/core/mock-data/org-settings.data.ts
- src/app/fyle/add-edit-mileage/add-edit-mileage-5.spec.ts
- src/app/fyle/view-mileage/view-mileage.page.spec.ts
- src/app/fyle/view-team-report/view-team-report.page.spec.ts
- src/app/fyle/view-expense/view-expense.page.spec.ts
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
src/app/fyle/add-edit-mileage/add-edit-mileage-4.spec.ts (12)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3259
File: src/app/core/services/personal-cards.service.spec.ts:0-0
Timestamp: 2024-11-13T10:19:42.138Z
Learning: When the type can be inferred in TypeScript tests, avoid suggesting explicit type-checking for return values.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/team-reports/team-reports-1.page.spec.ts (12)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3259
File: src/app/core/services/personal-cards.service.spec.ts:0-0
Timestamp: 2024-11-13T10:19:42.138Z
Learning: When the type can be inferred in TypeScript tests, avoid suggesting explicit type-checking for return values.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/add-edit-expense/add-edit-expense-5.spec.ts (14)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3259
File: src/app/core/services/personal-cards.service.spec.ts:0-0
Timestamp: 2024-11-13T10:19:42.138Z
Learning: When the type can be inferred in TypeScript tests, avoid suggesting explicit type-checking for return values.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (`?.`) for safer property access when checking nested object properties like `allowedReportsActions.approve` and `allowedAdvancesActions.approve`.
src/app/fyle/dashboard/stats/stats.component.spec.ts (8)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
src/app/fyle/my-reports/my-reports.page.spec.ts (11)
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3259
File: src/app/core/services/personal-cards.service.spec.ts:0-0
Timestamp: 2024-11-13T10:19:42.138Z
Learning: When the type can be inferred in TypeScript tests, avoid suggesting explicit type-checking for return values.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the `tap` operator to set state variables within observable streams for better readability, as seen in `pending-verification.page.ts`.
Learnt from: SahilK-027
PR: fylein/fyle-mobile-app#3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In `src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html`, the conditional size logic for `[attr.size]` will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3410
File: src/app/fyle/spender-onboarding/spender-onboarding.page.ts:144-150
Timestamp: 2025-01-20T05:15:40.653Z
Learning: In Angular applications, navigation patterns should be consistent throughout the codebase. If skipLocationChange is needed, prefer using router.navigate() with the skipLocationChange option instead of using both navigateByUrl() and navigate().
src/app/fyle/add-edit-per-diem/add-edit-per-diem-2.page.spec.ts (9)
Learnt from: Dimple16
PR: fylein/fyle-mobile-app#3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
Learnt from: devendrafyle
PR: fylein/fyle-mobile-app#3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
Learnt from: arjunaj5
PR: fylein/fyle-mobile-app#3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In `src/app/fyle/my-expenses/my-expenses.page.spec.ts`, when testing private methods like `filterDEIncompleteExpenses`, it's acceptable to use `//@ts-ignore` to spy on them in unit tests.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for `PasswordCheckTooltipComponent` in `password-check-tooltip.component.spec.ts`, password change scenarios are handled in separate test cases.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In `src/app/post-verification/invited-user/invited-user.page.spec.ts`, the `isPasswordValid` property will never be undefined, so testing for undefined values in `checkPasswordValidity` isn't necessary.
Learnt from: sumrender
PR: fylein/fyle-mobile-app#3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In `src/app/fyle/add-edit-expense/add-edit-expense.page.ts`, the `unmatchExpense` method is used for corporate card expenses, not for personal card expenses.
Learnt from: bistaastha
PR: fylein/fyle-mobile-app#3289
File: src/app/post-verification/invited-user/invited-user.page.ts:97-98
Timestamp: 2024-12-04T05:23:21.200Z
Learning: In 'src/app/post-verification/invited-user/invited-user.page.ts', the 'password' and 'fullName' obtained from 'this.fg.controls.password.value' and 'this.fg.controls.fullName.value' will always be strings, so additional error handling for type checking is unnecessary.
src/app/fyle/my-expenses/my-expenses.page.spec.ts (13)
undefined
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3282
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.spec.ts:49-54
Timestamp: 2024-12-03T05:06:39.663Z
Learning: In the Angular test suite for PasswordCheckTooltipComponent in password-check-tooltip.component.spec.ts, password change scenarios are handled in separate test cases.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3284
File: src/app/auth/verify/verify.page.html:6-6
Timestamp: 2024-11-27T06:49:14.297Z
Learning: In the Fyle mobile app's src/app/auth/verify/verify.page.html (an Ionic/Angular component), the design does not specify animation for the text on the verify page. Therefore, animations should not be added unless specified in the design.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (15)
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:293-354
Timestamp: 2024-10-23T11:45:16.974Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', the flags 'isVisaRTFEnabled$', 'isMastercardRTFEnabled$', and 'isYodleeEnabled$' do not have rapidly changing values, so tests for rapid changes in these flags are unnecessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: Dimple16
PR: #3714
File: src/app/core/services/mileage.service.ts:23-25
Timestamp: 2025-06-17T05:15:26.587Z
Learning: In the Fyle mobile app, the migration from OrgUserSettingsService to PlatformEmployeeSettingsService introduced a potential breaking change where mileage_settings could be null or undefined. Test cases in add-edit-mileage-2.spec.ts and add-edit-mileage-5.spec.ts explicitly test scenarios where getOrgUserMileageSettings returns null or undefined, indicating this is a real-world scenario that needs defensive handling.
</retrieved_learning>
<retrieved_learning>
Learnt from: SahilK-027
PR: #3312
File: src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html:19-22
Timestamp: 2024-12-09T07:08:28.540Z
Learning: In src/app/shared/components/fy-loading-screen/fy-loading-screen.component.html, the conditional size logic for [attr.size] will be removed after the new design changes are applied across the entire mobile app, so refactoring is unnecessary at this time.
</retrieved_learning>
<retrieved_learning>
Learnt from: devendrafyle
PR: #3728
File: src/app/core/mock-data/employee-settings.data.ts:411-478
Timestamp: 2025-06-20T06:10:00.730Z
Learning: In src/app/core/mock-data/employee-settings.data.ts, the apiEmployeeSettings object intentionally excludes bulk_fyle_settings and gmail_fmr_settings properties because these have been removed from the new API response format. This is not a bug but reflects the actual API behavior.
</retrieved_learning>
<retrieved_learning>
Learnt from: sumrender
PR: #3265
File: src/app/fyle/personal-cards-matched-expenses/expense-preview/expense-preview.component.spec.ts:35-37
Timestamp: 2024-11-18T06:55:17.972Z
Learning: In src/app/fyle/add-edit-expense/add-edit-expense.page.ts, the unmatchExpense method is used for corporate card expenses, not for personal card expenses.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3240
File: src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts:200-200
Timestamp: 2024-10-23T08:40:59.542Z
Learning: In 'src/app/fyle/manage-corporate-cards/manage-corporate-cards.page.spec.ts', moving 'component.isAddCorporateCardVisible$ = of(true);' to the top-level beforeEach block causes tests to fail, so mock values need to be set in individual tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3289
File: src/app/post-verification/invited-user/invited-user.page.ts:69-70
Timestamp: 2024-12-04T05:23:28.646Z
Learning: In the 'fyle-mobile-app' codebase, adding 'as const' to FormGroup control definitions is not necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3309
File: src/app/post-verification/invited-user/invited-user.page.spec.ts:112-127
Timestamp: 2024-12-09T06:38:25.802Z
Learning: In src/app/post-verification/invited-user/invited-user.page.spec.ts, the isPasswordValid property will never be undefined, so testing for undefined values in checkPasswordValidity isn't necessary.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3284
File: src/app/auth/verify/verify.page.html:6-6
Timestamp: 2024-11-27T06:49:14.297Z
Learning: In the Fyle mobile app's src/app/auth/verify/verify.page.html (an Ionic/Angular component), the design does not specify animation for the text on the verify page. Therefore, animations should not be added unless specified in the design.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3632
File: src/app/shared/components/sidemenu/sidemenu.component.ts:207-207
Timestamp: 2025-03-25T11:23:24.170Z
Learning: In the SidemenuComponent, use optional chaining (?.) for safer property access when checking nested object properties like allowedReportsActions.approve and allowedAdvancesActions.approve.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3284
File: src/app/auth/verify/verify.page.ts:0-0
Timestamp: 2024-11-27T07:03:32.242Z
Learning: In src/app/auth/verify/verify.page.ts, prefer to retain the existing error handling flow in the handleError method without adding user messages via ToastController.
</retrieved_learning>
<retrieved_learning>
Learnt from: arjunaj5
PR: #3242
File: src/app/fyle/my-expenses/my-expenses.page.spec.ts:967-968
Timestamp: 2024-11-04T13:10:36.868Z
Learning: In src/app/fyle/my-expenses/my-expenses.page.spec.ts, when testing private methods like filterDEIncompleteExpenses, it's acceptable to use //@ts-ignore to spy on them in unit tests.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3306
File: src/app/auth/pending-verification/pending-verification.page.ts:45-45
Timestamp: 2024-12-06T10:17:48.921Z
Learning: In Angular code, prefer using the tap operator to set state variables within observable streams for better readability, as seen in pending-verification.page.ts.
</retrieved_learning>
<retrieved_learning>
Learnt from: bistaastha
PR: #3281
File: src/app/shared/components/password-check-tooltip/password-check-tooltip.component.html:1-5
Timestamp: 2024-12-03T05:14:52.155Z
Learning: The passwordChecks variable in password-check-tooltip.component.html always has a value, so conditional rendering using *ngIf is unnecessary.
</retrieved_learning>
🧬 Code Graph Analysis (4)
src/app/fyle/team-reports/team-reports-1.page.spec.ts (1)
src/app/core/mock-data/org-settings.data.ts (1)
orgSettingsRes(7-418)
src/app/fyle/dashboard/stats/stats.component.spec.ts (1)
src/app/core/mock-data/org-settings.data.ts (1)
orgSettingsRes(7-418)
src/app/fyle/add-edit-per-diem/add-edit-per-diem-2.page.spec.ts (1)
src/app/core/mock-data/org-settings.data.ts (1)
orgSettingsRes(7-418)
src/app/fyle/my-expenses/my-expenses.page.spec.ts (1)
src/app/core/mock-data/platform-report.data.ts (2)
expectedReportsSinglePageSubmitted(899-902)expectedReportsSinglePage(864-864)
🪛 GitHub Actions: Unit Tests
src/app/fyle/dashboard/stats/stats.component.spec.ts
[error] 186-186: TypeScript error TS2304: Cannot find name 'orgSettingsParamsWithSimplifiedReport'.
🪛 GitHub Actions: Lint
src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts
[warning] 131-131: ESLint warning: Hard-coded string "edit" should be replaced with a translation key. Refer to https://www.notion.so/fyleuniverse/i18n-translation-file-structure-1ea2ed8bfcb3803da113d3bfc2774ec1#1ea2ed8bfcb3809a9a0ddc05a548eb49 for more details (@fyle/no-hardcoded-strings)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor BugBot
🔇 Additional comments (12)
src/app/fyle/add-edit-per-diem/add-edit-per-diem-2.page.spec.ts (2)
73-77: Perfect cleanup, thalaiva!The import change from
orgSettingsParamsWithSimplifiedReporttoorgSettingsResis spot-on! This removal of the simplified report settings mock data is exactly what we need for this deprecation effort. Style-uh!
493-503: Superb test update, boss!The test case has been updated magnificently to use
orgSettingsResinstead of the deprecated mock data. The test description and implementation are now clean and focused on the core functionality - verifying service calls and auto-submission report name emission. The removal ofisNewReportsFlowEnabledassertions is exactly what this cleanup should achieve!src/app/fyle/dashboard/stats/stats.component.spec.ts (2)
16-18: Superstar! Import cleanup is perfect like a Rajini entrance scene!Boss, the removal of
orgSettingsParamsWithSimplifiedReportandreportStatsData2imports is absolutely stylish! You've cleaned up the deprecated simplified report closure settings imports perfectly. This aligns with the feature deprecation beautifully!
170-170: Thalaiva! Mock data update is as smooth as Rajini's punchline delivery!The spy update to return
orgSettingsResinstead of the deprecatedorgSettingsParamsWithSimplifiedReportis exactly what the doctor ordered. Perfect execution, boss!src/app/fyle/my-reports/my-reports.page.spec.ts (4)
16-16: Style! Mock data import updated correctly, boss!The import change from
orgSettingsParamsWithSimplifiedReporttoorgSettingsResis clean and consistent with the deprecation of simplified report settings. This is how we do it - one punch, one change!
498-498: Test description enhanced like a superstar dialogue!The test description is now more specific and clear about testing the scenario when
orgSetting$is undefined. This makes the test intention crystal clear - just the way I like it!
619-619: Another brilliant test description update!The description now explicitly mentions that
payment_mode_setting.payment_modes_orderis not defined, making it super clear what scenario is being tested. Even a villain can understand this now!
754-754: Perfect replacement in the test setup!The usage change from
orgSettingsParamsWithSimplifiedReporttoorgSettingsResis spot-on. The test will continue to work smoothly with the new mock data - no drama, just results!src/app/fyle/team-reports/team-reports-1.page.spec.ts (2)
20-20: Superb import change - straight to the point!The import replacement from
orgSettingsParamsWithSimplifiedReporttoorgSettingsResis exactly what we need. No confusion, no complexity - just pure efficiency like a Rajini movie climax!
132-132: Consistent usage updates - mass hero style!Both occurrences of
orgSettingsParamsWithSimplifiedReporthave been properly replaced withorgSettingsRes. The consistency is maintained throughout the file - this is how we handle large-scale changes with style!Also applies to: 199-199
src/app/fyle/add-edit-mileage/add-edit-mileage-4.spec.ts (1)
28-34: Perfect cleanup, boss! The import statement is as clean as a whistle after the storm!The removal of
orgSettingsParamsWithSimplifiedReportfrom the import is spot on, style! This aligns perfectly with the broader mission to eliminate the simplified report closure settings feature. The remaining imports are properly structured and the test file will continue to function like a well-oiled machine.src/app/fyle/add-edit-mileage/add-edit-mileage.page.ts (1)
259-259: Style! Clean removal of deprecated code, boss!The removal of the
isNewReportsFlowEnabledproperty and thecheckNewReportsFlowmethod has been executed perfectly, da! This aligns with the PR objective of deprecating simplified report settings. The previous linting issues with the empty method and unused parameters have been completely resolved - no more trailing spaces, no more unused variables, superstar level cleanup!
| component.showOldReportsMatBottomSheet(); | ||
| expect(matBottomsheet.open).toHaveBeenCalledOnceWith(<any>AddTxnToReportDialogComponent, { | ||
| data: { openReports: mockReportData, isNewReportsFlowEnabled: true }, | ||
| data: { openReports: mockReportData }, | ||
| panelClass: ['mat-bottom-sheet-1'], | ||
| }); | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Same hero move here – loosen the match
Replicate the earlier change so future tweaks to the sheet payload don’t break this spec.
- data: { openReports: mockReportData },
+ data: jasmine.objectContaining({ openReports: mockReportData }),📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| component.showOldReportsMatBottomSheet(); | |
| expect(matBottomsheet.open).toHaveBeenCalledOnceWith(<any>AddTxnToReportDialogComponent, { | |
| data: { openReports: mockReportData, isNewReportsFlowEnabled: true }, | |
| data: { openReports: mockReportData }, | |
| panelClass: ['mat-bottom-sheet-1'], | |
| }); | |
| component.showOldReportsMatBottomSheet(); | |
| expect(matBottomsheet.open).toHaveBeenCalledOnceWith(<any>AddTxnToReportDialogComponent, { | |
| data: jasmine.objectContaining({ openReports: mockReportData }), | |
| panelClass: ['mat-bottom-sheet-1'], | |
| }); |
🤖 Prompt for AI Agents
In src/app/fyle/my-expenses/my-expenses.page.spec.ts around lines 2814 to 2819,
the test expectation for matBottomsheet.open is too strict by matching the exact
payload object. Modify the expectation to use a looser matcher that verifies the
call was made with the correct component and that the data contains openReports,
without requiring an exact match of the entire options object. This will make
the test less brittle to future changes in the payload.
| component.showOldReportsMatBottomSheet(); | ||
| expect(matBottomsheet.open).toHaveBeenCalledOnceWith(<any>AddTxnToReportDialogComponent, { | ||
| data: { openReports: expectedReportsSinglePage, isNewReportsFlowEnabled: true }, | ||
| data: { openReports: expectedReportsSinglePage }, | ||
| panelClass: ['mat-bottom-sheet-1'], | ||
| }); | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
And one more time for style consistency
Let’s keep all three expectations equally flexible.
- data: { openReports: expectedReportsSinglePage },
+ data: jasmine.objectContaining({ openReports: expectedReportsSinglePage }),📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| component.showOldReportsMatBottomSheet(); | |
| expect(matBottomsheet.open).toHaveBeenCalledOnceWith(<any>AddTxnToReportDialogComponent, { | |
| data: { openReports: expectedReportsSinglePage, isNewReportsFlowEnabled: true }, | |
| data: { openReports: expectedReportsSinglePage }, | |
| panelClass: ['mat-bottom-sheet-1'], | |
| }); | |
| component.showOldReportsMatBottomSheet(); | |
| expect(matBottomsheet.open).toHaveBeenCalledOnceWith(<any>AddTxnToReportDialogComponent, { | |
| data: jasmine.objectContaining({ openReports: expectedReportsSinglePage }), | |
| panelClass: ['mat-bottom-sheet-1'], | |
| }); |
🤖 Prompt for AI Agents
In src/app/fyle/my-expenses/my-expenses.page.spec.ts around lines 2839 to 2844,
the expectation for matBottomsheet.open is currently using
toHaveBeenCalledOnceWith which is stricter than the other two expectations. To
maintain style consistency and flexibility across all three expectations, change
this expectation to use a more flexible matcher like toHaveBeenCalledWith
instead of toHaveBeenCalledOnceWith.
🔁 Code Duplication Report - Angular
📊 No significant change in code duplication. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Undefined Access in Filter Options
Unconditional access to this.filterOptions[stateFilterIndex].options after stateFilterIndex is found using findIndex() can lead to a runtime error. If the 'State' filter is not found (findIndex() returns -1), this results in attempting to access .options on an undefined array element. This exposes a potential runtime error previously guarded by simplifyReportsSettings.enabled. Furthermore, filter options are now always set to optionsNewFlow or optionsNewFlowCCCOnly, removing the previous conditional behavior based on simplifyReportsSettings.enabled.
src/app/shared/components/fy-filters/fy-filters.component.ts#L68-L74
fyle-mobile-app/src/app/shared/components/fy-filters/fy-filters.component.ts
Lines 68 to 74 in 94da9fb
| const stateFilterIndex = this.filterOptions.findIndex((option) => option.name === 'State'); | |
| this.nonReimbursableOrg$.subscribe((nonReimbursableOrg) => { | |
| this.filterOptions[stateFilterIndex].options = nonReimbursableOrg | |
| ? this.filterOptions[stateFilterIndex].optionsNewFlowCCCOnly | |
| : this.filterOptions[stateFilterIndex].optionsNewFlow; | |
| }); |
Was this report helpful? Give feedback by reacting with 👍 or 👎
Clickup
https://app.clickup.com/t/86cym6cyx
Code Coverage
Please add code coverage here
UI Preview
Please add screenshots for UI changes
Summary by CodeRabbit
Refactor
Tests
Style