Skip to content
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

[Product Details] Fix failure when trashing a new duplicated product #12818

Merged
merged 6 commits into from
Oct 25, 2024

Conversation

ThomazFB
Copy link
Contributor

@ThomazFB ThomazFB commented Oct 25, 2024

Summary

Fix issue #12766 by making sure that when the Product Details call itself again, the back stack always targets the products list.

Currently, the Product Details screen has a single scenario where it calls itself: during a product duplication. However, this creates an issue with trashing.

The app delegates the trashing operation of a product to the Product list screen. When a product is trashed, the Product Details screen is dismissed, and the Product List screen is notified to trash that product. But when it's about a duplicated product, the trashing operation wasn't returning to the Product list screen, but to the original Product Details screen, which doesn't know how to trash a product.

To fix this, a specific handling was introduced: when the Product Details call itself, it will keep targeting the Product List as the screen to pop up from the back stack.

Screen Capture

Screen_recording_20241025_010606.mp4

How to Test

Since this is primarily a navigation logic change, adding unit tests to it is impossible. So, I'm keeping here the flow difference between the original and adjusted flows.

Original flow

Start point: Product List Screen
-> Selecting a Product in the list navigates to
-> Product Details Screen (Original product)
-> Duplication event navigates to
-> Product Details Screen (Duplicated Product)
-> Trashing the Duplicated navigates to
-> Product Details Screen (Original product)

Adjusted flow

Start point: Product List Screen
-> Selecting a Product in the list navigates to
-> Product Details Screen (Original product)
-> Duplication event navigates to
-> Product Details Screen (Duplicated Product)
-> Trashing the Duplicated navigates to
-> Product List Screen

Update release notes:

  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Reviewer (or Author, in the case of optional code reviews):

Please make sure these conditions are met before approving the PR, or request changes if the PR needs improvement:

  • The PR is small and has a clear, single focus, or a valid explanation is provided in the description. If needed, please request to split it into smaller PRs.
  • Ensure Adequate Unit Test Coverage: The changes are reasonably covered by unit tests or an explanation is provided in the PR description.
  • Manual Testing: The author listed all the tests they ran, including smoke tests when needed (e.g., for refactorings). The reviewer confirmed that the PR works as expected on big (tablet) and small (phone) in case of UI changes, and no regressions are added.

@ThomazFB ThomazFB added type: bug A confirmed bug. feature: product details Related to adding or editing products, includes product settings. labels Oct 25, 2024
@ThomazFB ThomazFB linked an issue Oct 25, 2024 that may be closed by this pull request
@wpmobilebot
Copy link
Collaborator

📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
App Name WooCommerce-Wear Android
Platform⌚️ Wear OS
FlavorJalapeno
Build TypeDebug
Commit3d69e1f
Direct Downloadwoocommerce-wear-prototype-build-pr12818-3d69e1f.apk

@wpmobilebot
Copy link
Collaborator

📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.

App Name WooCommerce Android
Platform📱 Mobile
FlavorJalapeno
Build TypeDebug
Commit3d69e1f
Direct Downloadwoocommerce-prototype-build-pr12818-3d69e1f.apk

@codecov-commenter
Copy link

codecov-commenter commented Oct 25, 2024

Codecov Report

Attention: Patch coverage is 0% with 1 line in your changes missing coverage. Please review.

Project coverage is 40.87%. Comparing base (c8b90c3) to head (3d69e1f).
Report is 72 commits behind head on trunk.

Files with missing lines Patch % Lines
...oocommerce/android/ui/main/MainNavigationRouter.kt 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##              trunk   #12818   +/-   ##
=========================================
  Coverage     40.86%   40.87%           
- Complexity     5771     5772    +1     
=========================================
  Files          1237     1237           
  Lines         69861    69861           
  Branches       9708     9708           
=========================================
+ Hits          28552    28553    +1     
  Misses        38677    38677           
+ Partials       2632     2631    -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ThomazFB ThomazFB marked this pull request as ready for review October 25, 2024 04:07
@ThomazFB ThomazFB merged commit d3c5371 into trunk Oct 25, 2024
17 checks passed
@ThomazFB ThomazFB deleted the issue/fix-trashing-a-new-duplicated-product branch October 25, 2024 04:08
@rachelmcr rachelmcr added this to the 20.9 ❄️ milestone Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature: product details Related to adding or editing products, includes product settings. type: bug A confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Products]Trashing a newly created duplicate product doesn't work.
4 participants