@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.
Files changed (574) hide show
  1. package/dist/.build-stamp.json +4 -4
  2. package/dist/_internal/server/features/beys/data.d.ts +44 -0
  3. package/dist/_internal/server/features/beys/data.js +107 -0
  4. package/dist/_internal/server/features/beys/og.d.ts +42 -0
  5. package/dist/_internal/server/features/beys/og.js +89 -0
  6. package/dist/_internal/server/features/parts/data.js +3 -2
  7. package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
  8. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  9. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  10. package/dist/_internal/shared/actions/action-registry.js +86 -0
  11. package/dist/_internal/shared/types/base-document.d.ts +1 -1
  12. package/dist/client.d.ts +2 -0
  13. package/dist/client.js +1 -0
  14. package/dist/constants/api-endpoints.d.ts +12 -0
  15. package/dist/constants/api-endpoints.js +10 -0
  16. package/dist/constants/field-names.d.ts +46 -0
  17. package/dist/constants/field-names.js +46 -0
  18. package/dist/constants/seed-meta.d.ts +113 -0
  19. package/dist/constants/seed-meta.js +91 -0
  20. package/dist/features/admin/components/AdminBeysView.d.ts +27 -0
  21. package/dist/features/admin/components/AdminBeysView.js +178 -0
  22. package/dist/features/admin/components/AdminPartsView.d.ts +27 -0
  23. package/dist/features/admin/components/AdminPartsView.js +160 -0
  24. package/dist/features/admin/components/OwnerQuickActions.d.ts +19 -2
  25. package/dist/features/admin/components/OwnerQuickActions.js +31 -3
  26. package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +31 -0
  27. package/dist/features/admin/components/RecordOwnerQuickActions.js +128 -0
  28. package/dist/features/admin/components/ReferenceRecordEditor.d.ts +45 -0
  29. package/dist/features/admin/components/ReferenceRecordEditor.js +153 -0
  30. package/dist/features/admin/schemas/firestore.d.ts +1 -1
  31. package/dist/features/auctions/components/MarketplaceAuctionCard.js +15 -2
  32. package/dist/features/auth/permissions/constants.d.ts +1 -1
  33. package/dist/features/auth/permissions/constants.js +12 -1
  34. package/dist/features/beys/components/BeyDetailPageView.d.ts +50 -0
  35. package/dist/features/beys/components/BeyDetailPageView.js +98 -0
  36. package/dist/features/beys/schemas/firestore.d.ts +417 -0
  37. package/dist/features/beys/schemas/firestore.js +65 -0
  38. package/dist/features/blog/components/BlogFeaturedCard.js +15 -2
  39. package/dist/features/blog/components/BlogPostView.js +2 -2
  40. package/dist/features/categories/components/BrandDetailPageView.js +4 -2
  41. package/dist/features/categories/components/BundleDetailView.js +2 -2
  42. package/dist/features/categories/components/CategoryDetailPageView.js +36 -3
  43. package/dist/features/categories/components/CategoryGrid.js +24 -2
  44. package/dist/features/categories/components/FranchiseDetailPageView.js +2 -3
  45. package/dist/features/events/components/EventCard.js +15 -2
  46. package/dist/features/grouped/components/GroupedListingDetailView.js +2 -3
  47. package/dist/features/homepage/components/CustomCardsSection.js +67 -50
  48. package/dist/features/homepage/components/ShopByCategorySection.js +23 -10
  49. package/dist/features/homepage/schemas/index.d.ts +10 -10
  50. package/dist/features/parts/components/PartDetailPageView.js +5 -3
  51. package/dist/features/parts/components/PartsSearchBox.js +79 -4
  52. package/dist/features/parts/schemas/admin-edit.d.ts +81 -0
  53. package/dist/features/parts/schemas/admin-edit.js +89 -0
  54. package/dist/features/parts/schemas/firestore.d.ts +2 -1
  55. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +15 -2
  56. package/dist/features/products/components/MarketplaceBundleCard.js +15 -2
  57. package/dist/features/products/components/MarketplacePrizeDrawCard.js +15 -2
  58. package/dist/features/products/components/ProductGrid.js +18 -2
  59. package/dist/features/products/schemas/firestore.d.ts +18 -0
  60. package/dist/features/seller/components/CategoryInlineSelect.d.ts +10 -1
  61. package/dist/features/seller/components/CategoryInlineSelect.js +53 -5
  62. package/dist/features/seller/components/SellerProductShell.d.ts +39 -0
  63. package/dist/features/seller/components/SellerProductShell.js +31 -3
  64. package/dist/index.d.ts +6 -129
  65. package/dist/index.js +61 -292
  66. package/dist/next/routing/route-map.d.ts +13 -1
  67. package/dist/next/routing/route-map.js +37 -0
  68. package/dist/schemas/registry.d.ts +6 -6
  69. package/dist/server.d.ts +2 -69
  70. package/dist/server.js +8 -69
  71. package/dist/styles.css +468 -1
  72. package/dist/tailwind-utilities.css +1 -1
  73. package/dist/ui/components/PosterCard.d.ts +99 -0
  74. package/dist/ui/components/PosterCard.js +109 -0
  75. package/dist/ui/components/PosterCard.style.css +466 -0
  76. package/dist/ui/components/index.style.css +1 -0
  77. package/dist/ui/index.d.ts +2 -0
  78. package/dist/ui/index.js +2 -0
  79. package/package.json +4 -2
  80. package/scripts/seed-cli.mjs +177 -2
  81. package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
  82. package/dist/features/tester/seed-data/_happy-path.js +0 -710
  83. package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
  84. package/dist/features/tester/seed-data/_money-flows.js +0 -610
  85. package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
  86. package/dist/features/tester/seed-data/authored/_types.js +0 -35
  87. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
  88. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
  89. package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
  90. package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
  91. package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
  92. package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
  93. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
  94. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
  95. package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
  96. package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
  97. package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
  98. package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
  99. package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
  100. package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
  101. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
  102. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
  103. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
  104. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
  105. package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
  106. package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
  107. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
  108. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
  109. package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
  110. package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
  111. package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
  112. package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
  113. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
  114. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
  115. package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
  116. package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
  117. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
  118. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
  119. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
  120. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
  121. package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
  122. package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
  123. package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
  124. package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
  125. package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
  126. package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
  127. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
  128. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
  129. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
  130. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
  131. package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
  132. package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
  133. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
  134. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
  135. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
  136. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
  137. package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
  138. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
  139. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
  140. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
  141. package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
  142. package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
  143. package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
  144. package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
  145. package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
  146. package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
  147. package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
  148. package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
  149. package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
  150. package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
  151. package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
  152. package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
  153. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
  154. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
  155. package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
  156. package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
  157. package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
  158. package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
  159. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
  160. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
  161. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
  162. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
  163. package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
  164. package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
  165. package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
  166. package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
  167. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
  168. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
  169. package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
  170. package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
  171. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
  172. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
  173. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
  174. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
  175. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
  176. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
  177. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
  178. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
  179. package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
  180. package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
  181. package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
  182. package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
  183. package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
  184. package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
  185. package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
  186. package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
  187. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
  188. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
  189. package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
  190. package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
  191. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
  192. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
  193. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
  194. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
  195. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
  196. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
  197. package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
  198. package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
  199. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
  200. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
  201. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
  202. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
  203. package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
  204. package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
  205. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
  206. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
  207. package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
  208. package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
  209. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
  210. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
  211. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
  212. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
  213. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
  214. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
  215. package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
  216. package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
  217. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
  218. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
  219. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
  220. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
  221. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
  222. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
  223. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
  224. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
  225. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
  226. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
  227. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
  228. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
  229. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
  230. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
  231. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
  232. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
  233. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
  234. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
  235. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
  236. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
  237. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
  238. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
  239. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
  240. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
  241. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
  242. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
  243. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
  244. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
  245. package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
  246. package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
  247. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
  248. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
  249. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
  250. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
  251. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
  252. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
  253. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
  254. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
  255. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
  256. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
  257. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
  258. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
  259. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
  260. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
  261. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
  262. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
  263. package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
  264. package/dist/features/tester/seed-data/authored/index.js +0 -301
  265. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
  266. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
  267. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
  268. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
  269. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
  270. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
  271. package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
  272. package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
  273. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
  274. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
  275. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
  276. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
  277. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
  278. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
  279. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
  280. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
  281. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
  282. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
  283. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
  284. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
  285. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
  286. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
  287. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
  288. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
  289. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
  290. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
  291. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
  292. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
  293. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
  294. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
  295. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
  296. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
  297. package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
  298. package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
  299. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
  300. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
  301. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
  302. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
  303. package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
  304. package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
  305. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
  306. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
  307. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
  308. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
  309. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
  310. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
  311. package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
  312. package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
  313. package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
  314. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
  315. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
  316. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
  317. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
  318. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
  319. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
  320. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
  321. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
  322. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
  323. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
  324. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
  325. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
  326. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
  327. package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
  328. package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
  329. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
  330. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
  331. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
  332. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
  333. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
  334. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
  335. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
  336. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
  337. package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
  338. package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
  339. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
  340. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
  341. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
  342. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
  343. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
  344. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
  345. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
  346. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
  347. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
  348. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
  349. package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
  350. package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
  351. package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
  352. package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
  353. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
  354. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
  355. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
  356. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
  357. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
  358. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
  359. package/dist/features/tester/seed-data/index.d.ts +0 -2
  360. package/dist/features/tester/seed-data/index.js +0 -2
  361. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
  362. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
  363. package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
  364. package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
  365. package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
  366. package/dist/features/tester/seed-data/tester-window.js +0 -66
  367. package/dist/seed/_helpers/brand-rows.d.ts +0 -35
  368. package/dist/seed/_helpers/brand-rows.js +0 -600
  369. package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
  370. package/dist/seed/_helpers/category-content-generated.js +0 -1853
  371. package/dist/seed/_helpers/category-content.d.ts +0 -68
  372. package/dist/seed/_helpers/category-content.js +0 -731
  373. package/dist/seed/_helpers/category-forest.d.ts +0 -4
  374. package/dist/seed/_helpers/category-forest.js +0 -824
  375. package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
  376. package/dist/seed/_helpers/category-images-generated.js +0 -618
  377. package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
  378. package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
  379. package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
  380. package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
  381. package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
  382. package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
  383. package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
  384. package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
  385. package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
  386. package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
  387. package/dist/seed/_helpers/category-models.d.ts +0 -12
  388. package/dist/seed/_helpers/category-models.js +0 -45
  389. package/dist/seed/_helpers/category-names.d.ts +0 -54
  390. package/dist/seed/_helpers/category-names.js +0 -118
  391. package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
  392. package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
  393. package/dist/seed/_helpers/category-parts.d.ts +0 -9
  394. package/dist/seed/_helpers/category-parts.js +0 -15022
  395. package/dist/seed/_helpers/category-tree.d.ts +0 -27
  396. package/dist/seed/_helpers/category-tree.js +0 -119
  397. package/dist/seed/_helpers/character-features.d.ts +0 -10
  398. package/dist/seed/_helpers/character-features.js +0 -120
  399. package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
  400. package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
  401. package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
  402. package/dist/seed/_helpers/franchise-rows.js +0 -189
  403. package/dist/seed/_helpers/media.d.ts +0 -67
  404. package/dist/seed/_helpers/media.js +0 -172
  405. package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
  406. package/dist/seed/_helpers/part-colours-generated.js +0 -273
  407. package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
  408. package/dist/seed/_helpers/product-search-txt.js +0 -23
  409. package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
  410. package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
  411. package/dist/seed/addresses-seed-data.d.ts +0 -2
  412. package/dist/seed/addresses-seed-data.js +0 -78
  413. package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
  414. package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
  415. package/dist/seed/bids-seed-data.d.ts +0 -2
  416. package/dist/seed/bids-seed-data.js +0 -206
  417. package/dist/seed/blog-posts-seed-data.d.ts +0 -6
  418. package/dist/seed/blog-posts-seed-data.js +0 -442
  419. package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
  420. package/dist/seed/carousel-slides-seed-data.js +0 -411
  421. package/dist/seed/carousels-seed-data.d.ts +0 -2
  422. package/dist/seed/carousels-seed-data.js +0 -36
  423. package/dist/seed/cart-seed-data.d.ts +0 -2
  424. package/dist/seed/cart-seed-data.js +0 -241
  425. package/dist/seed/catalogue-seed-data.d.ts +0 -2
  426. package/dist/seed/catalogue-seed-data.js +0 -112
  427. package/dist/seed/categories-seed-data.d.ts +0 -3
  428. package/dist/seed/categories-seed-data.js +0 -816
  429. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
  430. package/dist/seed/claimed-coupons-seed-data.js +0 -85
  431. package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
  432. package/dist/seed/coupon-usage-seed-data.js +0 -55
  433. package/dist/seed/coupons-seed-data.d.ts +0 -2
  434. package/dist/seed/coupons-seed-data.js +0 -226
  435. package/dist/seed/defaults/categories.d.ts +0 -2
  436. package/dist/seed/defaults/categories.js +0 -12
  437. package/dist/seed/defaults/faqs.d.ts +0 -2
  438. package/dist/seed/defaults/faqs.js +0 -40
  439. package/dist/seed/events-seed-data.d.ts +0 -7
  440. package/dist/seed/events-seed-data.js +0 -482
  441. package/dist/seed/factories/address.factory.d.ts +0 -21
  442. package/dist/seed/factories/address.factory.js +0 -44
  443. package/dist/seed/factories/bid.factory.d.ts +0 -15
  444. package/dist/seed/factories/bid.factory.js +0 -33
  445. package/dist/seed/factories/blog-post.factory.d.ts +0 -15
  446. package/dist/seed/factories/blog-post.factory.js +0 -22
  447. package/dist/seed/factories/carousel.factory.d.ts +0 -11
  448. package/dist/seed/factories/carousel.factory.js +0 -17
  449. package/dist/seed/factories/cart.factory.d.ts +0 -25
  450. package/dist/seed/factories/cart.factory.js +0 -35
  451. package/dist/seed/factories/category.factory.d.ts +0 -11
  452. package/dist/seed/factories/category.factory.js +0 -16
  453. package/dist/seed/factories/coupon.factory.d.ts +0 -21
  454. package/dist/seed/factories/coupon.factory.js +0 -43
  455. package/dist/seed/factories/faq.factory.d.ts +0 -10
  456. package/dist/seed/factories/faq.factory.js +0 -15
  457. package/dist/seed/factories/notification.factory.d.ts +0 -18
  458. package/dist/seed/factories/notification.factory.js +0 -39
  459. package/dist/seed/factories/order.factory.d.ts +0 -20
  460. package/dist/seed/factories/order.factory.js +0 -20
  461. package/dist/seed/factories/payout.factory.d.ts +0 -21
  462. package/dist/seed/factories/payout.factory.js +0 -38
  463. package/dist/seed/factories/product.factory.d.ts +0 -27
  464. package/dist/seed/factories/product.factory.js +0 -80
  465. package/dist/seed/factories/review.factory.d.ts +0 -14
  466. package/dist/seed/factories/review.factory.js +0 -52
  467. package/dist/seed/factories/session.factory.d.ts +0 -15
  468. package/dist/seed/factories/session.factory.js +0 -31
  469. package/dist/seed/factories/store.factory.d.ts +0 -23
  470. package/dist/seed/factories/store.factory.js +0 -47
  471. package/dist/seed/factories/user.factory.d.ts +0 -19
  472. package/dist/seed/factories/user.factory.js +0 -56
  473. package/dist/seed/faq-seed-data.d.ts +0 -18
  474. package/dist/seed/faq-seed-data.js +0 -1956
  475. package/dist/seed/firestore-indexes.d.ts +0 -12
  476. package/dist/seed/firestore-indexes.js +0 -31
  477. package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
  478. package/dist/seed/grouped-listings-seed-data.js +0 -283
  479. package/dist/seed/history-seed-data.d.ts +0 -12
  480. package/dist/seed/history-seed-data.js +0 -70
  481. package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
  482. package/dist/seed/homepage-sections-seed-data.js +0 -1018
  483. package/dist/seed/index.d.ts +0 -98
  484. package/dist/seed/index.js +0 -112
  485. package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
  486. package/dist/seed/lottery-entries-seed-data.js +0 -108
  487. package/dist/seed/manifest.d.ts +0 -16
  488. package/dist/seed/manifest.js +0 -235
  489. package/dist/seed/media-assets-seed-data.d.ts +0 -22
  490. package/dist/seed/media-assets-seed-data.js +0 -5593
  491. package/dist/seed/model-composition-seed-data.d.ts +0 -15
  492. package/dist/seed/model-composition-seed-data.js +0 -9032
  493. package/dist/seed/notifications-seed-data.d.ts +0 -2
  494. package/dist/seed/notifications-seed-data.js +0 -606
  495. package/dist/seed/offers-seed-data.d.ts +0 -2
  496. package/dist/seed/offers-seed-data.js +0 -398
  497. package/dist/seed/orders-seed-data.d.ts +0 -2
  498. package/dist/seed/orders-seed-data.js +0 -845
  499. package/dist/seed/part-glossary/chunk0.d.ts +0 -9
  500. package/dist/seed/part-glossary/chunk0.js +0 -35448
  501. package/dist/seed/part-glossary/chunk1.d.ts +0 -9
  502. package/dist/seed/part-glossary/chunk1.js +0 -40494
  503. package/dist/seed/part-glossary/chunk2.d.ts +0 -9
  504. package/dist/seed/part-glossary/chunk2.js +0 -51242
  505. package/dist/seed/part-glossary/chunk3.d.ts +0 -9
  506. package/dist/seed/part-glossary/chunk3.js +0 -53337
  507. package/dist/seed/part-glossary/chunk4.d.ts +0 -9
  508. package/dist/seed/part-glossary/chunk4.js +0 -51454
  509. package/dist/seed/part-glossary-seed-data.d.ts +0 -15
  510. package/dist/seed/part-glossary-seed-data.js +0 -25
  511. package/dist/seed/payouts-seed-data.d.ts +0 -2
  512. package/dist/seed/payouts-seed-data.js +0 -302
  513. package/dist/seed/product-features-seed-data.d.ts +0 -3
  514. package/dist/seed/product-features-seed-data.js +0 -366
  515. package/dist/seed/products-art-seed-data.d.ts +0 -2
  516. package/dist/seed/products-art-seed-data.js +0 -289
  517. package/dist/seed/products-auctions-seed-data.d.ts +0 -2
  518. package/dist/seed/products-auctions-seed-data.js +0 -475
  519. package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
  520. package/dist/seed/products-beyblade-x-seed-data.js +0 -476
  521. package/dist/seed/products-catalogue-seed-data.d.ts +0 -22
  522. package/dist/seed/products-catalogue-seed-data.js +0 -86384
  523. package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
  524. package/dist/seed/products-classifieds-seed-data.js +0 -435
  525. package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
  526. package/dist/seed/products-digital-codes-seed-data.js +0 -395
  527. package/dist/seed/products-live-items-seed-data.d.ts +0 -7
  528. package/dist/seed/products-live-items-seed-data.js +0 -269
  529. package/dist/seed/products-preorders-seed-data.d.ts +0 -2
  530. package/dist/seed/products-preorders-seed-data.js +0 -360
  531. package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
  532. package/dist/seed/products-prize-draws-seed-data.js +0 -427
  533. package/dist/seed/products-spares-seed-data.d.ts +0 -2
  534. package/dist/seed/products-spares-seed-data.js +0 -368
  535. package/dist/seed/products-standard-seed-data.d.ts +0 -2
  536. package/dist/seed/products-standard-seed-data.js +0 -632
  537. package/dist/seed/products-stickers-seed-data.d.ts +0 -2
  538. package/dist/seed/products-stickers-seed-data.js +0 -319
  539. package/dist/seed/reviews-seed-data.d.ts +0 -1
  540. package/dist/seed/reviews-seed-data.js +0 -185
  541. package/dist/seed/runner.d.ts +0 -2
  542. package/dist/seed/runner.js +0 -125
  543. package/dist/seed/scammers-seed-data.d.ts +0 -2
  544. package/dist/seed/scammers-seed-data.js +0 -235
  545. package/dist/seed/seed-market-config.d.ts +0 -48
  546. package/dist/seed/seed-market-config.js +0 -199
  547. package/dist/seed/seed-purpose.d.ts +0 -299
  548. package/dist/seed/seed-purpose.js +0 -431
  549. package/dist/seed/sessions-seed-data.d.ts +0 -3
  550. package/dist/seed/sessions-seed-data.js +0 -116
  551. package/dist/seed/shipments-seed-data.d.ts +0 -5
  552. package/dist/seed/shipments-seed-data.js +0 -185
  553. package/dist/seed/site-settings-seed-data.d.ts +0 -2
  554. package/dist/seed/site-settings-seed-data.js +0 -1069
  555. package/dist/seed/store-addresses-seed-data.d.ts +0 -18
  556. package/dist/seed/store-addresses-seed-data.js +0 -71
  557. package/dist/seed/store-extensions-seed-data.d.ts +0 -11
  558. package/dist/seed/store-extensions-seed-data.js +0 -292
  559. package/dist/seed/stores-seed-data.d.ts +0 -6
  560. package/dist/seed/stores-seed-data.js +0 -242
  561. package/dist/seed/support-tickets-seed-data.d.ts +0 -16
  562. package/dist/seed/support-tickets-seed-data.js +0 -239
  563. package/dist/seed/tax-codes-seed-data.d.ts +0 -34
  564. package/dist/seed/tax-codes-seed-data.js +0 -100
  565. package/dist/seed/test-data-ttl.d.ts +0 -29
  566. package/dist/seed/test-data-ttl.js +0 -31
  567. package/dist/seed/test-utils.d.ts +0 -49
  568. package/dist/seed/test-utils.js +0 -110
  569. package/dist/seed/types.d.ts +0 -89
  570. package/dist/seed/types.js +0 -15
  571. package/dist/seed/users-seed-data.d.ts +0 -2
  572. package/dist/seed/users-seed-data.js +0 -597
  573. package/dist/seed/wishlists-seed-data.d.ts +0 -12
  574. package/dist/seed/wishlists-seed-data.js +0 -54
