@mohasinac/appkit 4.34.1 → 4.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +32 -2
- package/dist/features/tester/components/TesterChecklistStepRow.d.ts +9 -1
- package/dist/features/tester/components/TesterChecklistStepRow.js +31 -2
- package/dist/features/tester/components/TesterHubView.js +8 -0
- package/dist/features/tester/schemas/firestore.d.ts +109 -0
- package/dist/features/tester/schemas/firestore.js +14 -0
- package/dist/features/tester/seed-data/_money-flows.d.ts +23 -0
- package/dist/features/tester/seed-data/_money-flows.js +430 -0
- package/dist/features/tester/seed-data/authored/_types.d.ts +33 -0
- package/dist/features/tester/seed-data/authored/_types.js +35 -0
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +207 -0
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +298 -0
- package/dist/features/tester/seed-data/authored/account-auth__testing-program--admin.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/account-auth__testing-program--admin.js +33 -0
- package/dist/features/tester/seed-data/authored/account-auth__testing-program.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/account-auth__testing-program.js +138 -0
- package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/addresses__address-filters.js +36 -0
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +75 -0
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +72 -0
- package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/addresses__state-picker.js +54 -0
- package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/addresses__unban-request.js +39 -0
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +226 -0
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +82 -0
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +177 -0
- package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__bundles.js +97 -0
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +232 -0
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +306 -0
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +158 -0
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +78 -0
- package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__content-deletes.js +261 -0
- package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__content-marketing.js +151 -0
- package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__coupons.js +214 -0
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +160 -0
- package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__media-watermark.js +104 -0
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +350 -0
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +105 -0
- package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__site-system.js +590 -0
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +235 -0
- package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/admin__users-trust.js +569 -0
- package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__bidding.js +417 -0
- package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__browsing-search.js +653 -0
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +533 -0
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +379 -0
- package/dist/features/tester/seed-data/authored/buying__cart.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__cart.js +1171 -0
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +140 -0
- package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__my-orders.js +257 -0
- package/dist/features/tester/seed-data/authored/buying__offers.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__offers.js +1111 -0
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +252 -0
- package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__product-detail.js +387 -0
- package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__return-request.js +152 -0
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +242 -0
- package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__reviews.js +113 -0
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +283 -0
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +167 -0
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +90 -0
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +344 -0
- package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/community-support__public-profile.js +53 -0
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +76 -0
- package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__blog.js +93 -0
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +149 -0
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +121 -0
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +207 -0
- package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__events.js +318 -0
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +65 -0
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +147 -0
- package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__search.js +332 -0
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +53 -0
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +52 -0
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +35 -0
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +141 -0
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +35 -0
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +95 -0
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +191 -0
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +158 -0
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +106 -0
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +88 -0
- package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__general-design.js +204 -0
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +301 -0
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +407 -0
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +214 -0
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +275 -0
- package/dist/features/tester/seed-data/authored/index.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/index.js +237 -0
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +102 -0
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +50 -0
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +66 -0
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +115 -0
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +136 -0
- package/dist/features/tester/seed-data/authored/public-pages__bug-hunters.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__bug-hunters.js +69 -0
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +263 -0
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +102 -0
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +234 -0
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +126 -0
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +255 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +59 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +88 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +51 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +35 -0
- package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__become-seller.js +94 -0
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +107 -0
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +285 -0
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +326 -0
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +136 -0
- package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__media-limits.js +128 -0
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +167 -0
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +117 -0
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +88 -0
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +151 -0
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +105 -0
- package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-guide.js +33 -0
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +347 -0
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +166 -0
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +89 -0
- package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-orders.js +195 -0
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +180 -0
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +164 -0
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +116 -0
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +111 -0
- package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/seo__og-images.js +91 -0
- package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/seo__page-metadata.js +122 -0
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +105 -0
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +744 -1
- package/dist/seed/carousel-slides-seed-data.js +1 -1
- package/dist/seed/products-standard-seed-data.js +2 -2
- package/dist/seed/reviews-seed-data.js +6 -1
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +6 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* WHY: Authored six-part procedures for the buying/order-status-lifecycle page.
|
|
3
|
+
* WHAT: 14 case(s), keyed by full checklist id.
|
|
4
|
+
*
|
|
5
|
+
* 🛑 THERE ARE NINE ORDER STATUSES AND THEY BELONG TO EXACTLY TWO SCOPES.
|
|
6
|
+
* Active / Closed / All is a tab bar over one field, and the mapping is total —
|
|
7
|
+
* a status in neither scope produces an order the buyer cannot find in any tab
|
|
8
|
+
* while it still exists and still charges them.
|
|
9
|
+
*
|
|
10
|
+
* `return_requested` is deliberately ACTIVE. It is the next action item, not an
|
|
11
|
+
* ending, and filing it under Closed hides exactly the orders that need attention.
|
|
12
|
+
*
|
|
13
|
+
* Two traps worth knowing before writing here. The scope tab and an explicit
|
|
14
|
+
* status filter are both equalities on the same field, so a scope that does not
|
|
15
|
+
* stand down when a status is chosen produces a query that can never match. And
|
|
16
|
+
* the standard scope is filtered in memory rather than as an equality, because
|
|
17
|
+
* orders written before the field existed carry no value and an equality would
|
|
18
|
+
* silently exclude every one of them.
|
|
19
|
+
*
|
|
20
|
+
* @tag domain:tester
|
|
21
|
+
* @tag layer:seed
|
|
22
|
+
* @tag pattern:none
|
|
23
|
+
* @tag access:server-only
|
|
24
|
+
* @tag consumers:seed-data/authored/index.ts
|
|
25
|
+
* @tag sideEffects:none
|
|
26
|
+
*/
|
|
27
|
+
const SIGN_IN_BUYER = "Sign in as rehan.sheikh@gmail.com / TempPass123!.";
|
|
28
|
+
const SIGN_IN_SELLER = "Sign in as tyson@beybladearena.in / TempPass123!.";
|
|
29
|
+
export const authored = {
|
|
30
|
+
"checklist-buying-order-status-lifecycle-all-statuses-render": {
|
|
31
|
+
roles: ["buyer"],
|
|
32
|
+
startPage: "/user/orders",
|
|
33
|
+
steps: [
|
|
34
|
+
SIGN_IN_BUYER,
|
|
35
|
+
"Open /user/orders and switch to the All tab.",
|
|
36
|
+
"Read every order's status badge and write down the distinct statuses seen.",
|
|
37
|
+
"Check none reads as a raw stored value such as an underscored word.",
|
|
38
|
+
"Check none is blank.",
|
|
39
|
+
"Switch to dark mode and read the badges again.",
|
|
40
|
+
],
|
|
41
|
+
expectedBehaviour: "Every status has a human label and a badge that is legible in both themes. A status the badge map does not cover falls back to a raw value or to nothing, which is how a real state ends up looking like a data error.",
|
|
42
|
+
expectedUiState: "Each order shows a readable status badge in both themes. A raw underscored value, a blank badge, or white-on-near-white in either theme is a finding, with the status named.",
|
|
43
|
+
endResult: "Read-only.",
|
|
44
|
+
},
|
|
45
|
+
"checklist-buying-order-status-lifecycle-active-closed-all-tabs": {
|
|
46
|
+
roles: ["buyer"],
|
|
47
|
+
startPage: "/user/orders",
|
|
48
|
+
steps: [
|
|
49
|
+
SIGN_IN_BUYER,
|
|
50
|
+
"Open /user/orders and count the orders in the All tab.",
|
|
51
|
+
"Write down each order's status.",
|
|
52
|
+
"Switch to Active and write down which orders it holds.",
|
|
53
|
+
"Switch to Closed and write down which orders it holds.",
|
|
54
|
+
"Add the Active and Closed counts and compare against All.",
|
|
55
|
+
"Identify any order that appears in neither.",
|
|
56
|
+
],
|
|
57
|
+
expectedBehaviour: "Every status maps to exactly one of the two scopes, so Active plus Closed equals All. The mapping is a total one per status specifically so that adding a tenth status is a compile error rather than an order that quietly belongs to neither tab.",
|
|
58
|
+
expectedUiState: "The two counts sum to the All count with no overlap. Any order in neither tab is the finding, named with its status.",
|
|
59
|
+
expectedData: { ordersInNeitherTab: 0 },
|
|
60
|
+
endResult: "Read-only.",
|
|
61
|
+
},
|
|
62
|
+
"checklist-buying-order-status-lifecycle-return-requested-is-active": {
|
|
63
|
+
roles: ["buyer"],
|
|
64
|
+
startPage: "/user/orders",
|
|
65
|
+
steps: [
|
|
66
|
+
SIGN_IN_BUYER,
|
|
67
|
+
"Open /user/orders and find an order whose status is Return Requested, or request a return on a delivered order to create one.",
|
|
68
|
+
"Switch to the Active tab and look for it.",
|
|
69
|
+
"Switch to the Closed tab and look for it.",
|
|
70
|
+
"Record which tab holds it.",
|
|
71
|
+
"Open the seller's own orders list and check it is treated the same way there.",
|
|
72
|
+
],
|
|
73
|
+
expectedBehaviour: "A return request is Active on both sides — it is the seller's next action item and the buyer's open matter. Filing it under Closed hides the orders that most need attention behind a tab labelled as finished.",
|
|
74
|
+
expectedUiState: "The order is under Active for the buyer and for the seller, and absent from Closed. Finding it under Closed is the finding.",
|
|
75
|
+
endResult: "Read-only, unless a return was opened to create the state.",
|
|
76
|
+
},
|
|
77
|
+
"checklist-buying-order-status-lifecycle-status-change-visible-to-buyer": {
|
|
78
|
+
roles: ["buyer", "seller"],
|
|
79
|
+
startPage: "/user/orders",
|
|
80
|
+
steps: [
|
|
81
|
+
SIGN_IN_BUYER,
|
|
82
|
+
"Open /user/orders, pick a pending order and note its status.",
|
|
83
|
+
"In a second browser, sign in as tyson@beybladearena.in / TempPass123!.",
|
|
84
|
+
"Open that order in /store/orders and move it to the next status.",
|
|
85
|
+
"In the buyer's browser, reload /user/orders.",
|
|
86
|
+
"Read the order's status.",
|
|
87
|
+
"Open the order's detail and read the timeline.",
|
|
88
|
+
],
|
|
89
|
+
expectedBehaviour: "A seller's status change is what the buyer's order reads, with no separate buyer-side copy to fall behind. The buyer should not have to sign out, clear anything, or wait for a background job for the change to appear.",
|
|
90
|
+
expectedUiState: "The buyer's list and detail both show the new status after a reload, and the timeline records the transition.",
|
|
91
|
+
endResult: "The order carries the advanced status.",
|
|
92
|
+
},
|
|
93
|
+
"checklist-buying-order-status-lifecycle-status-timeline-real-dates": {
|
|
94
|
+
roles: ["buyer"],
|
|
95
|
+
startPage: "/user/orders",
|
|
96
|
+
steps: [
|
|
97
|
+
SIGN_IN_BUYER,
|
|
98
|
+
"Open /user/orders and open a shipped or delivered order.",
|
|
99
|
+
"Read the timeline and note the date beside each step it has reached.",
|
|
100
|
+
"Check each date is plausible relative to the order's own date.",
|
|
101
|
+
"Find a step the order reached that has no recorded date.",
|
|
102
|
+
"Read what is shown in place of a date there.",
|
|
103
|
+
"Check no step shows today's date where the transition clearly happened earlier.",
|
|
104
|
+
],
|
|
105
|
+
expectedBehaviour: "A step with no recorded date shows a dash, never a fabricated one. Neither the current time nor a stand-in field is acceptable: the last-updated stamp means the last write of any kind, and a deadline is not an event — inventing either makes the record assert something that did not happen.",
|
|
106
|
+
expectedUiState: "Real dates on the steps that have them and an em-dash where none exists. Today's date on an old transition is the finding.",
|
|
107
|
+
endResult: "Read-only.",
|
|
108
|
+
},
|
|
109
|
+
"checklist-buying-order-status-lifecycle-status-timeline-future-steps": {
|
|
110
|
+
roles: ["buyer"],
|
|
111
|
+
startPage: "/user/orders",
|
|
112
|
+
steps: [
|
|
113
|
+
SIGN_IN_BUYER,
|
|
114
|
+
"Open /user/orders and open an order that is still early in its lifecycle.",
|
|
115
|
+
"Read the timeline top to bottom.",
|
|
116
|
+
"Check the statuses it has not reached are shown as upcoming rather than omitted.",
|
|
117
|
+
"Check they are visually distinct from the ones it has reached.",
|
|
118
|
+
"Open a delivered order and check its timeline shows no upcoming steps.",
|
|
119
|
+
],
|
|
120
|
+
expectedBehaviour: "The order lifecycle is a known sequence, so the steps ahead can be drawn — which is what tells the buyer what happens next rather than only what has happened. Records with no known sequence get a different timeline that draws only what occurred; an order is not one of them.",
|
|
121
|
+
expectedUiState: "Reached steps are dated and distinct; unreached steps appear as upcoming without dates. A delivered order shows no upcoming steps.",
|
|
122
|
+
endResult: "Read-only.",
|
|
123
|
+
},
|
|
124
|
+
"checklist-buying-order-status-lifecycle-cancel-allowed-only-before-shipping": {
|
|
125
|
+
roles: ["buyer"],
|
|
126
|
+
startPage: "/user/orders",
|
|
127
|
+
steps: [
|
|
128
|
+
SIGN_IN_BUYER,
|
|
129
|
+
"Open /user/orders and open a pending order.",
|
|
130
|
+
"Read whether a cancel control is offered.",
|
|
131
|
+
"Open a shipped order and read whether it is offered there.",
|
|
132
|
+
"Open a delivered order and read the same.",
|
|
133
|
+
"If a cancel control is offered on a shipped order, use it and read what happens.",
|
|
134
|
+
],
|
|
135
|
+
expectedBehaviour: "Cancelling is offered while it is still possible and refused once goods are in transit, with the refusal saying why. Offering the control and refusing on submit is worse than not offering it — the buyer has already decided by then.",
|
|
136
|
+
expectedUiState: "Cancel is present on the pending order and absent, or present with a stated reason for its refusal, on the shipped and delivered ones. A control that fails only at submit time is the finding.",
|
|
137
|
+
endResult: "No order is cancelled.",
|
|
138
|
+
},
|
|
139
|
+
"checklist-buying-order-status-lifecycle-cancellation-reason-recorded": {
|
|
140
|
+
roles: ["buyer", "seller"],
|
|
141
|
+
startPage: "/user/orders",
|
|
142
|
+
steps: [
|
|
143
|
+
SIGN_IN_BUYER,
|
|
144
|
+
"Open /user/orders and cancel a pending order, giving the reason 'QA cancellation reason probe — checklist case.'",
|
|
145
|
+
"Reload and read the reason on the buyer's own order.",
|
|
146
|
+
"Sign in as tyson@beybladearena.in / TempPass123!.",
|
|
147
|
+
"Open that order in /store/orders.",
|
|
148
|
+
"Read the cancellation reason there.",
|
|
149
|
+
"Check it is the text the buyer typed, in full.",
|
|
150
|
+
],
|
|
151
|
+
inputs: { reason: "QA cancellation reason probe — checklist case." },
|
|
152
|
+
expectedBehaviour: "The reason is stored on the order and reaches the seller. Cancellation reason is one of the tracked fields the order timeline records, so it survives on both sides — a reason captured and shown only to the buyer teaches the seller nothing about why their sales cancel.",
|
|
153
|
+
expectedUiState: "The exact typed text appears on both the buyer's and the seller's view of the order. A truncation or an absence on the seller's side is the finding.",
|
|
154
|
+
endResult: "One order is cancelled with a recorded reason.",
|
|
155
|
+
},
|
|
156
|
+
"checklist-buying-order-status-lifecycle-refund-appears-in-timeline": {
|
|
157
|
+
roles: ["admin", "buyer"],
|
|
158
|
+
startPage: "/admin/orders",
|
|
159
|
+
steps: [
|
|
160
|
+
"Sign in as admin@letitrip.in / TempPass123!.",
|
|
161
|
+
"Open /admin/orders and issue a PARTIAL refund on a delivered order.",
|
|
162
|
+
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
163
|
+
"Open that order in /user/orders and read the timeline.",
|
|
164
|
+
"Check an entry records the refund with its amount.",
|
|
165
|
+
"Check the entry reads as a refund rather than as an array changing size.",
|
|
166
|
+
],
|
|
167
|
+
expectedBehaviour: "A partial refund changes no tracked status field, so a plain difference between the record before and after would produce nothing at all. It is contributed to the timeline explicitly, with its amount — and reading 'a list of one became a list of two' would be true and useless, which is why differencing the refund list was rejected.",
|
|
168
|
+
expectedUiState: "A timeline entry naming the refund and its amount. No entry at all, or an entry describing a list changing size, are both findings.",
|
|
169
|
+
endResult: "One order carries a partial refund.",
|
|
170
|
+
},
|
|
171
|
+
"checklist-buying-order-status-lifecycle-tracking-number-shows-when-set": {
|
|
172
|
+
roles: ["seller", "buyer"],
|
|
173
|
+
startPage: "/store/orders",
|
|
174
|
+
steps: [
|
|
175
|
+
SIGN_IN_SELLER,
|
|
176
|
+
"Open /store/orders and open a processing order.",
|
|
177
|
+
"Set the carrier to 'Delhivery' and the tracking number to 'QA1234567890'.",
|
|
178
|
+
"Save and move the order to shipped.",
|
|
179
|
+
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
180
|
+
"Open that order and read the carrier and tracking number.",
|
|
181
|
+
"Follow the tracking link and read where it lands.",
|
|
182
|
+
],
|
|
183
|
+
inputs: { carrier: "Delhivery", trackingNumber: "QA1234567890" },
|
|
184
|
+
expectedBehaviour: "Both values reach the buyer and the tracking link resolves. A tracking number shown without a working link makes the buyer hunt for the carrier's site themselves, and a link built from the wrong field lands on the carrier's homepage with no order attached.",
|
|
185
|
+
expectedUiState: "The buyer's order shows Delhivery and QA1234567890, and the link opens the carrier's tracking page for that number.",
|
|
186
|
+
expectedData: { trackingNumber: "QA1234567890" },
|
|
187
|
+
endResult: "The order is shipped with tracking recorded.",
|
|
188
|
+
},
|
|
189
|
+
"checklist-buying-order-status-lifecycle-order-scope-filter-and-status-filter": {
|
|
190
|
+
roles: ["buyer"],
|
|
191
|
+
startPage: "/user/orders",
|
|
192
|
+
steps: [
|
|
193
|
+
SIGN_IN_BUYER,
|
|
194
|
+
"Open /user/orders on the Active tab and count the orders.",
|
|
195
|
+
"Apply an explicit status filter for a status that IS active, such as Shipped.",
|
|
196
|
+
"Read the result.",
|
|
197
|
+
"Apply an explicit status filter for a status that is NOT active, such as Delivered, while still on the Active tab.",
|
|
198
|
+
"Read the result and any explanation shown.",
|
|
199
|
+
"Clear the status filter and check the tab's own result returns.",
|
|
200
|
+
],
|
|
201
|
+
expectedBehaviour: "The scope tab and an explicit status filter are both equalities on the same field, and two equalities on one field can never both match. The tab therefore stands down when an explicit status is chosen — otherwise the second combination returns an empty list forever with nothing to indicate why.",
|
|
202
|
+
expectedUiState: "The Shipped filter returns shipped orders. The Delivered filter returns delivered orders rather than nothing, or explains that the tab was overridden. A silent empty list is the finding.",
|
|
203
|
+
endResult: "Read-only.",
|
|
204
|
+
},
|
|
205
|
+
"checklist-buying-order-status-lifecycle-seller-status-controls-match-state": {
|
|
206
|
+
roles: ["seller"],
|
|
207
|
+
startPage: "/store/orders",
|
|
208
|
+
steps: [
|
|
209
|
+
SIGN_IN_SELLER,
|
|
210
|
+
"Open /store/orders and open a pending order.",
|
|
211
|
+
"Read every status the controls offer.",
|
|
212
|
+
"Open a shipped order and read the same.",
|
|
213
|
+
"Open a delivered order and read the same.",
|
|
214
|
+
"Open a cancelled order and read the same.",
|
|
215
|
+
"Record any control offering a transition that makes no sense from the current status.",
|
|
216
|
+
],
|
|
217
|
+
expectedBehaviour: "The controls offer only what is reachable from where the order actually is. Offering every status from every state lets a seller move a cancelled order to shipped — and once written, that is a record nobody can explain and no screen refuses to render.",
|
|
218
|
+
expectedUiState: "Each order offers only forward-plausible transitions, and a cancelled order offers none or only a documented recovery. An impossible transition on offer is the finding, named with the order's current status.",
|
|
219
|
+
endResult: "Read-only; change nothing.",
|
|
220
|
+
},
|
|
221
|
+
"checklist-buying-order-status-lifecycle-status-history-actor-recorded": {
|
|
222
|
+
roles: ["buyer", "seller", "admin"],
|
|
223
|
+
startPage: "/user/orders",
|
|
224
|
+
steps: [
|
|
225
|
+
SIGN_IN_SELLER,
|
|
226
|
+
"Move an order forward one status.",
|
|
227
|
+
"Sign in as admin@letitrip.in / TempPass123! and change something on the same order.",
|
|
228
|
+
"Sign in as rehan.sheikh@gmail.com / TempPass123! and open that order.",
|
|
229
|
+
"Read the timeline and check each entry names who made the change.",
|
|
230
|
+
"Check the seller's change is attributed to the seller and the admin's to an admin.",
|
|
231
|
+
"Check no entry shows a personal name or email in place of a role.",
|
|
232
|
+
],
|
|
233
|
+
expectedBehaviour: "Each entry records the acting role and an identifier, never a name or an email. History is stored inside the order document, and the encryption pass that protects personal fields does not descend into nested arrays — so a name written there would sit in plain text and never be protected on the way back out.",
|
|
234
|
+
expectedUiState: "Every entry attributes its change to buyer, seller, admin or the system. A readable email or personal name in an entry is a finding and a leak rather than a display choice.",
|
|
235
|
+
endResult: "The order carries two recorded changes.",
|
|
236
|
+
},
|
|
237
|
+
"checklist-buying-order-status-lifecycle-orders-list-shows-item-not-id": {
|
|
238
|
+
roles: ["buyer", "seller", "admin"],
|
|
239
|
+
startPage: "/user/orders",
|
|
240
|
+
steps: [
|
|
241
|
+
SIGN_IN_BUYER,
|
|
242
|
+
"Open /user/orders and read the primary line of each row.",
|
|
243
|
+
"Check it names the item rather than only an order identifier.",
|
|
244
|
+
"Check a thumbnail of that item is shown.",
|
|
245
|
+
"Find a multi-item order and read how the extra items are indicated.",
|
|
246
|
+
"Repeat on /store/orders as the seller and on /admin/orders as the admin.",
|
|
247
|
+
],
|
|
248
|
+
expectedBehaviour: "A row names what the order was for. The item title and image are denormalised onto the order specifically so no list needs a second read to show them — a row reading only an identifier is a row builder that never read fields already sitting on the record.",
|
|
249
|
+
expectedUiState: "Each row shows the item title and thumbnail, with the identifier de-emphasised, and a multi-item order indicates the remainder. This holds on all three surfaces; any one showing only an identifier is a finding.",
|
|
250
|
+
endResult: "Read-only.",
|
|
251
|
+
},
|
|
252
|
+
};
|