@mohasinac/appkit 4.57.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 +4 -4
- package/dist/_internal/server/features/beys/data.d.ts +44 -0
- package/dist/_internal/server/features/beys/data.js +107 -0
- package/dist/_internal/server/features/beys/og.d.ts +42 -0
- package/dist/_internal/server/features/beys/og.js +89 -0
- package/dist/_internal/server/features/parts/data.js +3 -2
- 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/actions/action-registry.d.ts +1 -1
- package/dist/_internal/shared/actions/action-registry.js +86 -0
- package/dist/_internal/shared/types/base-document.d.ts +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -0
- package/dist/constants/api-endpoints.d.ts +12 -0
- package/dist/constants/api-endpoints.js +10 -0
- package/dist/constants/field-names.d.ts +46 -0
- package/dist/constants/field-names.js +46 -0
- package/dist/constants/seed-meta.d.ts +113 -0
- package/dist/constants/seed-meta.js +91 -0
- package/dist/features/admin/components/AdminBeysView.d.ts +27 -0
- package/dist/features/admin/components/AdminBeysView.js +178 -0
- package/dist/features/admin/components/AdminPartsView.d.ts +27 -0
- package/dist/features/admin/components/AdminPartsView.js +160 -0
- package/dist/features/admin/components/OwnerQuickActions.d.ts +19 -2
- package/dist/features/admin/components/OwnerQuickActions.js +31 -3
- package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +31 -0
- package/dist/features/admin/components/RecordOwnerQuickActions.js +128 -0
- package/dist/features/admin/components/ReferenceRecordEditor.d.ts +45 -0
- package/dist/features/admin/components/ReferenceRecordEditor.js +153 -0
- package/dist/features/admin/schemas/firestore.d.ts +1 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +15 -2
- package/dist/features/auth/permissions/constants.d.ts +1 -1
- package/dist/features/auth/permissions/constants.js +12 -1
- package/dist/features/beys/components/BeyDetailPageView.d.ts +50 -0
- package/dist/features/beys/components/BeyDetailPageView.js +98 -0
- package/dist/features/beys/schemas/firestore.d.ts +417 -0
- package/dist/features/beys/schemas/firestore.js +65 -0
- package/dist/features/blog/components/BlogFeaturedCard.js +15 -2
- package/dist/features/blog/components/BlogPostView.js +2 -2
- package/dist/features/categories/components/BrandDetailPageView.js +4 -2
- package/dist/features/categories/components/BundleDetailView.js +2 -2
- package/dist/features/categories/components/CategoryDetailPageView.js +36 -3
- package/dist/features/categories/components/CategoryGrid.js +24 -2
- package/dist/features/categories/components/FranchiseDetailPageView.js +2 -3
- package/dist/features/events/components/EventCard.js +15 -2
- package/dist/features/grouped/components/GroupedListingDetailView.js +2 -3
- package/dist/features/homepage/components/CustomCardsSection.js +67 -50
- package/dist/features/homepage/components/ShopByCategorySection.js +23 -10
- package/dist/features/homepage/schemas/index.d.ts +10 -10
- package/dist/features/parts/components/PartDetailPageView.js +5 -3
- package/dist/features/parts/components/PartsSearchBox.js +79 -4
- package/dist/features/parts/schemas/admin-edit.d.ts +81 -0
- package/dist/features/parts/schemas/admin-edit.js +89 -0
- package/dist/features/parts/schemas/firestore.d.ts +2 -1
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +15 -2
- package/dist/features/products/components/MarketplaceBundleCard.js +15 -2
- package/dist/features/products/components/MarketplacePrizeDrawCard.js +15 -2
- package/dist/features/products/components/ProductGrid.js +18 -2
- package/dist/features/products/schemas/firestore.d.ts +18 -0
- package/dist/features/seller/components/CategoryInlineSelect.d.ts +10 -1
- package/dist/features/seller/components/CategoryInlineSelect.js +53 -5
- package/dist/features/seller/components/SellerProductShell.d.ts +39 -0
- package/dist/features/seller/components/SellerProductShell.js +31 -3
- package/dist/index.d.ts +6 -129
- package/dist/index.js +61 -292
- package/dist/next/routing/route-map.d.ts +13 -1
- package/dist/next/routing/route-map.js +37 -0
- package/dist/schemas/registry.d.ts +6 -6
- package/dist/server.d.ts +2 -69
- package/dist/server.js +8 -69
- package/dist/styles.css +468 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/PosterCard.d.ts +99 -0
- package/dist/ui/components/PosterCard.js +109 -0
- package/dist/ui/components/PosterCard.style.css +466 -0
- package/dist/ui/components/index.style.css +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +2 -0
- package/package.json +4 -2
- package/scripts/seed-cli.mjs +177 -2
- 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/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 -1018
- package/dist/seed/index.d.ts +0 -98
- package/dist/seed/index.js +0 -112
- 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-seed-data.d.ts +0 -22
- package/dist/seed/products-catalogue-seed-data.js +0 -86384
- 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 -431
- 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,209 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: Authored six-part procedures for the content-discovery/overflowing-pill-rows page.
|
|
3
|
-
* WHAT: 11 case(s), keyed by full checklist id.
|
|
4
|
-
*
|
|
5
|
-
* 🛑 WIDTH IS THE SUBJECT, SO EVERY CASE STATES ONE.
|
|
6
|
-
*
|
|
7
|
-
* These cases test a MEASUREMENT. A run that does not pin the viewport cannot
|
|
8
|
-
* tell "collapsed because it did not fit" from "collapsed when it had room" —
|
|
9
|
-
* and those are opposite defects with the same screenshot. Each case therefore
|
|
10
|
-
* names an explicit width and the tester must set it before looking.
|
|
11
|
-
*
|
|
12
|
-
* The defect being guarded is silent by construction: an overflowing row
|
|
13
|
-
* renders cleanly, returns 200, and puts its tail past the right edge with no
|
|
14
|
-
* scrollbar and no arrow. Nothing errors, nothing logs. Measured on the report
|
|
15
|
-
* that prompted this: 12 pills on a 1440px viewport, last four unreachable.
|
|
16
|
-
*
|
|
17
|
-
* FIXTURE: `category-original-attack-rings` — **87 direct children**, counted
|
|
18
|
-
* from `_helpers/category-parts.ts`, and the node the reported screenshot came
|
|
19
|
-
* from (Draciel F, Dragoon F, Dragoon Storm, Dranzer F, Dranzer S, Driger F,
|
|
20
|
-
* Galeon, Galman, Galzzly, Griffolyon, Metal Draciel…).
|
|
21
|
-
*
|
|
22
|
-
* 🛑 It is chosen for being FAR past the threshold at every viewport, so these
|
|
23
|
-
* cases cannot silently stop testing anything if the catalogue is regenerated
|
|
24
|
-
* a little smaller. If it ever drops near a dozen, replace the fixture rather
|
|
25
|
-
* than loosen the assertion — a row that fits proves nothing about a row that
|
|
26
|
-
* does not. The first draft of this file invented an id that does not exist,
|
|
27
|
-
* and `audit-tester-plugin-wiring` R7 caught it: a tester following a bad id
|
|
28
|
-
* finds nothing and reports a bug that is really a typo (Root Cause #32).
|
|
29
|
-
*
|
|
30
|
-
* @tag domain:tester
|
|
31
|
-
* @tag layer:seed
|
|
32
|
-
* @tag pattern:none
|
|
33
|
-
* @tag access:server-only
|
|
34
|
-
* @tag consumers:seed-data/authored/index.ts
|
|
35
|
-
* @tag sideEffects:none
|
|
36
|
-
*/
|
|
37
|
-
/**
|
|
38
|
-
* 87 direct children — collapses at EVERY viewport. Use for the search,
|
|
39
|
-
* keyboard and reachability cases.
|
|
40
|
-
*/
|
|
41
|
-
const CATEGORY = "/categories/category-original-attack-rings";
|
|
42
|
-
/**
|
|
43
|
-
* 5 direct children (the four generations plus Battle Gear) — fits a desktop
|
|
44
|
-
* and overflows a phone, which is the only fixture that can prove the control
|
|
45
|
-
* tracks WIDTH rather than just always collapsing.
|
|
46
|
-
*
|
|
47
|
-
* 🛑 Both fixtures are needed and neither is redundant. A suite that only ever
|
|
48
|
-
* looked at the 87-child row would pass identically against an implementation
|
|
49
|
-
* that collapsed unconditionally — the bug one size larger than the one being
|
|
50
|
-
* fixed.
|
|
51
|
-
*/
|
|
52
|
-
const SMALL_CATEGORY = "/categories/category-spinning-tops";
|
|
53
|
-
export const authored = {
|
|
54
|
-
"checklist-content-discovery-overflowing-pill-rows-wide-row-stays-pills": {
|
|
55
|
-
roles: ["guest"],
|
|
56
|
-
startPage: SMALL_CATEGORY,
|
|
57
|
-
steps: [
|
|
58
|
-
"Set the browser window to 1440x900.",
|
|
59
|
-
`Open ${SMALL_CATEGORY}.`,
|
|
60
|
-
"Find the 'Subcategories' label and look at the row directly beneath it.",
|
|
61
|
-
"Count the pills and check whether any is cut off at the right edge.",
|
|
62
|
-
],
|
|
63
|
-
expectedBehaviour: "The row is measured against its container, not counted. When the pills fit, they stay pills — collapsing a row that had room would hide items behind an extra click for no reason.",
|
|
64
|
-
expectedUiState: "A horizontal row of rounded pills under 'Subcategories', each reading a name and a number. Every pill is fully visible: none is clipped by the right edge and there is no horizontal scrollbar. There is NO single dropdown trigger.",
|
|
65
|
-
endResult: "Nothing persists; this is a read-only page. Reloading at the same width shows the same pill row.",
|
|
66
|
-
},
|
|
67
|
-
"checklist-content-discovery-overflowing-pill-rows-narrow-row-collapses": {
|
|
68
|
-
roles: ["guest"],
|
|
69
|
-
startPage: SMALL_CATEGORY,
|
|
70
|
-
steps: [
|
|
71
|
-
"Set the browser window to 390x844 (a phone width).",
|
|
72
|
-
`Open ${SMALL_CATEGORY}.`,
|
|
73
|
-
"Find the 'Subcategories' label and look at the control directly beneath it.",
|
|
74
|
-
"🛑 This is the SAME page as the previous case at a different width — that is the point. If it renders a dropdown here and pills there, the control is tracking width.",
|
|
75
|
-
],
|
|
76
|
-
expectedBehaviour: "BEFORE: the pills simply ran past the right edge. There was no scrollbar, no arrow and no indication the row continued, so the subcategories beyond the fold were unreachable — the page looked complete while hiding items. AFTER: the row measures wider than the container and collapses to one trigger.",
|
|
77
|
-
expectedUiState: "A single bordered control reading 'Browse subcategories' followed by the total count and a chevron. The pill row is NOT present. Nothing is clipped at the right edge.",
|
|
78
|
-
endResult: "Nothing persists. Reloading at 390px wide shows the collapsed trigger again.",
|
|
79
|
-
},
|
|
80
|
-
"checklist-content-discovery-overflowing-pill-rows-collapsed-dropdown-is-searchable": {
|
|
81
|
-
roles: ["guest"],
|
|
82
|
-
startPage: CATEGORY,
|
|
83
|
-
steps: [
|
|
84
|
-
"Set the browser window to 390x844.",
|
|
85
|
-
`Open ${CATEGORY}.`,
|
|
86
|
-
"Click the 'Browse subcategories' trigger.",
|
|
87
|
-
"Read the full list of rows offered.",
|
|
88
|
-
"Type drag into the search box.",
|
|
89
|
-
"Read the list again.",
|
|
90
|
-
"Clear the search box.",
|
|
91
|
-
],
|
|
92
|
-
inputs: { search: "drag" },
|
|
93
|
-
expectedBehaviour: "BEFORE: the collapsed control was a native <select>, which cannot be typed at — a 12-row picker had to be scrolled. AFTER: the dropdown opens with a focused search box that filters the list on every keystroke, case-insensitively, matching anywhere in the name rather than only the start.",
|
|
94
|
-
expectedUiState: "A panel containing a search field and a scrollable list. With 'drag' typed, only rows whose name contains 'drag' remain (e.g. 'Dragoon F', 'Dragoon Storm') and non-matching rows such as 'Draciel F' are gone. Clearing the box restores the full list.",
|
|
95
|
-
endResult: "Nothing persists. Closing and reopening the dropdown shows an empty search box and the full list.",
|
|
96
|
-
},
|
|
97
|
-
"checklist-content-discovery-overflowing-pill-rows-collapsed-dropdown-keyboard": {
|
|
98
|
-
roles: ["guest"],
|
|
99
|
-
startPage: CATEGORY,
|
|
100
|
-
steps: [
|
|
101
|
-
"Set the browser window to 390x844.",
|
|
102
|
-
`Open ${CATEGORY}.`,
|
|
103
|
-
"Click the 'Browse subcategories' trigger.",
|
|
104
|
-
"Press ArrowDown three times without touching the mouse.",
|
|
105
|
-
"Note which row is highlighted.",
|
|
106
|
-
"Press Enter.",
|
|
107
|
-
],
|
|
108
|
-
expectedBehaviour: "The search box keeps focus and the arrow keys move a highlight through the filtered list, wrapping at the ends. Enter opens the highlighted subcategory. Escape closes the panel and returns focus to the trigger. The highlight is the same one the mouse sets, so there are never two cursors in the list.",
|
|
109
|
-
expectedUiState: "After three ArrowDowns the third row is visibly highlighted and no other row is. After Enter the browser is on that subcategory's own page, whose heading matches the row that was highlighted.",
|
|
110
|
-
endResult: "The navigation is real: the URL is the chosen subcategory's and reloading stays there.",
|
|
111
|
-
},
|
|
112
|
-
"checklist-content-discovery-overflowing-pill-rows-every-item-reachable-when-collapsed": {
|
|
113
|
-
roles: ["guest"],
|
|
114
|
-
startPage: SMALL_CATEGORY,
|
|
115
|
-
steps: [
|
|
116
|
-
"Set the browser window to 1440x900.",
|
|
117
|
-
`Open ${SMALL_CATEGORY}.`,
|
|
118
|
-
"Write down the name of the LAST pill visible in the Subcategories row.",
|
|
119
|
-
"Resize the window to 390x844.",
|
|
120
|
-
"Click 'Browse subcategories' and scroll the list to the bottom.",
|
|
121
|
-
"Compare the list against the names seen at the wide width.",
|
|
122
|
-
],
|
|
123
|
-
expectedBehaviour: "BEFORE: items past the right edge existed in the DOM but had no affordance — no scrollbar, no arrow — so they could not be reached at all at a narrow width. AFTER: the collapsed list contains EVERY direct child, including the ones that used to be cut off.",
|
|
124
|
-
expectedUiState: "The dropdown list is scrollable and its row count equals the number shown on the trigger. Every pill name seen at 1440px appears as a row, and so do the ones that were clipped.",
|
|
125
|
-
endResult: "Nothing persists. The list contents are the same on every open.",
|
|
126
|
-
},
|
|
127
|
-
"checklist-content-discovery-overflowing-pill-rows-pills-carry-a-leading-image": {
|
|
128
|
-
roles: ["guest"],
|
|
129
|
-
startPage: SMALL_CATEGORY,
|
|
130
|
-
steps: [
|
|
131
|
-
"Set the browser window to 1440x900.",
|
|
132
|
-
`Open ${SMALL_CATEGORY}.`,
|
|
133
|
-
"Look at the left-hand side of each pill in the Subcategories row.",
|
|
134
|
-
"Resize to 390x844 and open 'Browse subcategories'.",
|
|
135
|
-
"Look at the left-hand side of each row in the list.",
|
|
136
|
-
],
|
|
137
|
-
expectedBehaviour: "A subcategory's cover image is shown as a small leading thumbnail so the row can be scanned by sight rather than by reading every label. The SAME visual appears in both states — a pill and its dropdown row are the same item and must not look like different things.",
|
|
138
|
-
expectedUiState: "Each pill shows a small square image immediately left of its name, at roughly text height, without making the pill taller than it was. The dropdown rows show the same images. No image is stretched or letterboxed.",
|
|
139
|
-
endResult: "Nothing persists. The same images appear on reload.",
|
|
140
|
-
},
|
|
141
|
-
"checklist-content-discovery-overflowing-pill-rows-missing-image-falls-back-to-initial": {
|
|
142
|
-
roles: ["guest"],
|
|
143
|
-
startPage: "/categories/category-spinning-tops",
|
|
144
|
-
steps: [
|
|
145
|
-
"Set the browser window to 1440x900.",
|
|
146
|
-
"Open /categories/category-spinning-tops.",
|
|
147
|
-
"Look at the Subcategories row for any entry whose category has no cover image.",
|
|
148
|
-
"Check what is drawn where the thumbnail would be.",
|
|
149
|
-
],
|
|
150
|
-
expectedBehaviour: "Roughly 650 of the intermediate branch categories have neither an icon nor a cover image, so the fallback is the common case rather than an edge case. It must be a drawn initial, never an empty reserved box and never a broken-image glyph — a blank square reads as a failed load and invites a bug report against working code.",
|
|
151
|
-
expectedUiState: "A pill with no cover shows a small circle containing the first letter of its name. There is no broken-image icon anywhere in the row, and the pills all sit on the same baseline with equal height whether or not they have an image.",
|
|
152
|
-
endResult: "Nothing persists.",
|
|
153
|
-
},
|
|
154
|
-
"checklist-content-discovery-overflowing-pill-rows-widening-restores-the-pills": {
|
|
155
|
-
roles: ["guest"],
|
|
156
|
-
startPage: CATEGORY,
|
|
157
|
-
steps: [
|
|
158
|
-
"Set the browser window to 390x844.",
|
|
159
|
-
`Open ${SMALL_CATEGORY} and confirm the Subcategories control is a single dropdown trigger.`,
|
|
160
|
-
"Without reloading, resize the window back to 1440x900.",
|
|
161
|
-
"Look at the Subcategories area again.",
|
|
162
|
-
"Resize back down to 390 and up to 1440 twice more, watching for flicker.",
|
|
163
|
-
],
|
|
164
|
-
expectedBehaviour: "🛑 This is the case most likely to fail. Collapsing REMOVES the row, so there is nothing left to measure and a naive implementation can never expand again — a one-way door that looks correct until someone widens the window. The row's natural width is cached while it is still rendered, and expanding requires a clear margin above that width rather than an exact fit, so the two states cannot oscillate at the boundary.",
|
|
165
|
-
expectedUiState: "At 1440px the pill row is back and the dropdown trigger is gone. During the resize the control does not flicker, alternate, or rapidly toggle between the two states at any intermediate width.",
|
|
166
|
-
endResult: "Nothing persists. The state always matches the current width, not the width the page loaded at.",
|
|
167
|
-
},
|
|
168
|
-
"checklist-content-discovery-overflowing-pill-rows-subcategory-click-is-client-side": {
|
|
169
|
-
roles: ["guest"],
|
|
170
|
-
startPage: SMALL_CATEGORY,
|
|
171
|
-
steps: [
|
|
172
|
-
"Set the browser window to 1440x900.",
|
|
173
|
-
`Open ${SMALL_CATEGORY}.`,
|
|
174
|
-
"Open the browser devtools Network tab and clear it.",
|
|
175
|
-
"Click any subcategory pill.",
|
|
176
|
-
"Look at whether the page performed a full document navigation.",
|
|
177
|
-
],
|
|
178
|
-
expectedBehaviour: "Subcategory pills are client-side links, not plain anchors. A plain <a> would make every click re-download the whole document — a silent performance regression that looks identical to working navigation apart from the flash.",
|
|
179
|
-
expectedUiState: "The destination category page renders. The page does not white-flash, and the Network tab shows an RSC payload fetch rather than a full document request for the destination HTML.",
|
|
180
|
-
endResult: "The URL is the clicked subcategory's; going Back returns to the previous category with its row intact.",
|
|
181
|
-
},
|
|
182
|
-
"checklist-content-discovery-overflowing-pill-rows-tabs-collapse-by-width-not-count": {
|
|
183
|
-
roles: ["guest"],
|
|
184
|
-
startPage: SMALL_CATEGORY,
|
|
185
|
-
steps: [
|
|
186
|
-
"Set the browser window to 1440x900.",
|
|
187
|
-
`Open ${SMALL_CATEGORY} and scroll to the Products / Auctions / Pre-Orders tab bar.`,
|
|
188
|
-
"Count the tabs and check whether they render as a row or a dropdown.",
|
|
189
|
-
"Resize to 390x844 and look at the same tab bar.",
|
|
190
|
-
],
|
|
191
|
-
expectedBehaviour: "BEFORE: the tab bar collapsed whenever it had more than five tabs, regardless of width — so six short tabs became a dropdown on a 1440px desktop with room to spare, while four long ones stayed a row on a phone and overflowed. AFTER: the decision is the measured width of the rendered row against its container, so the same bar can be a row on desktop and a dropdown on a phone.",
|
|
192
|
-
expectedUiState: "At 1440px the tabs render as a horizontal row with the underline rail on the active one, even when there are six or more. At 390px the same bar is a single dropdown trigger. The resting appearance of the expanded row is unchanged from before — still an underline rail, not pills.",
|
|
193
|
-
endResult: "Nothing persists. The tab bar's form follows the current width on every render.",
|
|
194
|
-
},
|
|
195
|
-
"checklist-content-discovery-overflowing-pill-rows-event-tabs-do-not-jump-to-top": {
|
|
196
|
-
roles: ["guest"],
|
|
197
|
-
startPage: "/events",
|
|
198
|
-
steps: [
|
|
199
|
-
"Set the browser window to 1440x900.",
|
|
200
|
-
"Open /events and click into any event with an Overview / Participate / Leaderboard tab bar.",
|
|
201
|
-
"Scroll down until the tab bar is near the top of the viewport.",
|
|
202
|
-
"Click a different tab.",
|
|
203
|
-
"Note the scroll position immediately after the panel swaps.",
|
|
204
|
-
],
|
|
205
|
-
expectedBehaviour: "The app mounts a global ScrollToTop keyed on pathname, so a tab that navigates must opt out explicitly or every switch yanks the page to the top. The tab bar passes that opt-out through to its links.",
|
|
206
|
-
expectedUiState: "After clicking, the newly selected tab is active and its panel is shown, while the page stays at roughly the scroll position it was at — the tab bar does not leap back down the screen.",
|
|
207
|
-
endResult: "The URL is the new tab's; reloading lands on that tab.",
|
|
208
|
-
},
|
|
209
|
-
};
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: Authored six-part procedures for content-discovery/parts-database.
|
|
3
|
-
* WHAT: 9 cases, keyed by full checklist id.
|
|
4
|
-
*
|
|
5
|
-
* 🛑 EVERY CASE HERE IS WRITTEN AS BEFORE → AFTER, because every defect this
|
|
6
|
-
* feature has already produced returned HTTP 200 with plausible content. A case
|
|
7
|
-
* reading "check the parts page works" passes against all four of them:
|
|
8
|
-
*
|
|
9
|
-
* 1. `getCompositionsForCategory` first queried a `searchTxt` field that
|
|
10
|
-
* `modelComposition` does not have. Zero rows, no error, an empty panel
|
|
11
|
-
* that reads as "no composition recorded".
|
|
12
|
-
* 2. The composition `name` was a FILE PATH for all 259 rows, so the
|
|
13
|
-
* category join matched 0 of 259 — and a model page with no panel is
|
|
14
|
-
* indistinguishable from a model we have no data for.
|
|
15
|
-
* 3. Without the paren-stripped fallback the join reached only 150 of 259,
|
|
16
|
-
* and HMS models in particular silently had no panel.
|
|
17
|
-
* 4. 🛑 The one live listing whose leaf has a composition is an ART POSTER,
|
|
18
|
-
* so before `LISTING_TYPE_HAS_COMPOSITION` the only Parts tab in the
|
|
19
|
-
* catalogue offered a poster an attack ring and a blade base — a correct
|
|
20
|
-
* part list for the wrong kind of object.
|
|
21
|
-
*
|
|
22
|
-
* So each case below names what the WRONG answer looked like, and several
|
|
23
|
-
* compare two surfaces that must agree rather than checking that something
|
|
24
|
-
* rendered.
|
|
25
|
-
*
|
|
26
|
-
* @tag domain:tester
|
|
27
|
-
* @tag layer:seed
|
|
28
|
-
* @tag pattern:none
|
|
29
|
-
* @tag access:server-only
|
|
30
|
-
* @tag consumers:seed-data/authored/index.ts
|
|
31
|
-
* @tag sideEffects:none
|
|
32
|
-
*/
|
|
33
|
-
export const authored = {
|
|
34
|
-
"checklist-content-discovery-parts-database-index-lists-every-classification": {
|
|
35
|
-
roles: ["guest"],
|
|
36
|
-
startPage: "/parts",
|
|
37
|
-
steps: [
|
|
38
|
-
"Open /parts.",
|
|
39
|
-
"Confirm the page heading reads 'Beyblade parts gallery'.",
|
|
40
|
-
"Count the classification tiles.",
|
|
41
|
-
"Confirm every tile reads as a part NAME in sentence case — 'Performance Tip', 'Fusion Wheel', 'Bit Chip' — and not as a URL slug like 'performance-tip' or 'bit-chip'.",
|
|
42
|
-
"Open any one tile and confirm it loads a page rather than 404ing.",
|
|
43
|
-
],
|
|
44
|
-
expectedBehaviour: "BEFORE: there was no parts reference at all, so a buyer reading '105RF' on a listing had nowhere to learn that 105 is a spin-track height and RF is a rubber flat tip. AFTER: 20 classifications, each a real page, under the heading 'Beyblade parts gallery'. The labels come from a compile-checked map rather than being title-cased from the slug, because 'Bit Chip' is not 'bit-chip' title-cased and 'Armour' is not 'armour'.",
|
|
45
|
-
expectedUiState: "The heading reads 'Beyblade parts gallery'. Exactly 20 tiles, each labelled in sentence case, each a working link.",
|
|
46
|
-
expectedData: { classificationTiles: 20 },
|
|
47
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
48
|
-
},
|
|
49
|
-
"checklist-content-discovery-parts-database-index-shows-no-fabricated-counts": {
|
|
50
|
-
roles: ["guest"],
|
|
51
|
-
startPage: "/parts",
|
|
52
|
-
steps: [
|
|
53
|
-
"Open /parts.",
|
|
54
|
-
"Look at each classification tile and confirm NO tile shows a number of parts.",
|
|
55
|
-
"Answer no if any tile shows a count, including a zero.",
|
|
56
|
-
],
|
|
57
|
-
expectedBehaviour: "A per-classification count on this page would be 20 queries or a 753-document scan on a page that exists only to route — against a ~3-round-trip budget per render. The honest version of 'we are not going to pay for that number' is to not show a number, rather than to show a stale or a zero one.",
|
|
58
|
-
expectedUiState: "Tiles carry a label and a link, and no count.",
|
|
59
|
-
expectedData: { tileShowsCount: false },
|
|
60
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
61
|
-
},
|
|
62
|
-
"checklist-content-discovery-parts-database-classification-page-lists-its-parts": {
|
|
63
|
-
roles: ["guest"],
|
|
64
|
-
startPage: "/parts",
|
|
65
|
-
steps: [
|
|
66
|
-
"Open /parts, then open the Performance Tip tile.",
|
|
67
|
-
"Read the count in the line under the heading.",
|
|
68
|
-
"Count the rows listed.",
|
|
69
|
-
"Confirm the rows are in alphabetical order by part name.",
|
|
70
|
-
"Confirm a part that has a recorded weight shows it as '(N g)' and a part with no recorded weight shows nothing in its place — not '0 g' and not an em-dash.",
|
|
71
|
-
],
|
|
72
|
-
expectedBehaviour: "The count is a promise about the list directly beneath it, so the two must agree exactly. Only 98 of 753 parts carry a weight and only 23 carry a code; both are facts about our sources rather than missing data, so an absent one renders as nothing at all. A '0 g' would be a measurement we never took.",
|
|
73
|
-
expectedUiState: "The stated count equals the number of rows. Rows are alphabetical. Weights appear only where recorded.",
|
|
74
|
-
expectedData: { statedCountEqualsRowCount: true },
|
|
75
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
76
|
-
},
|
|
77
|
-
"checklist-content-discovery-parts-database-unknown-classification-404s": {
|
|
78
|
-
roles: ["guest"],
|
|
79
|
-
startPage: "/parts",
|
|
80
|
-
steps: [
|
|
81
|
-
"Open /parts, then edit the address bar to /parts/zzzznope and load it.",
|
|
82
|
-
"Confirm you get a 404 page.",
|
|
83
|
-
"Then go back to /parts and open the Performance Tip tile as a positive control, and confirm it loads with rows.",
|
|
84
|
-
"Answer no if /parts/zzzznope renders an EMPTY classification page instead of 404ing.",
|
|
85
|
-
],
|
|
86
|
-
expectedBehaviour: "BEFORE the guard existed, casting a URL segment to a slot type would have made this a perfectly successful query for a classification no document has: zero rows, HTTP 200, and a page reading 'No parts recorded in this classification yet' — which is a lie about our data rather than a statement about the URL. The positive control is what distinguishes a working 404 from a page that 404s on everything.",
|
|
87
|
-
expectedUiState: "/parts/zzzznope is a 404. /parts/performance-tip loads and lists parts.",
|
|
88
|
-
expectedData: { unknownSegment404s: true, knownSegmentLoads: true },
|
|
89
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
90
|
-
},
|
|
91
|
-
"checklist-content-discovery-parts-database-part-page-shows-which-models-use-it": {
|
|
92
|
-
roles: ["guest"],
|
|
93
|
-
startPage: "/parts",
|
|
94
|
-
steps: [
|
|
95
|
-
"Open /parts, then open Disc, then open the part named Sting.",
|
|
96
|
-
"Read the 'Used by N models' heading.",
|
|
97
|
-
"Count the model rows beneath it.",
|
|
98
|
-
"Click one model row and confirm it opens that model's category page.",
|
|
99
|
-
"Confirm any model row that is NOT a link is still readable as plain text rather than rendering as a broken link.",
|
|
100
|
-
],
|
|
101
|
-
expectedBehaviour: "'Which beys use this part' is the single most useful thing a part page says and the reason the glossary is a collection rather than a lookup table. 210 of 259 compositions joined to a category, so a model that did not join renders as plain text — a link to a page that does not exist is worse than no link.",
|
|
102
|
-
expectedUiState: "The heading count equals the number of rows. Linked models open their category page; unlinked models render as text.",
|
|
103
|
-
expectedData: { headingCountEqualsRowCount: true },
|
|
104
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
105
|
-
},
|
|
106
|
-
"checklist-content-discovery-parts-database-part-page-shows-no-prices": {
|
|
107
|
-
roles: ["guest"],
|
|
108
|
-
startPage: "/parts",
|
|
109
|
-
steps: [
|
|
110
|
-
"Open /parts, then Disc, then Sting.",
|
|
111
|
-
"Read the Listings section.",
|
|
112
|
-
"Confirm NO row shows a rupee amount.",
|
|
113
|
-
"Confirm no row shows 'Sign in to see price' either.",
|
|
114
|
-
"Click 'Search the catalogue' or 'See all listings' and confirm it lands on /products with a search term.",
|
|
115
|
-
],
|
|
116
|
-
expectedBehaviour: "Prices are withheld from signed-out visitors, so an amount here would need the price gate and would make this a client-rendered page. A row carrying a title, a condition and a link has nothing to gate and therefore nothing to leak — which is why there is no 'Sign in to see price' placeholder either. The price lives one click away on the listing, where the gate already is.",
|
|
117
|
-
expectedUiState: "Listing rows show a title and optionally a condition. No rupee amounts, no sign-in-to-see-price text.",
|
|
118
|
-
expectedData: { pricesOnPartPage: false },
|
|
119
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
120
|
-
},
|
|
121
|
-
"checklist-content-discovery-parts-database-model-page-shows-its-composition": {
|
|
122
|
-
roles: ["guest"],
|
|
123
|
-
startPage: "/categories/category-ace-dragon-sting-charge-zan",
|
|
124
|
-
steps: [
|
|
125
|
-
"Open /categories/category-ace-dragon-sting-charge-zan — a tier-4 named-model leaf. Every category id carries the `category-` prefix and a URL without it does not resolve.",
|
|
126
|
-
"Find the 'What it is made of' section.",
|
|
127
|
-
"Confirm it lists at least one slot row, each reading as a part classification on the left and a part name on the right.",
|
|
128
|
-
"Click a part name and confirm it opens that part's page under /parts/.",
|
|
129
|
-
"Then open /categories/category-burst-gt — the generation LINE one level up — and confirm it has NO 'What it is made of' section at all.",
|
|
130
|
-
],
|
|
131
|
-
expectedBehaviour: "BEFORE: the panel showed nothing on every model, twice over — the read queried a field the collection does not have, and separately every composition's name was a file path so none of them joined to a category. Both failures rendered as an absent section, which is indistinguishable from a model we have no data for. AFTER: the leaf shows its parts and each one links out. The LINE shows nothing deliberately — 'Burst GT' is not made of parts, the beys under it are.",
|
|
132
|
-
expectedUiState: "The model leaf shows a composition with linked part names. The line above it shows no composition section.",
|
|
133
|
-
expectedData: { leafHasPanel: true, lineHasPanel: false },
|
|
134
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
135
|
-
},
|
|
136
|
-
"checklist-content-discovery-parts-database-art-listing-has-no-parts-tab": {
|
|
137
|
-
roles: ["guest"],
|
|
138
|
-
startPage: "/products/art-dranzer-phoenix-poster",
|
|
139
|
-
steps: [
|
|
140
|
-
"Open /products/art-dranzer-phoenix-poster — an art print filed under the Dranzer F model leaf.",
|
|
141
|
-
"Read the tab strip above the description.",
|
|
142
|
-
"Confirm there is NO 'Parts' tab.",
|
|
143
|
-
"Answer no if a Parts tab appears listing an attack ring, a weight disk or a blade base.",
|
|
144
|
-
],
|
|
145
|
-
expectedBehaviour: "BEFORE: this was the ONLY listing in the catalogue that satisfied every other condition, so the one Parts tab in the whole product catalogue offered a poster an attack ring and a blade base. It rendered a correct part list for the wrong kind of object, with no error anywhere. AFTER: a print, a sticker sheet and a redemption code are excluded by type. They file under the model's leaf on purpose — a sticker sheet belongs beside the bey it is for — and none of them is made of its parts.",
|
|
146
|
-
expectedUiState: "No Parts tab on an art listing.",
|
|
147
|
-
expectedData: { partsTabOnArtListing: false },
|
|
148
|
-
endResult: "Nothing is changed; this case only reads.",
|
|
149
|
-
},
|
|
150
|
-
"checklist-content-discovery-parts-database-seller-description-lists-parts": {
|
|
151
|
-
roles: ["seller"],
|
|
152
|
-
startPage: "/store/products/new",
|
|
153
|
-
steps: [
|
|
154
|
-
"Open /store/products/new and enter any title.",
|
|
155
|
-
"Pick the category category-ace-dragon-sting-charge-zan, a Burst GT named-model leaf.",
|
|
156
|
-
"Set the condition to Used.",
|
|
157
|
-
"Wait for the template picker to fill the Description field.",
|
|
158
|
-
"Read the filled description and confirm it contains a 'Parts:' line naming at least one real part.",
|
|
159
|
-
"Now change the category to category-pokemon-set-151 — a real trading-card expansion-set leaf, which has no parts — and confirm the refilled description contains NO 'Parts:' line at all.",
|
|
160
|
-
"Answer no if the second description shows an EMPTY 'Parts:' line.",
|
|
161
|
-
],
|
|
162
|
-
expectedBehaviour: "A listing filed under a named model can state what the bey is made of, from the same data the model page renders. The second half is the half that matters: an unfilled slot resolves to an empty string, so a shared template would render an empty 'Parts:' bullet on every listing in the catalogue that is not a Beyblade. The line is REMOVED rather than emptied — absent data must read as absent, not as blank.",
|
|
163
|
-
expectedUiState: "The Beyblade description carries a Parts line naming real parts. The trading-card description has no Parts line and no empty bullet.",
|
|
164
|
-
expectedData: { partsLineOnModelLeaf: true, emptyPartsLineElsewhere: false },
|
|
165
|
-
endResult: "Nothing is saved — the draft is abandoned without publishing, so no listing is created.",
|
|
166
|
-
},
|
|
167
|
-
};
|
package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: Authored six-part procedures for the two Wave-11 adoptions —
|
|
3
|
-
* price-index local resolution and the compare overlay's new
|
|
4
|
-
* "add another" typeahead.
|
|
5
|
-
* WHAT: 4 case(s), keyed by full checklist id.
|
|
6
|
-
*
|
|
7
|
-
* @tag domain:tester
|
|
8
|
-
* @tag layer:seed
|
|
9
|
-
* @tag pattern:none
|
|
10
|
-
* @tag access:server-only
|
|
11
|
-
* @tag consumers:seed-data/authored/index.ts
|
|
12
|
-
* @tag sideEffects:none
|
|
13
|
-
*/
|
|
14
|
-
export const authored = {
|
|
15
|
-
"checklist-content-discovery-price-index-tool-price-index-resolves-locally": {
|
|
16
|
-
roles: ["guest"],
|
|
17
|
-
startPage: "/tools/price-index",
|
|
18
|
-
steps: [
|
|
19
|
-
"Open /tools/price-index in a private window and open DevTools → Network.",
|
|
20
|
-
"Clear the network log.",
|
|
21
|
-
"Type a real model name into the search box and submit.",
|
|
22
|
-
"Read the network log for what fired.",
|
|
23
|
-
"Read the results on the page.",
|
|
24
|
-
],
|
|
25
|
-
inputs: { query: "Dragoon G" },
|
|
26
|
-
expectedBehaviour: "The query-to-leaf resolution step runs in the browser against the local search artifact, at zero Firestore reads — before this, it was a searchTxt push-down query on every submit. The server is now asked only for the sale bands of the already-resolved id(s).",
|
|
27
|
-
expectedUiState: "The network log shows the one-time artifact fetch (a .json, if not already cached from an earlier visit) plus exactly one request to a bands endpoint carrying resolved id(s) — not a raw free-text query parameter. The page shows real min/median/mean/max figures for a model with recorded sales.",
|
|
28
|
-
endResult: "Read-only; nothing persists.",
|
|
29
|
-
},
|
|
30
|
-
"checklist-content-discovery-price-index-tool-price-index-falls-back-when-index-off": {
|
|
31
|
-
roles: ["admin"],
|
|
32
|
-
startPage: "/tools/price-index",
|
|
33
|
-
steps: [
|
|
34
|
-
"Sign in as admin and flip siteSettings.search.indexEnabled to false (via Firestore console or an admin settings surface, if one exists for it).",
|
|
35
|
-
"Open /tools/price-index in a private window.",
|
|
36
|
-
"Search a real model name and submit.",
|
|
37
|
-
"Read the results.",
|
|
38
|
-
"Restore the flag to true afterwards.",
|
|
39
|
-
],
|
|
40
|
-
needsReview: true,
|
|
41
|
-
reviewNote: "Needs the kill switch flipped off to observe the fallback path, which an ordinary run never exercises — flagged for a human or an admin-tooling pass.",
|
|
42
|
-
expectedBehaviour: "With the index unavailable, the tool must fall back to the original query-based endpoint rather than going blank. The fallback pays a real Firestore query, which is the accepted cost of the flag being off.",
|
|
43
|
-
expectedUiState: "The same real sale figures appear as when the index is on — slower, possibly, but not absent.",
|
|
44
|
-
endResult: "Restore siteSettings.search.indexEnabled to true before ending the session.",
|
|
45
|
-
},
|
|
46
|
-
"checklist-content-discovery-compare-overlay-add-item-compare-add-another-via-typeahead": {
|
|
47
|
-
roles: ["guest"],
|
|
48
|
-
startPage: "/products",
|
|
49
|
-
steps: [
|
|
50
|
-
"Open /products and select one item for comparison (checkbox).",
|
|
51
|
-
"Open the compare overlay.",
|
|
52
|
-
"Find the 'Add another to compare' box inside the overlay.",
|
|
53
|
-
"Type a different product's name and read the suggestions.",
|
|
54
|
-
"Click one.",
|
|
55
|
-
"Read the overlay's columns.",
|
|
56
|
-
],
|
|
57
|
-
expectedBehaviour: "Before this, the only way to add an item was selecting it via a listing-page checkbox BEFORE opening the overlay — there was no way to add a further item once inside it. The typeahead resolves a slug locally and the overlay fetches that product the same way it already fetches checkbox-selected ones.",
|
|
58
|
-
expectedUiState: "A new column appears for the picked item — its image, price and specs — without closing the overlay or returning to the grid. The originally-selected item's column is still there.",
|
|
59
|
-
endResult: "Close the overlay; nothing persists.",
|
|
60
|
-
},
|
|
61
|
-
"checklist-content-discovery-compare-overlay-add-item-compare-add-hidden-at-column-limit": {
|
|
62
|
-
roles: ["guest"],
|
|
63
|
-
startPage: "/products",
|
|
64
|
-
steps: [
|
|
65
|
-
"Open /products and select items for comparison until the compare overlay's maximum column count is reached (checkboxes, then the typeahead if room remains).",
|
|
66
|
-
"Open or stay in the overlay once full.",
|
|
67
|
-
"Look for the 'Add another to compare' box.",
|
|
68
|
-
],
|
|
69
|
-
expectedBehaviour: "A picker that cannot actually add anything because the overlay is full is worse than an absent one — it invites a click that does nothing.",
|
|
70
|
-
expectedUiState: "The 'Add another' box is completely ABSENT once the column limit is reached, not merely disabled or greyed out.",
|
|
71
|
-
endResult: "Close the overlay; nothing persists.",
|
|
72
|
-
},
|
|
73
|
-
};
|