@@ -1,336 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/listing-lifecycle page.
3
- * WHAT: 18 case(s), keyed by full checklist id.
4
- *
5
- * 🛑 EVERY OTHER PAGE TESTS A LISTING TYPE AT REST. THIS ONE WALKS IT.
6
- * Detail pages, badges and filters are covered elsewhere; what was not covered
7
- * anywhere is create → publish → sell → close, per type, which is where the
8
- * type-specific fields either survive the round trip or quietly do not.
9
- *
10
- * Adding a listing type is a five-place change and TypeScript catches only three
11
- * of them. The two it misses both fail SILENTLY and in the same shape — a query
12
- * that returns everything, or a post-filter that strips the type from every
13
- * unfiltered call — so a type can be fully built, fully rendered on its own page,
14
- * and invisible in every grid. Several cases here exist for exactly that.
15
- *
16
- * @tag domain:tester
17
- * @tag layer:seed
18
- * @tag pattern:none
19
- * @tag access:server-only
20
- * @tag consumers:seed-data/authored/index.ts
21
- * @tag sideEffects:none
22
- */
23
- const SIGN_IN_SELLER = "Sign in as tyson@beybladearena.in / TempPass123!.";
24
- /*
25
- * The two MIXED-ROLE cases below list roles [seller, buyer], and identityFor
26
- * resolves that to the BUYER session — admin wins if present, then all-seller,
27
- * and everything else falls to the buyer. So those batches open as someone who
28
- * owns no store, and their first step is a seller action. They say so; the
29
- * twelve seller-only cases on this page need no such warning and do not carry
30
- * one.
31
- */
32
- const SIGN_IN_SELLER_MIXED = SIGN_IN_SELLER +
33
- " 🛑 THIS CASE OPENS AS THE BUYER because its roles are [seller, buyer]. Copy tester/.tester-runs/session-seller.json over session.json and CLOSE THE BROWSER before this step; the MCP reads that file only when the context is created.";
34
- export const authored = {
35
- "checklist-selling-listing-lifecycle-standard-create-publish-sell": {
36
- roles: ["seller", "buyer"],
37
- startPage: "/store/products",
38
- steps: [
39
- SIGN_IN_SELLER,
40
- "Create a standard listing titled 'QA Lifecycle Standard' priced at 349 with stock 1, and publish it.",
41
- "Open its public page and check it is buyable.",
42
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and buy it with Cash on Delivery.",
43
- "Sign back in as the seller and read the listing's stock and availability.",
44
- "Open /products and check the listing has left the Available scope.",
45
- "Delete the listing afterwards.",
46
- ],
47
- inputs: { title: "QA Lifecycle Standard", price: 349, stock: 1 },
48
- expectedBehaviour: "The full walk works: created, publicly buyable, bought, stock decremented, and out of the available scope once stock reaches zero. Availability is one shared rule rather than a per-surface check, so the listing must leave the scope everywhere at once.",
49
- expectedUiState: "Stock reads 0 after the purchase and the listing is absent from Available while present in All. Still appearing as buyable is the finding.",
50
- expectedData: { stockAfterSale: 0 },
51
- endResult: "The QA listing is deleted; one order exists.",
52
- },
53
- "checklist-selling-listing-lifecycle-auction-create-publish-bid-close": {
54
- roles: ["seller", "buyer"],
55
- startPage: "/store/products",
56
- steps: [
57
- SIGN_IN_SELLER_MIXED,
58
- "Create an auction titled 'QA Lifecycle Auction' with a starting bid of 500, an increment of 50 and no reserve, ending within the current test window, and publish it.",
59
- "Swap session: copy tester/.tester-runs/session-buyer.json over session.json and CLOSE THE BROWSER before continuing — the MCP reads that file only when the context is created, so swapping over an open browser changes nothing and the next steps run as the previous person. Then sign in as rehan.sheikh@gmail.com / TempPass123! and place a bid of 550.",
60
- "Sign out and sign in as vivaan.kapoor@gmail.com / TempPass123! — same browser session file, a different account — and place a bid of 600.",
61
- "Wait for the auction to end.",
62
- "Read the auction page for the outcome.",
63
- "Sign in as the winning bidder (vivaan, at ₹600) and check the won line is in their cart under the Won Auctions tab.",
64
- ],
65
- inputs: { title: "QA Lifecycle Auction", startingBid: 500, increment: 50, bidA: 550, bidB: 600 },
66
- expectedBehaviour: "The auction closes at its end time and the top bidder wins. A win reaches the buyer as a LOCKED cart line rather than as a ready-made order, because that is the only checkout that knows how to collect an address, charge a method and split per store — an order written directly by settlement had no payment method and no way to pay it at all.",
67
- expectedUiState: "The auction shows as ended with the ₹600.00 bidder as the winner, and that bidder's cart holds a non-removable won line under the Won Auctions tab.",
68
- expectedData: { winningBid: 600 },
69
- endResult: "An auction is settled and a won line exists. Set the end time with the shared window helper so this is testable inside one run.",
70
- },
71
- "checklist-selling-listing-lifecycle-auction-reserve-respected-at-close": {
72
- roles: ["seller", "buyer"],
73
- startPage: "/store/products",
74
- steps: [
75
- SIGN_IN_SELLER,
76
- "Create an auction titled 'QA Lifecycle Reserve' with a starting bid of 500 and a reserve of 2000, ending within the current test window, and publish it.",
77
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and bid 600.",
78
- "Read whether the page says the reserve has not been met.",
79
- "Wait for the auction to end.",
80
- "Read the outcome on the auction page.",
81
- "Check no winner was declared and no won line reached the bidder's cart.",
82
- ],
83
- inputs: { title: "QA Lifecycle Reserve", startingBid: 500, reserve: 2000, bid: 600 },
84
- expectedBehaviour: "An auction closing below its reserve awards nobody. Settlement once awarded the highest bid unconditionally and never read the reserve at all — while the reserve was displayed on the page, editable by the seller and promised in the seller guide, so the whole feature existed everywhere except in the code that decides.",
85
- expectedUiState: "The auction ends stating the reserve was not met, no winner is named, and the bidder's cart holds no won line.",
86
- expectedData: { winnerDeclared: false },
87
- endResult: "The auction ends unsold.",
88
- },
89
- "checklist-selling-listing-lifecycle-preorder-create-publish-deposit": {
90
- roles: ["seller", "buyer"],
91
- startPage: "/store/products",
92
- steps: [
93
- SIGN_IN_SELLER,
94
- "Create a pre-order titled 'QA Lifecycle Preorder' with a full price of 2000, a deposit of 500 and a delivery date two months out, and publish it.",
95
- "Open its public page and read the price shown.",
96
- "Check the deposit and the full price are both stated and distinguishable.",
97
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and add it to the cart.",
98
- "Read the amount charged at checkout.",
99
- "Delete the listing afterwards.",
100
- ],
101
- inputs: { title: "QA Lifecycle Preorder", fullPrice: 2000, deposit: 500 },
102
- expectedBehaviour: "A pre-order charges its deposit and states the remainder. Showing only one of the two numbers is the failure in both directions — the full price alone overstates what is due now, the deposit alone hides what is still owed.",
103
- expectedUiState: "The page states ₹500.00 due now against a ₹2,000.00 total, and checkout charges ₹500.00.",
104
- expectedData: { amountCharged: 500 },
105
- endResult: "The QA listing is deleted.",
106
- },
107
- "checklist-selling-listing-lifecycle-preorder-production-status-visible": {
108
- roles: ["seller", "guest"],
109
- startPage: "/store/products",
110
- steps: [
111
- SIGN_IN_SELLER,
112
- "Open an existing pre-order listing for edit and note its production status.",
113
- "Change it to a different value and save.",
114
- "Open its public page as a signed-out visitor.",
115
- "Read the production status shown.",
116
- "Change it once more and reload the public page.",
117
- "Restore the original value.",
118
- ],
119
- expectedBehaviour: "Production status is the field a pre-order buyer checks, so a change reaches the public page. A field the editor accepts and no page renders is a promise to the seller that nothing keeps.",
120
- expectedUiState: "The public page shows the current production status and follows each change. A status visible only in the editor is the finding.",
121
- endResult: "The original production status is restored.",
122
- },
123
- "checklist-selling-listing-lifecycle-prizedraw-create-publish-close-reveal": {
124
- roles: ["seller", "buyer"],
125
- startPage: "/store/products",
126
- steps: [
127
- SIGN_IN_SELLER_MIXED,
128
- "Create a prize draw titled 'QA Lifecycle Draw' with 3 entries at 100 each and a reveal window inside the current test window, and publish it.",
129
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and buy two entries.",
130
- "Sign in as vivaan.kapoor@gmail.com / TempPass123! and buy the last one.",
131
- "Read the listing once the entries are gone.",
132
- "Wait for the reveal and read the outcome.",
133
- "Check a real entrant is named as the winner.",
134
- ],
135
- inputs: { title: "QA Lifecycle Draw", entries: 3, pricePerEntry: 100 },
136
- expectedBehaviour: "A prize draw sells its entries, closes when they are gone and reveals a winner drawn from real entrants. A draw that closes without ever revealing leaves buyers holding paid entries with no outcome, which is indistinguishable from the site having forgotten them.",
137
- expectedUiState: "The draw shows as closed once all three entries are sold, and after the reveal it names one of the two real entrants as the winner.",
138
- expectedData: { entriesSold: 3 },
139
- endResult: "The draw is revealed with a winner.",
140
- },
141
- "checklist-selling-listing-lifecycle-classified-create-publish-contact": {
142
- roles: ["seller", "guest"],
143
- startPage: "/store/products",
144
- steps: [
145
- SIGN_IN_SELLER,
146
- "Create a classified titled 'QA Lifecycle Classified' priced at 750, with the city Bengaluru and a contact method, and publish it.",
147
- "Open its public page as a signed-out visitor.",
148
- "Read whether an Add to Cart control is offered.",
149
- "Read what contact affordance is offered instead.",
150
- "Check the city is shown.",
151
- "Delete the listing afterwards.",
152
- ],
153
- inputs: { title: "QA Lifecycle Classified", price: 750, city: "Bengaluru" },
154
- expectedBehaviour: "A classified cannot be carted at all — it is a contact-the-seller listing, and the cart is blocked for it by capability rather than by the page choosing not to draw the button. A cart control that appears and then fails is the failure this rules out.",
155
- expectedUiState: "No cart control anywhere on the page, a working contact affordance, and Bengaluru shown as the location.",
156
- expectedData: { cartControlPresent: false },
157
- endResult: "The QA listing is deleted.",
158
- },
159
- "checklist-selling-listing-lifecycle-digitalcode-create-publish-claim": {
160
- roles: ["seller", "buyer"],
161
- startPage: "/store/products",
162
- steps: [
163
- SIGN_IN_SELLER,
164
- "Create a digital-code listing titled 'QA Lifecycle Code' priced at 199 with a pool of two codes, set to auto-claim, and publish it.",
165
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and buy one.",
166
- "Read where the code is delivered and whether it arrives immediately.",
167
- "Open the order and check the code is retrievable from it.",
168
- "Sign back in as the seller and read the remaining pool count.",
169
- "Delete the listing afterwards.",
170
- ],
171
- inputs: { title: "QA Lifecycle Code", price: 199, poolSize: 2 },
172
- expectedBehaviour: "A digital code fulfils from its pool at purchase and the pool shrinks. Fulfilment is immediate for this type, so a code that has to be chased by hand defeats the whole listing type.",
173
- expectedUiState: "The buyer receives a code straight away and can find it again on the order; the pool reads one remaining.",
174
- expectedData: { poolRemaining: 1 },
175
- endResult: "The QA listing is deleted.",
176
- },
177
- "checklist-selling-listing-lifecycle-digitalcode-pool-depletes": {
178
- roles: ["buyer"],
179
- startPage: "/digital-codes",
180
- steps: [
181
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
182
- "Open /digital-codes — it REDIRECTS to /products?listingType=digital-code, which is expected: the per-type browse pages were folded into one catalogue with an in-page type filter — then set the All scope and find digitalcode-beyblade-x-app-launch-codes-depleted, whose code pool is empty while its stock field still reads 5.",
183
- "Open it and read whether it can be bought.",
184
- "Read its stock number.",
185
- "Compare that stock number against the pool count.",
186
- "Open /digital-codes — it REDIRECTS to /products?listingType=digital-code, which is expected: the per-type browse pages were folded into one catalogue with an in-page type filter — then set the Available scope and check the listing is not there.",
187
- ],
188
- expectedBehaviour: "Availability for this type is the NESTED codes-available count, not the stock field — and the two disagree on purpose in the seed, so a check reading stock alone passes while the listing is unbuyable. The branch that reads the pool once looked at a top-level field the record does not have, so it had never fired even once.",
189
- expectedUiState: "The listing is not buyable and is absent from the Available scope, even though its stock number is above zero. Finding it buyable is the finding.",
190
- endResult: "Read-only.",
191
- },
192
- "checklist-selling-listing-lifecycle-live-create-publish-jurisdiction": {
193
- roles: ["seller", "buyer"],
194
- startPage: "/store/products",
195
- steps: [
196
- SIGN_IN_SELLER,
197
- "Create a live-item listing titled 'QA Lifecycle Live' priced at 5000, with a species and a restricted jurisdiction list, and publish it.",
198
- "Open its public page and read the jurisdiction and vendor-verification notices.",
199
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
200
- "Attempt to buy it with a delivery address outside the allowed jurisdiction.",
201
- "Read what happens and where the refusal appears.",
202
- "Delete the listing afterwards.",
203
- ],
204
- inputs: { title: "QA Lifecycle Live", price: 5000 },
205
- expectedBehaviour: "A live item states its jurisdiction restriction and refuses a purchase outside it. A refusal that only appears after payment is the shape that matters — the buyer has paid for something that cannot legally be sent.",
206
- expectedUiState: "The restriction is stated on the listing, and the purchase is refused before payment with a message naming the jurisdiction.",
207
- endResult: "The QA listing is deleted; nothing is charged.",
208
- },
209
- "checklist-selling-listing-lifecycle-art-create-publish-sell": {
210
- roles: ["seller", "buyer"],
211
- startPage: "/store/products",
212
- steps: [
213
- SIGN_IN_SELLER,
214
- "Create an art listing titled 'QA Lifecycle Art' priced at 1200, with a size, a material, a finish and an edition size, and publish it.",
215
- "Open its public page and check all four fields render.",
216
- "Open the listing for edit and check all four survived the round trip.",
217
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and add it to the cart.",
218
- "Check checkout proceeds through the standard flow.",
219
- "Delete the listing afterwards.",
220
- ],
221
- inputs: { title: "QA Lifecycle Art", price: 1200 },
222
- expectedBehaviour: "Art carries its own print fields and otherwise checks out exactly like a standard listing — it deliberately has no dedicated detail route. The fields surviving the edit round trip is the real check; a field written on create and dropped on update is invisible until somebody edits.",
223
- expectedUiState: "Size, material, finish and edition size all render publicly and are all still there after reopening the editor. Checkout is the ordinary flow.",
224
- endResult: "The QA listing is deleted.",
225
- },
226
- "checklist-selling-listing-lifecycle-sticker-create-publish-sell": {
227
- roles: ["seller", "buyer"],
228
- startPage: "/store/products",
229
- steps: [
230
- SIGN_IN_SELLER,
231
- "Create a sticker listing titled 'QA Lifecycle Sticker' priced at 149, with its print fields filled, and publish it.",
232
- "Open its public page and check the print fields render.",
233
- "Open the listing for edit and check they survived.",
234
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and add it to the cart.",
235
- "Check checkout proceeds through the standard flow.",
236
- "Delete the listing afterwards.",
237
- ],
238
- inputs: { title: "QA Lifecycle Sticker", price: 149 },
239
- expectedBehaviour: "Stickers share the art type's shape and the standard checkout. Both types were added to the type union and the registry but not to the query layer's allowlist, so every query for them silently dropped its own type filter and returned nothing — which is why they are walked separately rather than assumed to follow art.",
240
- expectedUiState: "The print fields render publicly and survive the editor round trip, and checkout is the ordinary flow.",
241
- endResult: "The QA listing is deleted.",
242
- },
243
- "checklist-selling-listing-lifecycle-type-badge-correct-on-card": {
244
- roles: ["guest"],
245
- startPage: "/products",
246
- steps: [
247
- "Open /products and tick every listing-type chip in turn.",
248
- "For each type, read the badge on its cards.",
249
- "Write down the badge text and colour for all nine types.",
250
- "Check no two types share a badge.",
251
- "Check every badge is legible against its card, in light and in dark mode.",
252
- ],
253
- expectedBehaviour: "Each type carries its own badge. A badge map covering fewer types than the union renders an identical fallback for the rest, so several types become visually indistinguishable in a grid — which once affected five of nine at the same time.",
254
- expectedUiState: "Nine distinct badges, each readable in both themes. Two types sharing a badge, or a type with none, are findings named by type.",
255
- expectedData: { distinctBadges: 9 },
256
- endResult: "Read-only.",
257
- },
258
- "checklist-selling-listing-lifecycle-type-detail-route-correct": {
259
- roles: ["guest"],
260
- startPage: "/products",
261
- steps: [
262
- "Open /products and select one listing type at a time.",
263
- "Click a card of that type and read the URL it lands on.",
264
- "Check the URL is that type's own route rather than the standard product path.",
265
- "Repeat for all nine types.",
266
- "Do the same from a related-items carousel on a product page.",
267
- "Record any type that lands on the wrong route from either surface.",
268
- ],
269
- expectedBehaviour: "Every card resolves to its own type's page — from the grid AND from a carousel. Three types were pointed at the standard product page despite having working dedicated routes, and separately a shared card builder dropped the type field entirely, so a card could carry nine correct fields and still route wrong because of the tenth.",
270
- expectedUiState: "All nine land on their own routes from both the grid and a carousel. A type landing on the standard product path is the finding, recorded with which surface produced it.",
271
- expectedData: { wrongRoutes: 0 },
272
- endResult: "Read-only.",
273
- },
274
- "checklist-selling-listing-lifecycle-type-survives-edit": {
275
- roles: ["seller"],
276
- startPage: "/store/products",
277
- steps: [
278
- SIGN_IN_SELLER,
279
- "Open an existing auction listing for edit.",
280
- "Change only its description and save.",
281
- "Reload the editor and read the listing type.",
282
- "Open the public listing and check it is still on the auction route with the auction badge.",
283
- "Repeat with a pre-order and with a classified.",
284
- ],
285
- expectedBehaviour: "Editing an unrelated field does not change the type. A row builder collapsing several types into one on the way into a form, or a form defaulting the type when the field is absent from the payload, both convert a listing on save — and the seller has no reason to check.",
286
- expectedUiState: "All three keep their type after an unrelated edit, on the editor and on the public page. A type that reverted to standard is the finding.",
287
- endResult: "The descriptions are restored.",
288
- },
289
- "checklist-selling-listing-lifecycle-unpublish-removes-from-public": {
290
- roles: ["seller", "guest"],
291
- startPage: "/store/products",
292
- steps: [
293
- SIGN_IN_SELLER,
294
- "Pick a published listing and note its public URL.",
295
- "Unpublish it.",
296
- "As a signed-out visitor, open /products and search for it.",
297
- "Open its public URL directly and read what happens.",
298
- "Sign back in as the seller and check the listing is still listed and editable.",
299
- "Republish it and check it returns publicly.",
300
- ],
301
- expectedBehaviour: "Unpublishing removes a listing from public grids while keeping it in the seller's own list and editable. It is the reversible half of the pair whose irreversible half is delete, so keeping it fully editable is what makes it usable.",
302
- expectedUiState: "The listing is absent from the public grid, its direct URL does not present it as buyable, it is still in the seller's list, and republishing restores it exactly.",
303
- endResult: "The listing is republished.",
304
- },
305
- "checklist-selling-listing-lifecycle-sold-listing-leaves-available-tab": {
306
- roles: ["guest"],
307
- startPage: "/products",
308
- steps: [
309
- "Open /products on the Available scope and note the total count.",
310
- "Switch to Sold & Ended and read the count.",
311
- "Switch to All and read the count.",
312
- "Check the first two sum to the third.",
313
- "Pick a listing from Sold & Ended and check it is absent from Available and present in All.",
314
- "Repeat on /auctions, where the middle tab should read Ended rather than Sold.",
315
- ],
316
- expectedBehaviour: "The three scopes partition the catalogue, and the middle tab's label follows the type — Ended for auctions, Sold for art, Sold & Ended where several types are mixed. A count that saturates the page limit is reported as a floor rather than as an exact figure, so a paginator does not claim a false last page.",
317
- expectedUiState: "Available plus Sold & Ended equals All, a sold listing is in the second and third only, and the auctions page reads Ended. A count shown as an exact number when it is saturated is a smaller finding worth recording.",
318
- endResult: "Read-only.",
319
- },
320
- "checklist-selling-listing-lifecycle-closed-listing-still-viewable": {
321
- roles: ["guest"],
322
- startPage: "/auctions",
323
- steps: [
324
- "Open /auctions on the Sold & Ended scope and open an ended auction.",
325
- "Read whether the page loads and what it says about the outcome.",
326
- "Open a closed prize draw and read the same.",
327
- "Open a sold-out pre-order and read the same.",
328
- "Open a depleted digital-code listing and read the same.",
329
- "Check none of the four returns a not-found page.",
330
- ],
331
- expectedBehaviour: "A finished listing keeps its page and states how it finished. Buyers, bidders and entrants all hold links to these; turning them into not-found pages breaks every one of those links at the exact moment somebody wants to check what happened.",
332
- expectedUiState: "All four load and each states its outcome — ended, closed, sold out, depleted — rather than a buy control or a 404.",
333
- expectedData: { notFoundPages: 0 },
334
- endResult: "Read-only.",
335
- },
336
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,136 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/listing-type-fields-roundtrip page.
3
- * WHAT: 5 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
- * 🛑 A ROUND TRIP IS SAVE -> RELOAD -> READ, and the reload is the whole case.
10
- * Every defect these five exist for returns a success and renders correctly
11
- * until the page is refreshed: a field the form cannot name is sent as undefined
12
- * and overwrites, a create-time transform the update path does not repeat writes
13
- * the wrong shape, and an editor seeded from a stripped read saves the stripped
14
- * values back.
15
- *
16
- * @tag domain:tester
17
- * @tag layer:seed
18
- * @tag pattern:none
19
- * @tag access:server-only
20
- * @tag consumers:seed-data/authored/index.ts
21
- * @tag sideEffects:none
22
- */
23
- export const authored = {
24
- "checklist-selling-listing-type-fields-roundtrip-roundtrip-classified-meetup": {
25
- roles: ["seller"],
26
- startPage: "/store/classified/new",
27
- steps: [
28
- "Sign in as tyson@beybladearena.in / TempPass123!.",
29
- "Open /store/classified/new and type 'QA Classified roundtrip-meetup' as the title.",
30
- "Set the city to Mumbai, the contact method to chat, negotiable to on, and accepts-shipping to off.",
31
- "Type 1500 as the price and fill every other required field.",
32
- "Save.",
33
- "RELOAD the editor for that listing and read all four type-specific values.",
34
- "Open the listing's public page at /classified/{its slug} and read the same four.",
35
- "Delete the listing.",
36
- ],
37
- inputs: {
38
- title: "QA Classified roundtrip-meetup",
39
- city: "Mumbai",
40
- contactMethod: "chat",
41
- negotiable: true,
42
- acceptsShipping: false,
43
- price: 1500,
44
- },
45
- expectedBehaviour: "Every classified-specific field survives the round trip and reaches the public page. These fields also back the store tab's own facets, so a value that fails to persist makes the corresponding filter permanently empty rather than visibly broken.",
46
- expectedUiState: "After the reload the editor shows Mumbai, chat, negotiable on, shipping off. The public page shows the same, and the purchase panel offers the contact path rather than a cart control.",
47
- expectedData: { city: "Mumbai", negotiable: true, acceptsShipping: false },
48
- endResult: "The listing is deleted by the final step. A boolean that reads back as off when it was saved on is the classic undefined-overwrite.",
49
- },
50
- "checklist-selling-listing-type-fields-roundtrip-roundtrip-live-species-jurisdictions": {
51
- roles: ["seller"],
52
- startPage: "/store/live/new",
53
- steps: [
54
- "Sign in as tyson@beybladearena.in / TempPass123!.",
55
- "Open /store/live/new and type 'QA Live Item roundtrip-species' as the title.",
56
- "Set the species to Dog, the breed to Golden Retriever, the sex to male and the age to 6 months.",
57
- "Set the allowed jurisdictions to Maharashtra and Karnataka only.",
58
- "Upload public/test-media/sample-video.mp4 and type 2000 as the price.",
59
- "Save.",
60
- "RELOAD the editor and read every one of those values.",
61
- "Open the public page at /live/{its slug} and read the species line and the delivery restrictions.",
62
- "Delete the listing.",
63
- ],
64
- inputs: {
65
- title: "QA Live Item roundtrip-species",
66
- species: "Dog",
67
- breed: "Golden Retriever",
68
- sex: "male",
69
- ageMonths: 6,
70
- jurisdictions: "Maharashtra, Karnataka",
71
- price: 2000,
72
- },
73
- expectedBehaviour: "Species, breed, sex, age and the jurisdiction list all round-trip. The jurisdiction list is the one that matters most: it gates whether the item can be sold to a given buyer at all, so a list that saves empty silently removes the restriction rather than failing loudly.",
74
- expectedUiState: "After the reload every value is present, with BOTH jurisdictions still selected. The public page shows the species line and states the delivery restriction rather than leaving it blank.",
75
- expectedData: { species: "Dog", jurisdictionCount: 2 },
76
- endResult: "The listing is deleted by the final step. An empty jurisdiction list after reload is a safety failure, not a formatting one.",
77
- },
78
- "checklist-selling-listing-type-fields-roundtrip-roundtrip-digital-code-delivery": {
79
- roles: ["seller"],
80
- startPage: "/store/digital-codes/new",
81
- steps: [
82
- "Sign in as tyson@beybladearena.in / TempPass123!.",
83
- "Open /store/digital-codes/new and type 'QA Digital Code roundtrip-delivery' as the title.",
84
- "Set the delivery mode to auto-claim and type 250 as the price.",
85
- "Add three codes to the pool and save.",
86
- "RELOAD the editor and read the delivery mode and the pool count.",
87
- "Open the public page at /digital-codes/{its slug} and read the availability shown.",
88
- "Change the delivery mode to manual email, save, reload and read it again.",
89
- "Delete the listing.",
90
- ],
91
- inputs: {
92
- title: "QA Digital Code roundtrip-delivery",
93
- deliveryMode: "auto-claim",
94
- price: 250,
95
- codeCount: 3,
96
- },
97
- expectedBehaviour: "The delivery mode and the code pool both round-trip, and the mode can be changed after creation. Availability for this type reads the NESTED pool count rather than the stock figure, so the public page's availability must follow the pool.",
98
- expectedUiState: "After each reload the editor shows the mode last saved and a pool of three. The public page reports availability consistent with the pool rather than with a separate stock number.",
99
- expectedData: { codesAvailable: 3 },
100
- endResult: "The listing is deleted by the final step. A mode that reverts to its default on reload means the update path does not accept it.",
101
- },
102
- "checklist-selling-listing-type-fields-roundtrip-roundtrip-print-meta": {
103
- roles: ["seller"],
104
- startPage: "/store/art/new",
105
- steps: [
106
- "Sign in as tyson@beybladearena.in / TempPass123!.",
107
- "Open /store/art/new — stickers have their own at /store/stickers/new and the same four print fields — and type 'QA Art Print roundtrip-meta' as the title. These per-type routes render the FULL form; /store/products/new would open the six-field quick form, which has none of these fields.",
108
- "Set the size, the material, the finish and the edition size, noting each value.",
109
- "Type 800 as the price and save.",
110
- "RELOAD the editor and read all four print fields.",
111
- "Open the public page at /products/{its slug} — art and stickers deliberately use the STANDARD product route, not a dedicated one — and read the same four.",
112
- "Delete the listing.",
113
- ],
114
- inputs: { title: "QA Art Print roundtrip-meta", price: 800 },
115
- expectedBehaviour: "The print-specific fields round-trip and reach the public page. Art and stickers were added to the type union and the plugin registry without being added to the repository's filter-alias map, so their queries silently ran with no type filter — which makes any authoring case for these two worth running end to end rather than trusting the editor alone.",
116
- expectedUiState: "After the reload all four print fields hold their typed values. The public page renders them in its specification panel rather than omitting the section.",
117
- endResult: "The listing is deleted by the final step.",
118
- },
119
- "checklist-selling-listing-type-fields-roundtrip-roundtrip-edit-form-opens-populated": {
120
- roles: ["seller"],
121
- startPage: "/store/products",
122
- steps: [
123
- "Sign in as tyson@beybladearena.in / TempPass123!.",
124
- "Open /store/products and open the editor for 'Beyblade Burst B-01 Valkyrie'.",
125
- "Read every field the form offers and note which are empty.",
126
- "Compare each against the public page for that product.",
127
- "Change nothing and save.",
128
- "RELOAD the public page and check nothing has changed — title, price, description, images, category, brand, stock AND STATUS. Status is the one to check hardest: a form seeded from an unwrapped result envelope resolves every real field to undefined, and the status ternary then evaluates undefined === 'published' to false and writes 'draft' — which removes a live listing from every public surface while the save reports success and the editor looks merely empty.",
129
- ],
130
- inputs: { productId: "product-beyblade-burst-valkyrie" },
131
- expectedBehaviour: "An edit form opens populated from a read that strips nothing, and a no-op save writes back exactly what was there. This is the single most valuable case on the page: a form seeded from a projection that drops fields will save those drops back, so opening and saving an untouched record quietly deletes data.",
132
- expectedUiState: "Every field carrying a value on the public page carries the same value in the form. After the no-op save and reload, the public page is byte-for-byte what it was — same images in the same order, same category and brand links, same stock figure.",
133
- expectedData: { fieldsChangedByNoOpSave: 0 },
134
- endResult: "The product is unchanged. Any field that emptied itself through an untouched save is the finding, and it is the highest-severity kind on this page.",
135
- },
136
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,135 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/media-limits page.
3
- * WHAT: 6 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
- * Every upload step names a committed fixture from public/test-media/, whose
10
- * bytes are asserted against the same detector the finalize endpoint uses. "Any
11
- * image" is not a test — two runs of it are two different tests, and the
12
- * rejection fixtures in particular only reject because of what they contain.
13
- *
14
- * @tag domain:tester
15
- * @tag layer:seed
16
- * @tag pattern:none
17
- * @tag access:server-only
18
- * @tag consumers:seed-data/authored/index.ts
19
- * @tag sideEffects:none
20
- */
21
- import { PRODUCT_MAX_IMAGES } from "../../../../_internal/shared/media/limits.js";
22
- export const authored = {
23
- "checklist-selling-media-limits-media-gallery-accepts-images-and-video": {
24
- roles: ["seller"],
25
- startPage: "/store/products/new",
26
- steps: [
27
- "Sign in as tyson@beybladearena.in / TempPass123!.",
28
- "Open /store/products/new and type 'QA Product media-gallery' as the title.",
29
- "Click 'Show all fields (advanced)' before touching any media. 🛑 /store/products/new opens the QUICK form by default for a create of a standard listing, and it has ONE field — 'Product Image' — with no gallery and no video field at all. Every media step below needs the advanced form.",
30
- "Upload public/test-media/sample-image.png to the gallery.",
31
- "Upload public/test-media/sample-image.jpg to the gallery.",
32
- "Upload public/test-media/sample-image.webp to the gallery.",
33
- "Upload public/test-media/sample-video.mp4 to the video field.",
34
- "Read the previews for all four.",
35
- ],
36
- inputs: {
37
- title: "QA Product media-gallery",
38
- images: "sample-image.png, sample-image.jpg, sample-image.webp",
39
- video: "public/test-media/sample-video.mp4",
40
- },
41
- expectedBehaviour: "All three image formats and the video are accepted, and each renders its own preview. Bytes go straight from the browser to storage through a signed URL and never through an API route, so the request payload cap never applies however large the file.",
42
- expectedUiState: "Three image previews and one video poster frame, each showing its own content rather than a generic icon. No error toast on any of the four.",
43
- endResult: "Leave the editor without saving so no draft product is created.",
44
- },
45
- "checklist-selling-media-limits-media-last-allowed-image-uploads": {
46
- roles: ["seller"],
47
- startPage: "/store/products/new",
48
- steps: [
49
- "Sign in as tyson@beybladearena.in / TempPass123!.",
50
- "Open /store/products/new and type 'QA Product media-boundary' as the title.",
51
- "Click 'Show all fields (advanced)' before touching any media. 🛑 /store/products/new opens the QUICK form by default for a create of a standard listing, and it has ONE field — 'Product Image' — with no gallery and no video field at all. Every media step below needs the advanced form.",
52
- `Read the counter under the gallery and note the cap it advertises. It must read ${PRODUCT_MAX_IMAGES}. 🛑 Do NOT assume a number here — the cap is one constant (\`PRODUCT_MAX_IMAGES\`) and this case is written against whatever it currently is.`,
53
- "Upload public/test-media/sample-image.png to the gallery repeatedly, one at a time, counting the previews after each, until the control refuses one.",
54
- "Record the preview count reached at the moment of the first refusal.",
55
- ],
56
- inputs: { title: "QA Product media-boundary", cap: PRODUCT_MAX_IMAGES },
57
- expectedBehaviour: `Every upload up to and including the ${PRODUCT_MAX_IMAGES}th is accepted, because a cap is inclusive of its own number. An off-by-one that refuses the last one is the most likely error and the least likely to be noticed, since one short of the cap still looks like plenty.`,
58
- expectedUiState: `The preview count reached before the first refusal is exactly ${PRODUCT_MAX_IMAGES}. The counter's own advertised cap and the count actually reachable must be the SAME number — a form that says ${PRODUCT_MAX_IMAGES} and allows ${PRODUCT_MAX_IMAGES - 1} is the failure, whichever number it says.`,
59
- expectedData: { imageCount: PRODUCT_MAX_IMAGES },
60
- endResult: "Leave the editor without saving.",
61
- },
62
- "checklist-selling-media-limits-media-over-cap-image-refused-client-side": {
63
- roles: ["seller"],
64
- startPage: "/store/products/new",
65
- steps: [
66
- "Sign in as tyson@beybladearena.in / TempPass123!.",
67
- "Open /store/products/new.",
68
- "Click 'Show all fields (advanced)' before touching any media. 🛑 /store/products/new opens the QUICK form by default for a create of a standard listing, and it has ONE field — 'Product Image' — with no gallery and no video field at all. Every media step below needs the advanced form.",
69
- `Fill the gallery to its cap with public/test-media/sample-image.png (${PRODUCT_MAX_IMAGES} uploads).`,
70
- "Open the browser's Network panel.",
71
- "Attempt one more upload of the same file.",
72
- "Read the message shown and count the previews.",
73
- "Check the Network panel for any signed-URL or upload request made by that over-cap attempt.",
74
- ],
75
- inputs: { cap: PRODUCT_MAX_IMAGES, attemptCount: PRODUCT_MAX_IMAGES + 1 },
76
- expectedBehaviour: "The over-cap file is refused in the browser, before any signed URL is requested. Refusing it only after the bytes have reached storage leaves an orphaned object behind and spends the seller's upload time on a file that was never going to be kept.",
77
- expectedUiState: `A readable message NAMES the limit as ${PRODUCT_MAX_IMAGES}, the preview count stays at ${PRODUCT_MAX_IMAGES}, and the Network panel shows NO upload request for the over-cap attempt. A refusal that appears only after a round trip is the failure, and so is a refusal that does not say what the limit is.`,
78
- expectedData: { imageCount: PRODUCT_MAX_IMAGES, uploadRequestsForOverCap: 0 },
79
- endResult: "Leave the editor without saving.",
80
- },
81
- "checklist-selling-media-limits-media-second-video-refused-first-kept": {
82
- roles: ["seller"],
83
- startPage: "/store/products/new",
84
- steps: [
85
- "Sign in as tyson@beybladearena.in / TempPass123!.",
86
- "Open /store/products/new and type 'QA Product media-second-video' as the title.",
87
- "Click 'Show all fields (advanced)' before touching any media. 🛑 /store/products/new opens the QUICK form by default for a create of a standard listing, and it has ONE field — 'Product Image' — with no gallery and no video field at all. Every media step below needs the advanced form.",
88
- "Upload public/test-media/sample-video.mp4 to the video field and wait for its poster frame.",
89
- "Attempt to upload public/test-media/sample-video.mp4 a second time.",
90
- "Read the message shown.",
91
- "Read the video field and check the first video is still attached with its poster.",
92
- ],
93
- inputs: { title: "QA Product media-second-video", videoCap: 1 },
94
- expectedBehaviour: "A listing carries one video. A second attempt is refused and the first is KEPT — refusing while also clearing the field loses work the seller had already done and looks like the upload broke.",
95
- expectedUiState: "A readable message explains the one-video limit. The first video is still attached with its poster frame intact. An empty video field after the refusal is the failure.",
96
- expectedData: { videoCount: 1 },
97
- endResult: "Leave the editor without saving.",
98
- },
99
- "checklist-selling-media-limits-media-caps-flat-across-types": {
100
- roles: ["seller"],
101
- startPage: "/store/products/new",
102
- steps: [
103
- "Sign in as tyson@beybladearena.in / TempPass123!.",
104
- "Click 'Show all fields (advanced)' before touching any media. 🛑 /store/products/new opens the QUICK form by default for a create of a standard listing, and it has ONE field — 'Product Image' — with no gallery and no video field at all. Every media step below needs the advanced form.",
105
- "Read the stated image and video limits on the advanced form.",
106
- "Open /store/auctions/new and read its stated limits. These per-type creation routes render the full form directly, so no advanced switch is needed on any of them.",
107
- "Open /store/pre-orders/new and read its limits.",
108
- "Open /store/classified/new, /store/digital-codes/new and /store/live/new and read each.",
109
- "Compare all six.",
110
- ],
111
- expectedBehaviour: "The caps come from one shared limits module, so every listing type states the same numbers. A type stating a different cap has a local copy, and a local copy is a number that will drift the first time the shared one changes.",
112
- expectedUiState: "All six forms state the same image and video limits. Any form differing is the finding, named by type and by the number it states.",
113
- endResult: "Leave every editor without saving. The live-item form additionally requires a video, which is the next case rather than a contradiction of this one.",
114
- },
115
- "checklist-selling-media-limits-media-live-listing-still-requires-video": {
116
- roles: ["seller"],
117
- startPage: "/store/live/new",
118
- steps: [
119
- "Sign in as tyson@beybladearena.in / TempPass123!.",
120
- "Open /store/live/new and fill every required field except the video.",
121
- "Type 'QA Live Item media-requires-video' as the title.",
122
- "Submit the form and read where the error appears.",
123
- "Upload public/test-media/sample-video.mp4 to the video field.",
124
- "Submit again.",
125
- "Delete the created listing.",
126
- ],
127
- inputs: {
128
- title: "QA Live Item media-requires-video",
129
- video: "public/test-media/sample-video.mp4",
130
- },
131
- expectedBehaviour: "A live listing requires a video where every other type treats it as optional — a buyer purchasing an animal or a plant needs to see it move. Shared caps and a per-type requirement are different rules and both hold at once.",
132
- expectedUiState: "The first submit is refused with an inline error on or beside the video field, and the typed values are preserved. The second submit succeeds.",
133
- endResult: "The listing is deleted by the final step so it does not accumulate across runs.",
134
- },
135
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;