App icon indicating copy to clipboard operation
App copied to clipboard

Fix/34611: Remove old merchant page

Open DylanDylann opened this issue 1 year ago • 11 comments

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/34611 PROPOSAL: https://github.com/Expensify/App/issues/34611#issuecomment-1894915141

Tests

Test case 1: Request Money Flow

  1. Create a new request
  2. While creating a new request click on the merchant field
  3. Verify that the route display /create/request/
  4. After creating request click on merchant field to edit
  5. Verify that the route display /edit/request/

Test case 2: Split Bill Flow

  1. Create a split bill
  2. While creating a new split bill click on the merchant field
  3. Verify that the route display /create/split/
  4. After creating a new split bill click on merchant field to edit
  5. Verify that the route display /edit/split/
  6. Verify that everything works well as before
  • [x] Verify that no errors appear in the JS console

Offline tests

Same above

QA Steps

Same above

  • [x] Verify that no errors appear in the JS console

PR Author Checklist

  • [x] I linked the correct issue in the ### Fixed Issues section above
  • [x] I wrote clear testing steps that cover the changes made in this PR
    • [x] I added steps for local testing in the Tests section
    • [x] I added steps for the expected offline behavior in the Offline steps section
    • [x] I added steps for Staging and/or Production testing in the QA steps section
    • [x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • [x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • [x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • [x] I included screenshots or videos for tests on all platforms
  • [x] I ran the tests on all platforms & verified they passed on:
    • [x] Android: Native
    • [x] Android: mWeb Chrome
    • [x] iOS: Native
    • [x] iOS: mWeb Safari
    • [x] MacOS: Chrome / Safari
    • [x] MacOS: Desktop
  • [x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • [x] I followed proper code patterns (see Reviewing the code)
    • [x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • [x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
    • [x] I verified that comments were added to code that is not self explanatory
    • [x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • [x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • [x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • [x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • [x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • [x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • [x] I verified the JSDocs style guidelines (in STYLE.md) were followed
  • [x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • [x] I followed the guidelines as stated in the Review Guidelines
  • [x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • [x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • [x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • [x] I verified that if a function's arguments changed that all usages have also been updated correctly
  • [x] If any new file was added I verified that:
    • [x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • [x] If a new CSS style is added I verified that:
    • [x] A similar style doesn't already exist
    • [x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • [x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • [x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • [x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • [x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • [x] If the PR modifies the form input styles:
    • [x] I verified that all the inputs inside a form are aligned with each other.
    • [x] I added Design label so the design team can review the changes.
  • [x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • [x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Can't run android because of the error on latest main a

Android: mWeb Chrome

https://github.com/Expensify/App/assets/141406735/fcc341fe-632c-481a-b853-10a25da27184

iOS: Native

https://github.com/Expensify/App/assets/141406735/b6942969-f6ab-49d0-b095-489a699f989c

iOS: mWeb Safari

https://github.com/Expensify/App/assets/141406735/01f816f0-4428-4745-8d35-ec6a91a88e7a

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/141406735/c33f3372-84e5-47d0-9e2e-0312d6cbe998

MacOS: Desktop

https://github.com/Expensify/App/assets/141406735/b8d69042-ea51-4434-8574-bc72901a6ebd

DylanDylann avatar Feb 02 '24 08:02 DylanDylann

@hoangzinh Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

melvin-bot[bot] avatar Feb 02 '24 08:02 melvin-bot[bot]

Btw, please fix conflicts as well.

hoangzinh avatar Feb 05 '24 15:02 hoangzinh

@hoangzinh Updated

DylanDylann avatar Feb 05 '24 15:02 DylanDylann

Oops, This PR has some conflicts :(

hoangzinh avatar Feb 06 '24 00:02 hoangzinh

@hoangzinh Resolved conflict. All yours

DylanDylann avatar Feb 06 '24 11:02 DylanDylann

@DylanDylann last thing. For test steps, I think we can split into 2 test cases. Something like this

Test case 1: Request money

  1. Create a new request 2 ....

Test case 2: Split bill

  1. Create a split bill
  2. ..

hoangzinh avatar Feb 06 '24 15:02 hoangzinh

@DylanDylann I found a bug when editing a request money, the merchant value is not loaded correctly.

https://github.com/Expensify/App/assets/9639873/3c86c11a-0844-4ac8-94cb-40982f61b582

hoangzinh avatar Feb 06 '24 15:02 hoangzinh

Nice catch. The same bug also happen on split bill flow

DylanDylann avatar Feb 06 '24 16:02 DylanDylann

@hoangzinh I updated, please check again

DylanDylann avatar Feb 06 '24 17:02 DylanDylann

Lint error is from main branch

DylanDylann avatar Feb 06 '24 17:02 DylanDylann

perf-tests error looks weird.

hoangzinh avatar Feb 06 '24 23:02 hoangzinh

@DylanDylann could you try to merge latest main branch to solve perf-tests?

hoangzinh avatar Feb 07 '24 11:02 hoangzinh

@hoangzinh Updated. Please help to check again

DylanDylann avatar Feb 07 '24 15:02 DylanDylann

@hoangzinh Updated

DylanDylann avatar Feb 08 '24 07:02 DylanDylann

@hoangzinh I updated. please help to review

DylanDylann avatar Feb 08 '24 18:02 DylanDylann

Reviewer Checklist

  • [x] I have verified the author checklist is complete (all boxes are checked off).
  • [x] I verified the correct issue is linked in the ### Fixed Issues section above
  • [x] I verified testing steps are clear and they cover the changes made in this PR
    • [x] I verified the steps for local testing are in the Tests section
    • [x] I verified the steps for Staging and/or Production testing are in the QA steps section
    • [x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • [x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
  • [x] I checked that screenshots or videos are included for tests on all platforms
  • [x] I included screenshots or videos for tests on all platforms
  • [x] I verified tests pass on all platforms & I tested again on:
    • [x] Android: Native
    • [x] Android: mWeb Chrome
    • [x] iOS: Native
    • [x] iOS: mWeb Safari
    • [x] MacOS: Chrome / Safari
    • [x] MacOS: Desktop
  • [x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
  • [x] I verified proper code patterns were followed (see Reviewing the code)
    • [x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
    • [x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
    • [x] I verified that comments were added to code that is not self explanatory
    • [x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • [x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
    • [x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • [x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • [x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • [x] I verified the JSDocs style guidelines (in STYLE.md) were followed
  • [x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • [x] I verified that this PR follows the guidelines as stated in the Review Guidelines
  • [x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
  • [x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • [x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • [x] If a new component is created I verified that:
    • [x] A similar component doesn't exist in the codebase
    • [x] All props are defined accurately and each prop has a /** comment above it */
    • [x] The file is named correctly
    • [x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • [x] The only data being stored in the state is data necessary for rendering and nothing else
    • [x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • [x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • [x] All JSX used for rendering exists in the render method
    • [x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • [x] If any new file was added I verified that:
    • [x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • [x] If a new CSS style is added I verified that:
    • [x] A similar style doesn't already exist
    • [x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
  • [x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • [x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • [x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • [x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • [x] If the PR modifies the form input styles:
    • [x] I verified that all the inputs inside a form are aligned with each other.
    • [x] I added Design label so the design team can review the changes.
  • [x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • [x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
  • [x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/9639873/e58dba18-284d-4a9c-b187-cf4e50de9069

Android: mWeb Chrome

https://github.com/Expensify/App/assets/9639873/945a4a6b-de95-4b4a-9cd0-e17a7ef600d1

iOS: Native

https://github.com/Expensify/App/assets/9639873/cfbb3618-64ba-4a61-a683-240891174975

iOS: mWeb Safari

https://github.com/Expensify/App/assets/9639873/e3fe5223-952a-441b-9c0a-023c816ada3f

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/9639873/e8f61561-12cb-4c13-977c-cf12d23672fb

MacOS: Desktop

https://github.com/Expensify/App/assets/9639873/53b31066-0a30-4960-84dd-26a9d4de2915

hoangzinh avatar Feb 09 '24 00:02 hoangzinh

@cead22 I updated it, please help to review it again cc @hoangzinh

DylanDylann avatar Feb 10 '24 05:02 DylanDylann

@DylanDylann can you update to resolve conflicts and ping again, and I'll review? thanks

cead22 avatar Feb 12 '24 20:02 cead22

@cead22 Updated. Please help to review again

DylanDylann avatar Feb 13 '24 02:02 DylanDylann

Conflicts

cead22 avatar Feb 13 '24 23:02 cead22

@cead22 All yours

DylanDylann avatar Feb 14 '24 03:02 DylanDylann

  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack

@hoangzinh I saw a warning on your android video, is that getting fixed somewhere else?

cead22 avatar Feb 14 '24 04:02 cead22

  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack

@hoangzinh I saw a warning on your android video, is that getting fixed somewhere else?

@cead22 Looks like it has been fixed somewhere, I tried to test again on this PR but couldn't reproduce that warning

https://github.com/Expensify/App/assets/9639873/919f2ff2-e02b-425b-a641-010aace3eebb

hoangzinh avatar Feb 14 '24 09:02 hoangzinh

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

OSBotify avatar Feb 14 '24 19:02 OSBotify

🚀 Deployed to staging by https://github.com/cead22 in version: 1.4.42-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

OSBotify avatar Feb 15 '24 05:02 OSBotify

🚀 Deployed to production by https://github.com/chiragsalian in version: 1.4.42-5 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

OSBotify avatar Feb 19 '24 23:02 OSBotify