@mohasinac/appkit 4.58.0 → 4.59.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/.build-stamp.json +3 -3
- package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
- package/dist/_internal/server/jobs/handlers/messages.js +1 -1
- package/dist/_internal/shared/types/base-document.d.ts +1 -1
- package/dist/constants/seed-meta.d.ts +113 -0
- package/dist/constants/seed-meta.js +91 -0
- package/dist/index.d.ts +0 -131
- package/dist/index.js +50 -294
- package/dist/server.d.ts +0 -69
- package/dist/server.js +0 -69
- package/package.json +4 -2
- package/scripts/seed-cli.mjs +69 -1
- package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
- package/dist/features/tester/seed-data/_happy-path.js +0 -710
- package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
- package/dist/features/tester/seed-data/_money-flows.js +0 -610
- package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
- package/dist/features/tester/seed-data/authored/_types.js +0 -35
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
- package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
- package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
- package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
- package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
- package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
- package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
- package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
- package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
- package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
- package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
- package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
- package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
- package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
- package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
- package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
- package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
- package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
- package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
- package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
- package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
- package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
- package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
- package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
- package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/index.js +0 -301
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
- package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
- package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
- package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
- package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
- package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
- package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
- package/dist/features/tester/seed-data/index.d.ts +0 -2
- package/dist/features/tester/seed-data/index.js +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
- package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
- package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
- package/dist/features/tester/seed-data/tester-window.js +0 -66
- package/dist/seed/_helpers/brand-rows.d.ts +0 -35
- package/dist/seed/_helpers/brand-rows.js +0 -600
- package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
- package/dist/seed/_helpers/category-content-generated.js +0 -1853
- package/dist/seed/_helpers/category-content.d.ts +0 -68
- package/dist/seed/_helpers/category-content.js +0 -731
- package/dist/seed/_helpers/category-forest.d.ts +0 -4
- package/dist/seed/_helpers/category-forest.js +0 -824
- package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
- package/dist/seed/_helpers/category-images-generated.js +0 -618
- package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
- package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
- package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
- package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
- package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
- package/dist/seed/_helpers/category-models.d.ts +0 -12
- package/dist/seed/_helpers/category-models.js +0 -45
- package/dist/seed/_helpers/category-names.d.ts +0 -54
- package/dist/seed/_helpers/category-names.js +0 -118
- package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
- package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
- package/dist/seed/_helpers/category-parts.d.ts +0 -9
- package/dist/seed/_helpers/category-parts.js +0 -15022
- package/dist/seed/_helpers/category-tree.d.ts +0 -27
- package/dist/seed/_helpers/category-tree.js +0 -119
- package/dist/seed/_helpers/character-features.d.ts +0 -10
- package/dist/seed/_helpers/character-features.js +0 -120
- package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
- package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
- package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
- package/dist/seed/_helpers/franchise-rows.js +0 -189
- package/dist/seed/_helpers/media.d.ts +0 -67
- package/dist/seed/_helpers/media.js +0 -172
- package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
- package/dist/seed/_helpers/part-colours-generated.js +0 -273
- package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
- package/dist/seed/_helpers/product-search-txt.js +0 -23
- package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
- package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
- package/dist/seed/addresses-seed-data.d.ts +0 -2
- package/dist/seed/addresses-seed-data.js +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
- package/dist/seed/bey-products-seed-data.d.ts +0 -18
- package/dist/seed/bey-products-seed-data.js +0 -18011
- package/dist/seed/beys/chunk0.d.ts +0 -17
- package/dist/seed/beys/chunk0.js +0 -36733
- package/dist/seed/beys/chunk1.d.ts +0 -17
- package/dist/seed/beys/chunk1.js +0 -35728
- package/dist/seed/beys/chunk2.d.ts +0 -17
- package/dist/seed/beys/chunk2.js +0 -35857
- package/dist/seed/beys/chunk3.d.ts +0 -17
- package/dist/seed/beys/chunk3.js +0 -34476
- package/dist/seed/beys-seed-data.d.ts +0 -18
- package/dist/seed/beys-seed-data.js +0 -11
- package/dist/seed/bids-seed-data.d.ts +0 -2
- package/dist/seed/bids-seed-data.js +0 -206
- package/dist/seed/blog-posts-seed-data.d.ts +0 -6
- package/dist/seed/blog-posts-seed-data.js +0 -442
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
- package/dist/seed/carousel-slides-seed-data.js +0 -411
- package/dist/seed/carousels-seed-data.d.ts +0 -2
- package/dist/seed/carousels-seed-data.js +0 -36
- package/dist/seed/cart-seed-data.d.ts +0 -2
- package/dist/seed/cart-seed-data.js +0 -241
- package/dist/seed/catalogue-seed-data.d.ts +0 -2
- package/dist/seed/catalogue-seed-data.js +0 -112
- package/dist/seed/categories-seed-data.d.ts +0 -3
- package/dist/seed/categories-seed-data.js +0 -816
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
- package/dist/seed/claimed-coupons-seed-data.js +0 -85
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
- package/dist/seed/coupon-usage-seed-data.js +0 -55
- package/dist/seed/coupons-seed-data.d.ts +0 -2
- package/dist/seed/coupons-seed-data.js +0 -226
- package/dist/seed/defaults/categories.d.ts +0 -2
- package/dist/seed/defaults/categories.js +0 -12
- package/dist/seed/defaults/faqs.d.ts +0 -2
- package/dist/seed/defaults/faqs.js +0 -40
- package/dist/seed/events-seed-data.d.ts +0 -7
- package/dist/seed/events-seed-data.js +0 -482
- package/dist/seed/factories/address.factory.d.ts +0 -21
- package/dist/seed/factories/address.factory.js +0 -44
- package/dist/seed/factories/bid.factory.d.ts +0 -15
- package/dist/seed/factories/bid.factory.js +0 -33
- package/dist/seed/factories/blog-post.factory.d.ts +0 -15
- package/dist/seed/factories/blog-post.factory.js +0 -22
- package/dist/seed/factories/carousel.factory.d.ts +0 -11
- package/dist/seed/factories/carousel.factory.js +0 -17
- package/dist/seed/factories/cart.factory.d.ts +0 -25
- package/dist/seed/factories/cart.factory.js +0 -35
- package/dist/seed/factories/category.factory.d.ts +0 -11
- package/dist/seed/factories/category.factory.js +0 -16
- package/dist/seed/factories/coupon.factory.d.ts +0 -21
- package/dist/seed/factories/coupon.factory.js +0 -43
- package/dist/seed/factories/faq.factory.d.ts +0 -10
- package/dist/seed/factories/faq.factory.js +0 -15
- package/dist/seed/factories/notification.factory.d.ts +0 -18
- package/dist/seed/factories/notification.factory.js +0 -39
- package/dist/seed/factories/order.factory.d.ts +0 -20
- package/dist/seed/factories/order.factory.js +0 -20
- package/dist/seed/factories/payout.factory.d.ts +0 -21
- package/dist/seed/factories/payout.factory.js +0 -38
- package/dist/seed/factories/product.factory.d.ts +0 -27
- package/dist/seed/factories/product.factory.js +0 -80
- package/dist/seed/factories/review.factory.d.ts +0 -14
- package/dist/seed/factories/review.factory.js +0 -52
- package/dist/seed/factories/session.factory.d.ts +0 -15
- package/dist/seed/factories/session.factory.js +0 -31
- package/dist/seed/factories/store.factory.d.ts +0 -23
- package/dist/seed/factories/store.factory.js +0 -47
- package/dist/seed/factories/user.factory.d.ts +0 -19
- package/dist/seed/factories/user.factory.js +0 -56
- package/dist/seed/faq-seed-data.d.ts +0 -18
- package/dist/seed/faq-seed-data.js +0 -1956
- package/dist/seed/firestore-indexes.d.ts +0 -12
- package/dist/seed/firestore-indexes.js +0 -31
- package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
- package/dist/seed/grouped-listings-seed-data.js +0 -283
- package/dist/seed/history-seed-data.d.ts +0 -12
- package/dist/seed/history-seed-data.js +0 -70
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
- package/dist/seed/homepage-sections-seed-data.js +0 -1034
- package/dist/seed/index.d.ts +0 -100
- package/dist/seed/index.js +0 -115
- package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
- package/dist/seed/lottery-entries-seed-data.js +0 -108
- package/dist/seed/manifest.d.ts +0 -16
- package/dist/seed/manifest.js +0 -235
- package/dist/seed/media-assets-seed-data.d.ts +0 -22
- package/dist/seed/media-assets-seed-data.js +0 -5593
- package/dist/seed/model-composition-seed-data.d.ts +0 -15
- package/dist/seed/model-composition-seed-data.js +0 -9032
- package/dist/seed/notifications-seed-data.d.ts +0 -2
- package/dist/seed/notifications-seed-data.js +0 -606
- package/dist/seed/offers-seed-data.d.ts +0 -2
- package/dist/seed/offers-seed-data.js +0 -398
- package/dist/seed/orders-seed-data.d.ts +0 -2
- package/dist/seed/orders-seed-data.js +0 -845
- package/dist/seed/part-glossary/chunk0.d.ts +0 -9
- package/dist/seed/part-glossary/chunk0.js +0 -35448
- package/dist/seed/part-glossary/chunk1.d.ts +0 -9
- package/dist/seed/part-glossary/chunk1.js +0 -40494
- package/dist/seed/part-glossary/chunk2.d.ts +0 -9
- package/dist/seed/part-glossary/chunk2.js +0 -51242
- package/dist/seed/part-glossary/chunk3.d.ts +0 -9
- package/dist/seed/part-glossary/chunk3.js +0 -53337
- package/dist/seed/part-glossary/chunk4.d.ts +0 -9
- package/dist/seed/part-glossary/chunk4.js +0 -51454
- package/dist/seed/part-glossary-seed-data.d.ts +0 -15
- package/dist/seed/part-glossary-seed-data.js +0 -25
- package/dist/seed/payouts-seed-data.d.ts +0 -2
- package/dist/seed/payouts-seed-data.js +0 -302
- package/dist/seed/product-features-seed-data.d.ts +0 -3
- package/dist/seed/product-features-seed-data.js +0 -366
- package/dist/seed/products-art-seed-data.d.ts +0 -2
- package/dist/seed/products-art-seed-data.js +0 -289
- package/dist/seed/products-auctions-seed-data.d.ts +0 -2
- package/dist/seed/products-auctions-seed-data.js +0 -475
- package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
- package/dist/seed/products-beyblade-x-seed-data.js +0 -476
- package/dist/seed/products-catalogue/chunk0.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk0.js +0 -7262
- package/dist/seed/products-catalogue/chunk1.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk1.js +0 -7290
- package/dist/seed/products-catalogue/chunk10.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk10.js +0 -7290
- package/dist/seed/products-catalogue/chunk11.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk11.js +0 -7005
- package/dist/seed/products-catalogue/chunk12.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk12.js +0 -7002
- package/dist/seed/products-catalogue/chunk13.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk13.js +0 -7002
- package/dist/seed/products-catalogue/chunk14.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk14.js +0 -7002
- package/dist/seed/products-catalogue/chunk15.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk15.js +0 -7002
- package/dist/seed/products-catalogue/chunk16.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk16.js +0 -7002
- package/dist/seed/products-catalogue/chunk17.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk17.js +0 -7002
- package/dist/seed/products-catalogue/chunk18.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk18.js +0 -4398
- package/dist/seed/products-catalogue/chunk2.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk2.js +0 -7268
- package/dist/seed/products-catalogue/chunk3.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk3.js +0 -7264
- package/dist/seed/products-catalogue/chunk4.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk4.js +0 -7268
- package/dist/seed/products-catalogue/chunk5.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk5.js +0 -7258
- package/dist/seed/products-catalogue/chunk6.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk6.js +0 -7268
- package/dist/seed/products-catalogue/chunk7.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk7.js +0 -7311
- package/dist/seed/products-catalogue/chunk8.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk8.js +0 -7304
- package/dist/seed/products-catalogue/chunk9.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk9.js +0 -7309
- package/dist/seed/products-catalogue-seed-data.d.ts +0 -2
- package/dist/seed/products-catalogue-seed-data.js +0 -60
- package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
- package/dist/seed/products-classifieds-seed-data.js +0 -435
- package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
- package/dist/seed/products-digital-codes-seed-data.js +0 -395
- package/dist/seed/products-live-items-seed-data.d.ts +0 -7
- package/dist/seed/products-live-items-seed-data.js +0 -269
- package/dist/seed/products-preorders-seed-data.d.ts +0 -2
- package/dist/seed/products-preorders-seed-data.js +0 -360
- package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
- package/dist/seed/products-prize-draws-seed-data.js +0 -427
- package/dist/seed/products-spares-seed-data.d.ts +0 -2
- package/dist/seed/products-spares-seed-data.js +0 -368
- package/dist/seed/products-standard-seed-data.d.ts +0 -2
- package/dist/seed/products-standard-seed-data.js +0 -632
- package/dist/seed/products-stickers-seed-data.d.ts +0 -2
- package/dist/seed/products-stickers-seed-data.js +0 -319
- package/dist/seed/reviews-seed-data.d.ts +0 -1
- package/dist/seed/reviews-seed-data.js +0 -185
- package/dist/seed/runner.d.ts +0 -2
- package/dist/seed/runner.js +0 -125
- package/dist/seed/scammers-seed-data.d.ts +0 -2
- package/dist/seed/scammers-seed-data.js +0 -235
- package/dist/seed/seed-market-config.d.ts +0 -48
- package/dist/seed/seed-market-config.js +0 -199
- package/dist/seed/seed-purpose.d.ts +0 -299
- package/dist/seed/seed-purpose.js +0 -440
- package/dist/seed/sessions-seed-data.d.ts +0 -3
- package/dist/seed/sessions-seed-data.js +0 -116
- package/dist/seed/shipments-seed-data.d.ts +0 -5
- package/dist/seed/shipments-seed-data.js +0 -185
- package/dist/seed/site-settings-seed-data.d.ts +0 -2
- package/dist/seed/site-settings-seed-data.js +0 -1069
- package/dist/seed/store-addresses-seed-data.d.ts +0 -18
- package/dist/seed/store-addresses-seed-data.js +0 -71
- package/dist/seed/store-extensions-seed-data.d.ts +0 -11
- package/dist/seed/store-extensions-seed-data.js +0 -292
- package/dist/seed/stores-seed-data.d.ts +0 -6
- package/dist/seed/stores-seed-data.js +0 -242
- package/dist/seed/support-tickets-seed-data.d.ts +0 -16
- package/dist/seed/support-tickets-seed-data.js +0 -239
- package/dist/seed/tax-codes-seed-data.d.ts +0 -34
- package/dist/seed/tax-codes-seed-data.js +0 -100
- package/dist/seed/test-data-ttl.d.ts +0 -29
- package/dist/seed/test-data-ttl.js +0 -31
- package/dist/seed/test-utils.d.ts +0 -49
- package/dist/seed/test-utils.js +0 -110
- package/dist/seed/types.d.ts +0 -89
- package/dist/seed/types.js +0 -15
- package/dist/seed/users-seed-data.d.ts +0 -2
- package/dist/seed/users-seed-data.js +0 -597
- package/dist/seed/wishlists-seed-data.d.ts +0 -12
- package/dist/seed/wishlists-seed-data.js +0 -54
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: Authored six-part procedures for the buying/user-uncovered-pages page.
|
|
3
|
-
* WHAT: 4 case(s), keyed by full checklist id.
|
|
4
|
-
*
|
|
5
|
-
* Four buyer routes the sweep found with no case naming them anywhere. Three are
|
|
6
|
-
* "editors that are also pages" — opened by URL, they must render with the form
|
|
7
|
-
* ALREADY open, because a page whose only content is a closed drawer is a blank
|
|
8
|
-
* screen with a working URL.
|
|
9
|
-
*
|
|
10
|
-
* @tag domain:tester
|
|
11
|
-
* @tag layer:seed
|
|
12
|
-
* @tag pattern:none
|
|
13
|
-
* @tag access:server-only
|
|
14
|
-
* @tag consumers:seed-data/authored/index.ts
|
|
15
|
-
* @tag sideEffects:none
|
|
16
|
-
*/
|
|
17
|
-
const SIGN_IN_BUYER = "Sign in as rehan.sheikh@gmail.com / TempPass123!.";
|
|
18
|
-
export const authored = {
|
|
19
|
-
"checklist-buying-user-uncovered-pages-user-preorders-renders": {
|
|
20
|
-
roles: ["buyer"],
|
|
21
|
-
startPage: "/user/pre-orders",
|
|
22
|
-
steps: [
|
|
23
|
-
SIGN_IN_BUYER,
|
|
24
|
-
"Open /user/pre-orders.",
|
|
25
|
-
"Read the pre-orders listed, or the empty state.",
|
|
26
|
-
"For each, read its production status and its expected delivery date.",
|
|
27
|
-
"Open one and check it links back to the listing it was placed against.",
|
|
28
|
-
"Check the deposit paid is distinguished from the full price.",
|
|
29
|
-
],
|
|
30
|
-
expectedBehaviour: "A buyer's pre-orders are listed with the two things that make them different from an ordinary order — production status and expected delivery. A pre-order is bought at a deposit, so showing only the full price misstates what was charged and what is still owed.",
|
|
31
|
-
expectedUiState: "Each pre-order shows its production status, its expected delivery date and its deposit against the full price, and links to its listing. An empty state is acceptable only if the account has none.",
|
|
32
|
-
endResult: "Read-only.",
|
|
33
|
-
},
|
|
34
|
-
"checklist-buying-user-uncovered-pages-user-support-new-renders": {
|
|
35
|
-
roles: ["buyer"],
|
|
36
|
-
startPage: "/user/support/new",
|
|
37
|
-
steps: [
|
|
38
|
-
SIGN_IN_BUYER,
|
|
39
|
-
"Open /user/support/new directly by URL.",
|
|
40
|
-
"Read whether the ticket form is already open or whether the page is blank.",
|
|
41
|
-
"Close or cancel the form.",
|
|
42
|
-
"Read where the browser lands.",
|
|
43
|
-
"Check it is the ticket list rather than a dead route.",
|
|
44
|
-
],
|
|
45
|
-
expectedBehaviour: "An editor that is also a page opens with its form already showing, and cancelling lands on the list it belongs to. A page whose content is a closed drawer is blank with a working URL — nothing errors, and there is nothing to click.",
|
|
46
|
-
expectedUiState: "The form is open on arrival, and cancelling lands on /user/support. A blank page, or a cancel that leaves the browser nowhere, are both findings.",
|
|
47
|
-
endResult: "No ticket is created.",
|
|
48
|
-
},
|
|
49
|
-
"checklist-buying-user-uncovered-pages-user-catalogue-new-renders": {
|
|
50
|
-
roles: ["buyer"],
|
|
51
|
-
startPage: "/user/catalogue/new",
|
|
52
|
-
steps: [
|
|
53
|
-
SIGN_IN_BUYER,
|
|
54
|
-
"Open /user/catalogue/new directly by URL.",
|
|
55
|
-
"Check the form is already open.",
|
|
56
|
-
"Fill it with the title 'QA Catalogue Probe' and upload /test-media/sample-image.png.",
|
|
57
|
-
"Save it.",
|
|
58
|
-
"Read where the browser lands and check the item is in the catalogue list.",
|
|
59
|
-
"Reload and check it is still there, then delete it.",
|
|
60
|
-
],
|
|
61
|
-
inputs: { title: "QA Catalogue Probe", imagePath: "/test-media/sample-image.png" },
|
|
62
|
-
expectedBehaviour: "The form opens on arrival, saves, and the saved item appears in the list. Reloading is the whole check — an item that never reached storage looks identical until then, and an image that was never finalised renders once and breaks later.",
|
|
63
|
-
expectedUiState: "The item is listed with its photo after the save and still after the reload. A broken image on the second load is the finalise failure.",
|
|
64
|
-
endResult: "The QA catalogue item is deleted.",
|
|
65
|
-
},
|
|
66
|
-
"checklist-buying-user-uncovered-pages-user-addresses-add-renders": {
|
|
67
|
-
roles: ["buyer"],
|
|
68
|
-
startPage: "/user/addresses/add",
|
|
69
|
-
steps: [
|
|
70
|
-
SIGN_IN_BUYER,
|
|
71
|
-
/*
|
|
72
|
-
* 🛑 THIS URL REDIRECTS, AND THAT IS THE POINT OF TESTING IT.
|
|
73
|
-
*
|
|
74
|
-
* /user/addresses/add is a three-line legacy shim that redirects to
|
|
75
|
-
* /user/addresses/new — kept deliberately, because the old path has been
|
|
76
|
-
* live and may be bookmarked. The form this case then fills is the /new
|
|
77
|
-
* one.
|
|
78
|
-
*
|
|
79
|
-
* The step used to say only "check the form is already open", which
|
|
80
|
-
* passes whether the redirect works or the browser merely happens to land
|
|
81
|
-
* somewhere with a form. Reading the URL is what actually tests the shim,
|
|
82
|
-
* and it is the only thing this case covers that its sibling on /new
|
|
83
|
-
* does not.
|
|
84
|
-
*/
|
|
85
|
-
"Open /user/addresses/add directly by URL.",
|
|
86
|
-
"Read the address bar: it must now be /user/addresses/new — the old path is a legacy redirect, not a page of its own.",
|
|
87
|
-
"Check the form is already open.",
|
|
88
|
-
"Fill it with the name 'QA Address Probe', phone 9876543210, line 1 '221B Test Street', landmark 'Opposite the QA park', postal code 560001.",
|
|
89
|
-
"Save it.",
|
|
90
|
-
"Read the address list and find the new entry.",
|
|
91
|
-
"Open it for edit and check the landmark survived.",
|
|
92
|
-
"Delete the address afterwards.",
|
|
93
|
-
],
|
|
94
|
-
inputs: {
|
|
95
|
-
fullName: "QA Address Probe",
|
|
96
|
-
phone: "9876543210",
|
|
97
|
-
addressLine1: "221B Test Street",
|
|
98
|
-
landmark: "Opposite the QA park",
|
|
99
|
-
postalCode: "560001",
|
|
100
|
-
},
|
|
101
|
-
expectedBehaviour: "Every field the form collects is written and read back — the landmark specifically, because a form missing a field the server accepts sends nothing for it on every edit and quietly drops whatever was there. Reopening the saved address for edit is the only way to see it.",
|
|
102
|
-
expectedUiState: "The address bar reads /user/addresses/new after the redirect, not /add. The address appears in the list, and reopening it for edit shows all five values including the landmark. A landmark that is blank on reopen is the finding.",
|
|
103
|
-
endResult: "The QA address is deleted.",
|
|
104
|
-
},
|
|
105
|
-
};
|
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: Authored six-part procedures for the buying/wishlist-history page.
|
|
3
|
-
* WHAT: 20 case(s), keyed by full checklist id.
|
|
4
|
-
*
|
|
5
|
-
* Written by hand, case by case, against the label each one states. There is no
|
|
6
|
-
* generator: the authoring scripts were deleted once it was clear they were
|
|
7
|
-
* scaffolding around work that is simply writing.
|
|
8
|
-
*
|
|
9
|
-
* 🛑 THE TWO CAPS BEHAVE DIFFERENTLY ON PURPOSE. The wishlist is a HARD cap of 20
|
|
10
|
-
* — the twenty-first add is refused with an error, because silently dropping an
|
|
11
|
-
* item the buyer asked to save is worse than telling them the list is full. History
|
|
12
|
-
* is a SOFT cap of 50 with silent oldest-first eviction, because nobody asked for
|
|
13
|
-
* a browsing record and an error about it would be noise.
|
|
14
|
-
*
|
|
15
|
-
* Both are one document per user, keyed on the user's own id, and every mutation
|
|
16
|
-
* runs in a transaction — two quick taps must not race into a duplicate.
|
|
17
|
-
*
|
|
18
|
-
* @tag domain:tester
|
|
19
|
-
* @tag layer:seed
|
|
20
|
-
* @tag pattern:none
|
|
21
|
-
* @tag access:server-only
|
|
22
|
-
* @tag consumers:seed-data/authored/index.ts
|
|
23
|
-
* @tag sideEffects:none
|
|
24
|
-
*/
|
|
25
|
-
export const authored = {
|
|
26
|
-
"checklist-buying-wishlist-history-add-wishlist-pdp": {
|
|
27
|
-
roles: ["buyer"],
|
|
28
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
29
|
-
steps: [
|
|
30
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
31
|
-
"Open /products/product-beyblade-burst-valkyrie and read the wishlist control's state.",
|
|
32
|
-
"Click it and watch the control while the request runs.",
|
|
33
|
-
"Read its state afterwards.",
|
|
34
|
-
"Open /wishlist and find the item.",
|
|
35
|
-
"Return to the product page and reload it, then read the control again.",
|
|
36
|
-
],
|
|
37
|
-
inputs: { productId: "product-beyblade-burst-valkyrie" },
|
|
38
|
-
expectedBehaviour: "The control adds the item and then reflects that it is saved. It must also reflect the saved state on a fresh load — a control that resets to unsaved on reload is reading nothing and will let the buyer add the same item twice.",
|
|
39
|
-
expectedUiState: "The control changes to a saved state without a full page load, the item appears on /wishlist, and after the reload the control still reads as saved.",
|
|
40
|
-
endResult: "The item is on the wishlist. Later cases in this page read it.",
|
|
41
|
-
},
|
|
42
|
-
"checklist-buying-wishlist-history-add-wishlist-card": {
|
|
43
|
-
roles: ["buyer"],
|
|
44
|
-
startPage: "/products",
|
|
45
|
-
steps: [
|
|
46
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
47
|
-
"Open /products and find a product card with a wishlist control.",
|
|
48
|
-
"Click the wishlist control on the card WITHOUT opening the product.",
|
|
49
|
-
"Read the control's state and check the page did not navigate.",
|
|
50
|
-
"Click the card's body and check it opens that product.",
|
|
51
|
-
"Go back and check the card's control still reads as saved.",
|
|
52
|
-
],
|
|
53
|
-
expectedBehaviour: "The card's wishlist control acts in place and does not navigate. Clicking the card body still opens the product — merely wiring a control onto a card must not disable its navigation, which is a defect this codebase has had where a selection callback silently removed the link.",
|
|
54
|
-
expectedUiState: "The control saves without navigating, and the card body still opens the product afterwards. A card that stops opening once it carries a control is the failure.",
|
|
55
|
-
endResult: "A second item is on the wishlist.",
|
|
56
|
-
},
|
|
57
|
-
"checklist-buying-wishlist-history-remove-wishlist": {
|
|
58
|
-
roles: ["buyer"],
|
|
59
|
-
startPage: "/wishlist",
|
|
60
|
-
steps: [
|
|
61
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
62
|
-
"Open /wishlist and note how many items it holds.",
|
|
63
|
-
"Remove one item and read what happens.",
|
|
64
|
-
"RELOAD and count the items.",
|
|
65
|
-
"Open that product's page and read its wishlist control.",
|
|
66
|
-
"Remove an item from the product page instead and check /wishlist reflects it.",
|
|
67
|
-
],
|
|
68
|
-
expectedBehaviour: "Removal persists and both surfaces agree, because both read the same single document. A removal that succeeds on one surface and leaves the other showing the item means one of them is holding its own copy.",
|
|
69
|
-
expectedUiState: "The count falls by one and stays after the reload. The product page's control reads as unsaved. Removing from the product page removes it from /wishlist too.",
|
|
70
|
-
endResult: "One item remains on the wishlist.",
|
|
71
|
-
},
|
|
72
|
-
"checklist-buying-wishlist-history-wishlist-persists-guest-to-login": {
|
|
73
|
-
roles: ["guest", "buyer"],
|
|
74
|
-
startPage: "/products",
|
|
75
|
-
steps: [
|
|
76
|
-
"Open /products in a private window with no session.",
|
|
77
|
-
"Add two products to the wishlist as a guest and note their titles.",
|
|
78
|
-
"Open /wishlist and confirm both are listed.",
|
|
79
|
-
"Sign in as karthik.new@gmail.com / TempPass123! from that same window.",
|
|
80
|
-
"Open /wishlist and read what is listed.",
|
|
81
|
-
"Check both guest items are present alongside anything the account already had.",
|
|
82
|
-
"Reload and confirm they persist.",
|
|
83
|
-
],
|
|
84
|
-
expectedBehaviour: "A guest wishlist is merged into the account on sign-in rather than discarded. The buyer saved those items deliberately, so losing them at the moment they create an account is the worst possible time to lose them.",
|
|
85
|
-
expectedUiState: "After signing in both guest items are on the account's wishlist, together with anything it already held, and they survive a reload. An emptied wishlist after sign-in is the failure.",
|
|
86
|
-
endResult: "The account's wishlist holds the merged set. Remove the added items afterwards.",
|
|
87
|
-
},
|
|
88
|
-
"checklist-buying-wishlist-history-wishlist-idempotent-readd": {
|
|
89
|
-
roles: ["buyer"],
|
|
90
|
-
startPage: "/products/product-beyblade-x-wizard-arrow",
|
|
91
|
-
steps: [
|
|
92
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
93
|
-
"Open /products/product-beyblade-x-wizard-arrow and add it to the wishlist.",
|
|
94
|
-
"Open /wishlist and count how many times it appears.",
|
|
95
|
-
"Return to the product and click the wishlist control twice in quick succession.",
|
|
96
|
-
"Open /wishlist and count again.",
|
|
97
|
-
"Reload and count once more.",
|
|
98
|
-
],
|
|
99
|
-
inputs: { productId: "product-beyblade-x-wizard-arrow" },
|
|
100
|
-
expectedBehaviour: "Re-adding an item already saved is a no-op rather than a duplicate. Every mutation runs in a transaction precisely so two quick taps cannot race into two entries — a duplicate would also consume one of the twenty slots.",
|
|
101
|
-
expectedUiState: "The item appears exactly once however many times the control is pressed. Two entries for one product is the failure, and it is easiest to produce with a double tap.",
|
|
102
|
-
expectedData: { entriesForProduct: 1 },
|
|
103
|
-
endResult: "The item is on the wishlist once.",
|
|
104
|
-
},
|
|
105
|
-
"checklist-buying-wishlist-history-wishlist-cap-enforced": {
|
|
106
|
-
roles: ["buyer"],
|
|
107
|
-
startPage: "/products",
|
|
108
|
-
steps: [
|
|
109
|
-
"Sign in as karthik.new@gmail.com / TempPass123!, an account with a near-empty wishlist.",
|
|
110
|
-
"Open /products and add items to the wishlist until twenty are saved, counting as you go.",
|
|
111
|
-
"Open /wishlist and confirm the count is twenty.",
|
|
112
|
-
"Add a twenty-first item and read exactly what happens.",
|
|
113
|
-
"Open /wishlist and count again.",
|
|
114
|
-
"Remove one item, then add the refused item again and check it is accepted.",
|
|
115
|
-
],
|
|
116
|
-
inputs: { cap: 20 },
|
|
117
|
-
expectedBehaviour: "The wishlist is a HARD cap: the twenty-first add is refused with a readable error. Silently dropping an item the buyer explicitly asked to save is worse than telling them the list is full — which is the opposite choice from history, where eviction is silent on purpose.",
|
|
118
|
-
expectedUiState: "The twentieth add succeeds. The twenty-first is refused with a message naming the limit, and the count stays at twenty. Freeing a slot lets the refused item in. A silent failure, or a list that grows to twenty-one, are both failures.",
|
|
119
|
-
expectedData: { maxItems: 20 },
|
|
120
|
-
endResult: "The wishlist is at or below twenty. Clear the added items afterwards.",
|
|
121
|
-
},
|
|
122
|
-
"checklist-buying-wishlist-history-wishlist-across-listing-types": {
|
|
123
|
-
roles: ["buyer"],
|
|
124
|
-
startPage: "/products",
|
|
125
|
-
steps: [
|
|
126
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
127
|
-
"Add a standard product to the wishlist.",
|
|
128
|
-
"Open an auction and add it.",
|
|
129
|
-
"Open a pre-order and add it.",
|
|
130
|
-
"Open a prize draw, a classified, a digital code, a live item and an art print, adding each.",
|
|
131
|
-
"Open /wishlist and read every entry.",
|
|
132
|
-
"Check each shows the right type badge and links to the right detail route.",
|
|
133
|
-
],
|
|
134
|
-
expectedBehaviour: "Every listing type can be saved and each entry links to its own detail route. Three types once had their detail route hardcoded to the standard product page, so a saved classified, digital code or live item opened the wrong page from every card and carousel in the app.",
|
|
135
|
-
expectedUiState: "All eight entries are listed with the correct type badge, and each opens its own detail route rather than a /products URL. An auction entry opening /products is the wrong-route failure.",
|
|
136
|
-
expectedData: { wrongDetailRoutes: 0 },
|
|
137
|
-
endResult: "Eight items are saved. Remove them afterwards so the cap cases start clean.",
|
|
138
|
-
},
|
|
139
|
-
"checklist-buying-wishlist-history-wishlist-price-drop-accuracy": {
|
|
140
|
-
roles: ["buyer", "seller"],
|
|
141
|
-
startPage: "/wishlist",
|
|
142
|
-
steps: [
|
|
143
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123! and add product-beyblade-burst-valkyrie to the wishlist.",
|
|
144
|
-
"Open /wishlist and read the price shown against it.",
|
|
145
|
-
"Sign out and sign in as tyson@beybladearena.in / TempPass123!.",
|
|
146
|
-
"Lower that product's price to 799 and save.",
|
|
147
|
-
"Sign back in as the buyer and open /wishlist.",
|
|
148
|
-
"Read the price shown and any price-drop indicator.",
|
|
149
|
-
"Restore the product's original price.",
|
|
150
|
-
],
|
|
151
|
-
inputs: { productId: "product-beyblade-burst-valkyrie", priceBefore: 999, priceAfter: 799 },
|
|
152
|
-
expectedBehaviour: "The entry records the price at the time it was saved, so a drop can be computed against it. The CURRENT price must come from the product rather than the snapshot — a list rendering the saved price as if it were live tells the buyer an item costs what it used to.",
|
|
153
|
-
expectedUiState: "The current price reads ₹799.00 and any drop indicator compares it against the ₹999.00 saved at add time. A list still showing ₹999.00 is reading the snapshot as live.",
|
|
154
|
-
expectedData: { currentPrice: 799, priceAtAdd: 999 },
|
|
155
|
-
endResult: "The product's price is restored. The wishlist should then show ₹999.00 again with no drop.",
|
|
156
|
-
},
|
|
157
|
-
"checklist-buying-wishlist-history-wishlist-sold-out-item": {
|
|
158
|
-
roles: ["buyer"],
|
|
159
|
-
startPage: "/wishlist",
|
|
160
|
-
steps: [
|
|
161
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
162
|
-
"Add product-beyblade-burst-valtryek-v3-sold-out to the wishlist.",
|
|
163
|
-
"Open /wishlist and read that entry.",
|
|
164
|
-
"Check it is marked as unavailable rather than looking purchasable.",
|
|
165
|
-
"Read whether an add-to-cart control is offered on it.",
|
|
166
|
-
"Click the entry and check the product page also reads as out of stock.",
|
|
167
|
-
],
|
|
168
|
-
inputs: { productId: "product-beyblade-burst-valtryek-v3-sold-out" },
|
|
169
|
-
expectedBehaviour: "A saved item that has since sold out is marked as such and offers no purchase control. The wishlist is one of the few surfaces where an unavailable item legitimately remains visible — the buyer asked to watch it — so it must say so rather than being filtered away or shown as buyable.",
|
|
170
|
-
expectedUiState: "The entry is present and marked unavailable, with no add-to-cart control. An entry offering purchase on a sold-out item is the failure; silently removing it from the list is a different one.",
|
|
171
|
-
endResult: "Remove the entry afterwards.",
|
|
172
|
-
},
|
|
173
|
-
"checklist-buying-wishlist-history-wishlist-empty-state": {
|
|
174
|
-
roles: ["buyer"],
|
|
175
|
-
startPage: "/wishlist",
|
|
176
|
-
steps: [
|
|
177
|
-
"Sign in as karthik.new@gmail.com / TempPass123!.",
|
|
178
|
-
"Open /wishlist and remove every item until none remain.",
|
|
179
|
-
"Read what the page shows.",
|
|
180
|
-
"Check it offers a way onward rather than only stating the list is empty.",
|
|
181
|
-
"Follow that link and read where it lands.",
|
|
182
|
-
"Reload /wishlist and confirm the empty state is still shown.",
|
|
183
|
-
],
|
|
184
|
-
expectedBehaviour: "An empty wishlist shows a named empty state with a route back into browsing. A blank area reads as a broken page rather than an empty one, and this page is reachable from the header on every visit.",
|
|
185
|
-
expectedUiState: "A readable message and a working link to browse. Not a bare white area and not a heading with nothing under it. The link lands on a real listing page.",
|
|
186
|
-
endResult: "The wishlist is empty.",
|
|
187
|
-
},
|
|
188
|
-
"checklist-buying-wishlist-history-wishlist-add-to-cart-from-list": {
|
|
189
|
-
roles: ["buyer"],
|
|
190
|
-
startPage: "/wishlist",
|
|
191
|
-
steps: [
|
|
192
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
193
|
-
"Add product-beyblade-burst-valkyrie to the wishlist and open /wishlist.",
|
|
194
|
-
"Use the add-to-cart control on that entry.",
|
|
195
|
-
"Watch the control while the request runs and read the cart badge.",
|
|
196
|
-
"Open /cart and confirm the item is there at the right price.",
|
|
197
|
-
"Return to /wishlist and read whether the item is still saved.",
|
|
198
|
-
],
|
|
199
|
-
expectedBehaviour: "Adding to the cart from the wishlist does not remove it from the wishlist — those are two different intentions, and a buyer who adds one of several saved items has not stopped watching it. The price charged comes from the product, not from the saved snapshot.",
|
|
200
|
-
expectedUiState: "The cart badge increases and /cart holds the item at its current price. The wishlist entry is still present afterwards. An entry that vanishes on add-to-cart is the failure.",
|
|
201
|
-
endResult: "The item is in both the cart and the wishlist. Empty the cart afterwards.",
|
|
202
|
-
},
|
|
203
|
-
"checklist-buying-wishlist-history-wishlist-card-clickable": {
|
|
204
|
-
roles: ["buyer"],
|
|
205
|
-
startPage: "/wishlist",
|
|
206
|
-
steps: [
|
|
207
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123! with at least two items saved.",
|
|
208
|
-
"Open /wishlist and click an entry's image.",
|
|
209
|
-
"Read where it lands and go back.",
|
|
210
|
-
"Click the entry's title and read where it lands.",
|
|
211
|
-
"Go back and click an empty part of the entry's body.",
|
|
212
|
-
"Check every route reached is that item's own detail page.",
|
|
213
|
-
],
|
|
214
|
-
expectedBehaviour: "The whole entry is a link to its item. A card that only responds on its title forces the buyer to aim, and a card that responds nowhere is a dead end — this list exists to get back to saved items.",
|
|
215
|
-
expectedUiState: "Image, title and body all open the same product's detail page. An inert region on the card is the finding.",
|
|
216
|
-
endResult: "Read-only; nothing persists.",
|
|
217
|
-
},
|
|
218
|
-
"checklist-buying-wishlist-history-wishlist-heart-solid-red": {
|
|
219
|
-
roles: ["buyer"],
|
|
220
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
221
|
-
steps: [
|
|
222
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
223
|
-
"Open a product NOT on the wishlist and look at its wishlist control.",
|
|
224
|
-
"Note the glyph's shape and fill.",
|
|
225
|
-
"Add it and look at the control again.",
|
|
226
|
-
"Compare the saved and unsaved states — check they differ by more than colour alone.",
|
|
227
|
-
"Switch to dark mode and read both states again.",
|
|
228
|
-
"Check the glyph is a rendered icon rather than a text character.",
|
|
229
|
-
],
|
|
230
|
-
expectedBehaviour: "Saved and unsaved are visually distinct in both themes, and the glyph is a real icon rather than a text character. A text character cannot be sized by any utility — it renders at the platform font's fallback size, which is exactly why one control in a row can look wrong beside its neighbours.",
|
|
231
|
-
expectedUiState: "The unsaved state is an outline and the saved state is filled, distinguishable in both themes. The glyph is proportionate to its control. A heart character used as the icon, or a state difference carried by colour alone, are both findings.",
|
|
232
|
-
endResult: "Remove the item afterwards.",
|
|
233
|
-
},
|
|
234
|
-
"checklist-buying-wishlist-history-wishlist-view-remove-buttons": {
|
|
235
|
-
roles: ["buyer"],
|
|
236
|
-
startPage: "/wishlist",
|
|
237
|
-
steps: [
|
|
238
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123! with at least two items saved.",
|
|
239
|
-
"Open /wishlist and read every control offered on an entry.",
|
|
240
|
-
"Check both a view and a remove control are present.",
|
|
241
|
-
"Use remove and read whether it asks for confirmation.",
|
|
242
|
-
"Read the entry count immediately and after a RELOAD.",
|
|
243
|
-
"Check the remove acted on the entry it was pressed on, not another.",
|
|
244
|
-
],
|
|
245
|
-
expectedBehaviour: "Each entry offers both a way in and a way out. Remove acts on the entry it belongs to — a remove keyed on array position deletes the wrong one once the list has shifted, and both survivors still look like valid entries.",
|
|
246
|
-
expectedUiState: "View and remove are both present. The removed entry is the one whose control was pressed, and the count is correct after the reload.",
|
|
247
|
-
endResult: "One fewer item is saved.",
|
|
248
|
-
},
|
|
249
|
-
"checklist-buying-wishlist-history-wishlist-sync-item": {
|
|
250
|
-
roles: ["buyer"],
|
|
251
|
-
startPage: "/wishlist",
|
|
252
|
-
steps: [
|
|
253
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123! in window A and open /wishlist.",
|
|
254
|
-
"In window B, sign in as the same account and open a product not yet saved.",
|
|
255
|
-
"Add it to the wishlist in window B.",
|
|
256
|
-
"Return to window A and reload /wishlist.",
|
|
257
|
-
"Read whether the new item is present.",
|
|
258
|
-
"Remove it in window A, then reload window B's product page and read its control.",
|
|
259
|
-
],
|
|
260
|
-
expectedBehaviour: "Both windows read one document, so a change in either is visible in the other after a reload. Whether it propagates without a reload is worth recording but is not the assertion — the wishlist is not a realtime surface.",
|
|
261
|
-
expectedUiState: "After the reload each window reflects the other's change. Note whether anything updated without reloading. A change that never appears even after a reload means one window is holding a private copy.",
|
|
262
|
-
endResult: "Both windows agree on the wishlist's contents.",
|
|
263
|
-
},
|
|
264
|
-
"checklist-buying-wishlist-history-wishlist-sync-all": {
|
|
265
|
-
roles: ["buyer"],
|
|
266
|
-
startPage: "/wishlist",
|
|
267
|
-
steps: [
|
|
268
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123! and open /wishlist.",
|
|
269
|
-
"Look for a control that syncs or refreshes the whole list.",
|
|
270
|
-
"Note the item count and each entry's price and availability.",
|
|
271
|
-
"Use the sync control if one exists.",
|
|
272
|
-
"Read whether prices and availability updated.",
|
|
273
|
-
"Reload the page and compare against what the sync produced.",
|
|
274
|
-
],
|
|
275
|
-
expectedBehaviour: "A sync refreshes each entry's live price and availability from its product rather than from the saved snapshot. If no such control exists, the page must already be reading live values on load — one of the two has to be true, and this case establishes which.",
|
|
276
|
-
expectedUiState: "Prices and availability match the products' current values, either after the sync or already on load. Record which mechanism is in play. Values matching the saved snapshot rather than the product is the failure either way.",
|
|
277
|
-
endResult: "Read-only; nothing persists.",
|
|
278
|
-
},
|
|
279
|
-
"checklist-buying-wishlist-history-view-history": {
|
|
280
|
-
roles: ["buyer"],
|
|
281
|
-
startPage: "/user/history",
|
|
282
|
-
steps: [
|
|
283
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
284
|
-
"Open three different product pages in sequence, noting their titles and the order.",
|
|
285
|
-
"Open the browsing history page.",
|
|
286
|
-
"Read the entries and their order.",
|
|
287
|
-
"Check the most recently viewed is first.",
|
|
288
|
-
"Check each entry shows a title, an image and a viewed time, and links to its product.",
|
|
289
|
-
],
|
|
290
|
-
expectedBehaviour: "History records each view with a timestamp and shows the most recent first. Each entry carries a snapshot of the product's title and image so the list renders even if the product is later removed — which is why a deleted product leaves a readable entry whose link 404s rather than a blank row.",
|
|
291
|
-
expectedUiState: "The three products appear newest first with titles, images and times, each linking to its product. An entry with no title or image is reading the live product rather than its snapshot.",
|
|
292
|
-
endResult: "Three entries are recorded.",
|
|
293
|
-
},
|
|
294
|
-
"checklist-buying-wishlist-history-history-revisit-reorders": {
|
|
295
|
-
roles: ["buyer"],
|
|
296
|
-
startPage: "/user/history",
|
|
297
|
-
steps: [
|
|
298
|
-
"Sign in as rehan.sheikh@gmail.com / TempPass123!.",
|
|
299
|
-
"Open the history page and note which product is third from the top.",
|
|
300
|
-
"Open that product's page again.",
|
|
301
|
-
"Return to the history page and read the order.",
|
|
302
|
-
"Check that product is now first.",
|
|
303
|
-
"Count the entries and check the product appears only once.",
|
|
304
|
-
],
|
|
305
|
-
expectedBehaviour: "Revisiting a product moves its entry to the top rather than adding a second one. The existing entry for that product is removed and a fresh one inserted at the front — so the count is unchanged and the order reflects the newest visit.",
|
|
306
|
-
expectedUiState: "The revisited product is first and appears exactly once. The total entry count is unchanged. Two entries for one product is the failure.",
|
|
307
|
-
expectedData: { entriesForProduct: 1 },
|
|
308
|
-
endResult: "History is reordered with no duplicates.",
|
|
309
|
-
},
|
|
310
|
-
"checklist-buying-wishlist-history-history-fifo-cap": {
|
|
311
|
-
roles: ["buyer"],
|
|
312
|
-
startPage: "/user/history",
|
|
313
|
-
steps: [
|
|
314
|
-
"Sign in as karthik.new@gmail.com / TempPass123!, an account with little history.",
|
|
315
|
-
"Open the history page and note the entry count.",
|
|
316
|
-
"Browse enough distinct product pages to exceed fifty entries in total, noting the FIRST product viewed.",
|
|
317
|
-
"Open the history page and count the entries.",
|
|
318
|
-
"Look for that first product in the list.",
|
|
319
|
-
"Check no error or warning appeared while browsing.",
|
|
320
|
-
],
|
|
321
|
-
inputs: { cap: 50 },
|
|
322
|
-
expectedBehaviour: "History is a SOFT cap: at fifty entries the oldest is evicted silently. Nobody asked for a browsing record, so an error about it would be noise — which is the opposite choice from the wishlist, where the buyer explicitly asked to save something and a silent drop would be wrong.",
|
|
323
|
-
expectedUiState: "The count never exceeds fifty. The earliest product viewed is gone from the list. No error or warning appeared at any point. A count above fifty means the cap is not applied on write and the document grows without bound.",
|
|
324
|
-
expectedData: { maxEntries: 50 },
|
|
325
|
-
endResult: "History holds at most fifty entries. The contrast with the wishlist's hard cap is the point.",
|
|
326
|
-
},
|
|
327
|
-
"checklist-buying-wishlist-history-history-guest-merge-on-login": {
|
|
328
|
-
roles: ["guest", "buyer"],
|
|
329
|
-
startPage: "/products",
|
|
330
|
-
steps: [
|
|
331
|
-
"Open a private window with no session and view three product pages, noting their titles.",
|
|
332
|
-
"Open the history page as a guest and confirm the three are listed.",
|
|
333
|
-
"Sign in as karthik.new@gmail.com / TempPass123! from that same window.",
|
|
334
|
-
"Open the history page and read the entries.",
|
|
335
|
-
"Check the three guest views are present alongside the account's existing history.",
|
|
336
|
-
"Check no product appears twice and the total does not exceed fifty.",
|
|
337
|
-
"Check the order is newest-first across both sets.",
|
|
338
|
-
],
|
|
339
|
-
expectedBehaviour: "Guest history is mirrored locally and merged into the account on sign-in, de-duplicated by product with the newer view winning, and trimmed to fifty. All three of those steps matter: a merge without de-duplication produces two entries for a product seen in both states, and one without trimming pushes the document past its cap.",
|
|
340
|
-
expectedUiState: "All three guest products are present, no product appears twice, the total is at most fifty, and the order is newest-first across the merged set.",
|
|
341
|
-
expectedData: { maxEntries: 50, duplicateProducts: 0 },
|
|
342
|
-
endResult: "The account's history holds the merged, de-duplicated set.",
|
|
343
|
-
},
|
|
344
|
-
/* ── Added 2026-09-14 (F3d) — the SIGNED-OUT wishlist ────────────────────────
|
|
345
|
-
* 20 cases existed, 2 signed-out, and both were about the login MERGE rather
|
|
346
|
-
* than about what a guest sees BEFORE logging in.
|
|
347
|
-
*/
|
|
348
|
-
"checklist-buying-wishlist-history-wishlist-guest-heart-prompts-signin": {
|
|
349
|
-
roles: ["guest"],
|
|
350
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
351
|
-
steps: [
|
|
352
|
-
"Open /products/product-beyblade-burst-valkyrie while signed out.",
|
|
353
|
-
"Note the state of the wishlist heart before touching it.",
|
|
354
|
-
"Tap the heart.",
|
|
355
|
-
"Note what appears, and note the heart's state immediately afterwards.",
|
|
356
|
-
"Dismiss whatever appeared and look at the heart once more.",
|
|
357
|
-
],
|
|
358
|
-
expectedBehaviour: "BEFORE: the heart is empty. Tapping it asks the visitor to sign in. AFTER dismissing that prompt the heart is empty again. It must not fill optimistically before refusing — a filled heart that saved nothing is worse than a plain refusal, because the visitor believes the item is kept and does not come back for it.",
|
|
359
|
-
expectedUiState: "A sign-in prompt or modal appears naming what signing in will do. The heart is unfilled both before the tap and after the prompt is dismissed.",
|
|
360
|
-
endResult: "Nothing is saved. Nothing persists.",
|
|
361
|
-
},
|
|
362
|
-
"checklist-buying-wishlist-history-wishlist-guest-page-signed-out": {
|
|
363
|
-
roles: ["guest"],
|
|
364
|
-
startPage: "/wishlist",
|
|
365
|
-
steps: [
|
|
366
|
-
"Open /wishlist directly by URL while signed out.",
|
|
367
|
-
"Read exactly what the page says.",
|
|
368
|
-
"Note whether it offers a way to sign in from there.",
|
|
369
|
-
],
|
|
370
|
-
expectedBehaviour: "A signed-out visitor is asked to sign in. They are not shown a generic empty wishlist: an empty state reading 'nothing saved yet' is indistinguishable, to someone who did save things, from a wishlist whose contents were lost.",
|
|
371
|
-
expectedUiState: "The page states that signing in is required and offers a route to it. The words used are quoted in the answer, because the distinction between this and an ordinary empty state IS the case.",
|
|
372
|
-
endResult: "Read-only; nothing persists.",
|
|
373
|
-
},
|
|
374
|
-
};
|