@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,108 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/final-sale-authoring 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 default that is ON is the hardest kind to test, because a field that never
10
- * saves reads back as its default and looks correct. Every case here therefore
11
- * turns the flag OFF and reloads — the only direction in which a broken save is
12
- * visible.
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
- export const authored = {
22
- "checklist-selling-final-sale-authoring-final-sale-defaults-on": {
23
- roles: ["seller"],
24
- startPage: "/store/products/new",
25
- steps: [
26
- "Sign in as tyson@beybladearena.in / TempPass123!.",
27
- "Open /store/products/new and go to the Returns step WITHOUT touching anything. The control is a toggle labelled 'Accept change-of-mind returns' — there is none named 'final sale' — and it stores the INVERSE: toggle OFF means finalSale, which is the default.",
28
- "Click 'Show all fields (advanced)' first — the quick form has no Returns step, so the toggle below is not on screen until you switch.",
29
- "Read its state. Expect it OFF, meaning final sale is on.",
30
- "Open /store/auctions/new and read the same toggle's state.",
31
- "Open /store/pre-orders/new and /store/classified/new and read it in each.",
32
- ],
33
- expectedBehaviour: "Final sale is on by default on every listing type, so a seller who never opens the setting is protected rather than silently exposed to returns they did not agree to.",
34
- expectedUiState: "The 'Accept change-of-mind returns' toggle reads OFF in all four creation forms before any interaction — OFF is what makes the listing final sale. A type whose default differs is the finding, named by type. Remember the polarity when recording: a toggle that reads ON here means returns ARE accepted, which is the opposite of the expected default.",
35
- expectedData: { defaultFinalSale: true },
36
- endResult: "Leave every editor without saving. This case cannot distinguish a real default from a field that fails to load — that is what the next case is for.",
37
- },
38
- "checklist-selling-final-sale-authoring-final-sale-opt-out-survives-reload": {
39
- roles: ["seller"],
40
- startPage: "/store/products",
41
- steps: [
42
- "Sign in as tyson@beybladearena.in / TempPass123!.",
43
- "Open /store/products and open the editor for 'Beyblade Burst B-01 Valkyrie'.",
44
- "Turn final sale OFF. 🛑 THE CONTROL IS INVERTED AND RENAMED: there is no switch labelled 'Final sale'. It is a toggle reading 'Accept change-of-mind returns', in the Returns step, and turning final sale OFF means turning that toggle ON. Its OFF state is the default and stores finalSale as final-sale.",
45
- "Save and read the confirmation.",
46
- "RELOAD the editor and read the control's state.",
47
- "Open /products/product-beyblade-burst-valkyrie and read whether a 'Final Sale' badge is shown — that is the badge's exact label.",
48
- "Turn the 'Accept change-of-mind returns' toggle back OFF — restoring final sale, which is the seeded default — then save and reload to confirm.",
49
- ],
50
- inputs: { productId: "product-beyblade-burst-valkyrie", finalSale: false },
51
- expectedBehaviour: "Turning the flag off persists. Off is the only testable direction: a field that never saves reads back as its on default, so a case that only ever turns it ON passes against a completely broken save.",
52
- expectedUiState: "After the reload the control is still off and the public page shows no final-sale badge. A control that has reverted to on is the failure, and the save will have reported success.",
53
- expectedData: { finalSale: false },
54
- endResult: "The flag is back on by the final step, so the seeded product is left as it was.",
55
- },
56
- "checklist-selling-final-sale-authoring-return-policy-authorable-by-seller": {
57
- roles: ["seller", "guest"],
58
- startPage: "/store/products",
59
- steps: [
60
- "Sign in as tyson@beybladearena.in / TempPass123!.",
61
- "Open the editor for 'Beyblade Burst B-01 Valkyrie' and find the return-policy field.",
62
- "Turn ON the toggle labelled 'Accept change-of-mind returns' in the Returns step — that is what turns final sale off. There is no control named 'final sale'; the switch is deliberately phrased positively so its ON state never means fewer buyer rights.",
63
- "Type 'QA Return Policy authorable — 7 days, unopened only.' into the policy field and save.",
64
- "RELOAD the editor and read the field.",
65
- "Open /products/product-beyblade-burst-valkyrie in a private window and find the return policy.",
66
- "Restore the original policy and turn the 'Accept change-of-mind returns' toggle back OFF, which restores final sale.",
67
- ],
68
- inputs: {
69
- productId: "product-beyblade-burst-valkyrie",
70
- returnPolicy: "QA Return Policy authorable — 7 days, unopened only.",
71
- },
72
- expectedBehaviour: "A seller can state their own return terms and those terms reach the buyer. A policy that saves in the dashboard but never renders publicly is worse than no field — the seller believes they have disclosed something the buyer never sees.",
73
- expectedUiState: "After the reload the editor holds the typed policy, and the public page shows it to a signed-out visitor. The policy is visible before purchase, not only on the order afterwards.",
74
- endResult: "The product is restored to its seeded policy and final-sale state by the final step.",
75
- },
76
- "checklist-selling-final-sale-authoring-final-sale-admin-override": {
77
- roles: ["admin", "seller"],
78
- startPage: "/admin/products",
79
- steps: [
80
- "Sign in as tyson@beybladearena.in / TempPass123! and set final sale ON for 'Beyblade Burst B-01 Valkyrie', then save.",
81
- "Sign out and sign in as admin@letitrip.in / TempPass123!.",
82
- "Open /admin/products, open the same product, and turn final sale OFF.",
83
- "Save and reload the admin editor to confirm.",
84
- "Sign out and sign in as tyson@beybladearena.in / TempPass123!.",
85
- "Open that product's SELLER editor at /store/products/{id}/edit and read the 'Accept change-of-mind returns' toggle — the admin form names the field directly while the seller form inverts and renames it, which is the disagreement this case is for.",
86
- "Open that product's public page at /products/{its slug} and read whether the 'Final Sale' badge is shown.",
87
- ],
88
- inputs: { productId: "product-beyblade-burst-valkyrie" },
89
- expectedBehaviour: "An admin override reaches the same stored field the seller edits, so both dashboards and the public page agree afterwards. An override held somewhere else would leave the seller's editor showing one answer and the buyer seeing another — and the buyer's is the one that binds.",
90
- expectedUiState: "After the admin's change the seller's editor shows the flag off and the public page shows no final-sale badge. A seller editor still reading on is the failure.",
91
- endResult: "Restore the seeded final-sale state as the last action, from whichever dashboard set it last.",
92
- },
93
- "checklist-selling-final-sale-authoring-final-sale-badges-render": {
94
- roles: ["guest"],
95
- startPage: "/products",
96
- steps: [
97
- "Open /products in a private window in light mode.",
98
- "Find a card for a final-sale listing and read its badge.",
99
- "Open that listing's detail page and find the badge there.",
100
- "Read the badge against its background on both surfaces.",
101
- "Switch to dark mode and read both again.",
102
- "Open the checkout for that item and check the final-sale term is stated before payment.",
103
- ],
104
- expectedBehaviour: "The badge appears on the card, on the detail page, and in the checkout flow. It carries a term the buyer is agreeing to, so stating it only after purchase is too late — and a badge that is unreadable in one theme states nothing at all.",
105
- expectedUiState: "The badge is present and readable on all three surfaces in both themes. It overlays a card image, so it takes the solid pairing rather than a pale tint — an invisible label on a visible badge shape is the specific failure.",
106
- endResult: "Read-only apart from reaching checkout; do not place the order. Return the site to light mode afterwards.",
107
- },
108
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,274 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/listing-a-product page.
3
- * WHAT: 15 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/. Their
10
- * bytes are asserted against the same detector the finalize endpoint uses, so the
11
- * rejection fixtures reject because of what they contain rather than by luck.
12
- *
13
- * @tag domain:tester
14
- * @tag layer:seed
15
- * @tag pattern:none
16
- * @tag access:server-only
17
- * @tag consumers:seed-data/authored/index.ts
18
- * @tag sideEffects:none
19
- */
20
- export const authored = {
21
- "checklist-selling-listing-a-product-list-standard": {
22
- roles: ["seller"],
23
- startPage: "/store/products/new",
24
- steps: [
25
- "Sign in as tyson@beybladearena.in / TempPass123!.",
26
- "Open /store/products/new and publish with every field empty, reading where the errors land.",
27
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create: its image control is a single-value field labelled 'Product Image' — no gallery, no multi-select, no crop editor, no video field and no brand. Anything beyond one plain image needs the advanced form.",
28
- "Type 'QA Product list-standard' as the title and 750 as the price.",
29
- "Select a category and a brand, set the stock to 5, and write a description.",
30
- "Upload public/test-media/sample-image.png as the main image.",
31
- "Publish.",
32
- "Open the product's public page at /products/{its slug} and read its title, price, stock badge and images.",
33
- ],
34
- inputs: { title: "QA Product list-standard", price: 750, stock: 5, image: "public/test-media/sample-image.png" },
35
- expectedBehaviour: "A standard listing is created and becomes publicly visible. The slug is derived from the title at creation and is then immutable — the update schema does not accept it, which is the deliberate convention across categories, brands and bundles and is what keeps existing links working.",
36
- expectedUiState: "The empty publish marks individual fields rather than showing one banner. After publishing, the public page shows the title, ₹750.00, an in-stock badge naming 5, the description and the uploaded image. Its URL carries a slug derived from the title.",
37
- endResult: "The listing exists and is the fixture the edit case reads. Delete it after that case.",
38
- },
39
- "checklist-selling-listing-a-product-list-auction": {
40
- roles: ["seller"],
41
- startPage: "/store/auctions/new",
42
- steps: [
43
- "Sign in as tyson@beybladearena.in / TempPass123!.",
44
- "Open /store/auctions/new and type 'QA Auction list-auction' as the title.",
45
- "Set the starting bid to 1000, the minimum increment to 100, and an end date two days out.",
46
- "Upload public/test-media/sample-image.png and fill every other required field.",
47
- "Publish.",
48
- "Open the auction's public page at /auctions/{its slug} and read the starting bid, increment, countdown and purchase controls.",
49
- "Delete the auction.",
50
- ],
51
- inputs: {
52
- title: "QA Auction list-auction",
53
- startingBid: 1000,
54
- minIncrement: 100,
55
- image: "public/test-media/sample-image.png",
56
- },
57
- expectedBehaviour: "An auction is created with a bidding path and no cart path — the capability is per listing type, not a styling choice. A per-listing increment can only RAISE the platform's banded floor, never lower it, so the saved 100 is a floor that the band may still override upward.",
58
- expectedUiState: "The public page shows a ticking countdown, the starting bid of ₹1,000.00, and a 'Place a bid' control. There is no 'Add to Cart' anywhere on the page.",
59
- endResult: "The auction is deleted by the final step.",
60
- },
61
- "checklist-selling-listing-a-product-list-preorder": {
62
- roles: ["seller"],
63
- startPage: "/store/pre-orders/new",
64
- steps: [
65
- "Sign in as tyson@beybladearena.in / TempPass123!.",
66
- "Open /store/pre-orders/new and type 'QA Pre-order list-preorder' as the title.",
67
- "Set the price to 1200, the deposit percentage to 25, an estimated delivery date a month out, and the production status.",
68
- "Upload public/test-media/sample-image.png and fill every other required field.",
69
- "Publish.",
70
- "Open the pre-order's public page at /pre-orders/{its slug} and read the price, deposit note, delivery date and status badge.",
71
- "Delete the pre-order.",
72
- ],
73
- inputs: {
74
- title: "QA Pre-order list-preorder",
75
- price: 1200,
76
- depositPercent: 25,
77
- image: "public/test-media/sample-image.png",
78
- },
79
- expectedBehaviour: "A pre-order takes a deposit rather than the full price and shows an estimated delivery date — the two things that distinguish it from a standard listing that happens to be out of stock. The deposit shown to the buyer is computed from the saved percentage rather than typed separately.",
80
- expectedUiState: "The public page shows ₹1,200.00, a deposit note naming ₹300.00 (25% of 1,200), an estimated delivery label with a real date rather than 'undefined', and the production status badge.",
81
- expectedData: { depositAmount: 300 },
82
- endResult: "The pre-order is deleted by the final step.",
83
- },
84
- "checklist-selling-listing-a-product-edit-listing": {
85
- roles: ["seller"],
86
- startPage: "/store/products",
87
- steps: [
88
- "Sign in as tyson@beybladearena.in / TempPass123!.",
89
- "Open /store/products and open the editor for 'QA Product list-standard'.",
90
- "Write down every field's current value.",
91
- "Change the price to 850 and nothing else.",
92
- "Save, then RELOAD the editor and compare every field against what was written down.",
93
- "Open the public page at /products/{its slug} and read the price and everything else.",
94
- "Delete the listing.",
95
- ],
96
- inputs: { priceBefore: 750, priceAfter: 850 },
97
- expectedBehaviour: "An edit writes back only what changed. The URL slug stays as it was — that immutability is deliberate, and recomputing it from the new title would break every existing link to the listing.",
98
- expectedUiState: "After the reload only the price differs; images, category, brand, stock and description are unchanged, and the slug in the URL is the original. The public page shows ₹850.00 with everything else intact.",
99
- expectedData: { unintendedFieldChanges: 0 },
100
- endResult: "The listing is deleted by the final step, so nothing accumulates across runs.",
101
- },
102
- "checklist-selling-listing-a-product-new-listing-belongs-to-store": {
103
- roles: ["seller"],
104
- startPage: "/store/products/new",
105
- steps: [
106
- "Sign in as tyson@beybladearena.in / TempPass123!.",
107
- "Open /store/products/new and publish a listing titled 'QA Product belongs-to-store' at 300, with Category 'Beyblade Burst' and a Product Image — the quick form requires title, category, price AND image, so a publish naming only two of them cannot succeed.",
108
- "Open its public page at /products/{its slug} and read the seller line at the bottom of the info panel.",
109
- "Click the 'Visit Store' link and read where it lands.",
110
- "Open /stores/store-beyblade-arena and find the listing in the Products tab.",
111
- "Sign out and sign in as admin@letitrip.in / TempPass123!, a different seller who owns store-letitrip-official.",
112
- "Open /store/products — that seller's own products list — and check the listing is NOT there.",
113
- "Sign back in as tyson and delete the listing.",
114
- ],
115
- inputs: { title: "QA Product belongs-to-store", price: 300 },
116
- expectedBehaviour: "The listing is filed against the signed-in seller's store, taken from the session rather than from anything the form sends. The store id is the key orders split on, coupons scope to, and payouts hang off — so a listing attributed to the wrong store misroutes all four.",
117
- expectedUiState: "The public page reads 'Sold by Beyblade Arena' and its Visit Store link opens that store. The listing appears in that store's Products tab and NOT in the other seller's list.",
118
- endResult: "The listing is deleted by the final step.",
119
- },
120
- "checklist-selling-listing-a-product-store-rename-updates-cards": {
121
- roles: ["seller", "guest"],
122
- startPage: "/store",
123
- steps: [
124
- "Sign in as tyson@beybladearena.in / TempPass123!.",
125
- "Open /store/storefront and change the store name to 'QA Store rename-updates-cards'.",
126
- "Save and reload to confirm.",
127
- "Open /products in a private window and find a card from that store.",
128
- "Read the seller name on the card and on the product's detail page.",
129
- "Open /stores and read the store's name on its directory card.",
130
- "Restore the original store name.",
131
- ],
132
- inputs: { newName: "QA Store rename-updates-cards" },
133
- expectedBehaviour: "The new name reaches every surface that shows it. Where a name is denormalised onto other documents for display, a rename must update those copies too — otherwise cards keep showing the old name until each is written again, and the two disagree indefinitely.",
134
- expectedUiState: "Product cards, the product detail page's seller line, and the store directory card all show the new name. Any surface still showing the old one is the finding, named specifically.",
135
- endResult: "The original name is restored by the final step. Other cases read this store by name.",
136
- },
137
- "checklist-selling-listing-a-product-media-upload": {
138
- roles: ["seller"],
139
- startPage: "/store/products/new",
140
- steps: [
141
- "Sign in as tyson@beybladearena.in / TempPass123!.",
142
- "Open /store/products/new and open the media upload field.",
143
- "Upload public/test-media/sample-image.png and wait for it to finish.",
144
- "Read the preview and the stored URL if it is shown.",
145
- "Attempt to upload public/test-media/not-really-an-image.png and read the message.",
146
- "Attempt to upload public/test-media/empty.png and read the message.",
147
- ],
148
- inputs: {
149
- valid: "public/test-media/sample-image.png",
150
- mismatched: "public/test-media/not-really-an-image.png",
151
- empty: "public/test-media/empty.png",
152
- },
153
- expectedBehaviour: "Bytes go from the browser straight to storage through a signed URL and are then verified by their actual content, not their declared type. The mismatched fixture declares itself a PNG and is text; the empty one is zero length. Both are refused with a readable message rather than a stack trace.",
154
- expectedUiState: "The valid file previews and its stored path is a /media/… proxy URL rather than a raw bucket URL. The mismatched file is refused with a message about the file's type. The empty one is refused with a readable message, not an unhandled error.",
155
- endResult: "Leave the editor without saving.",
156
- },
157
- "checklist-selling-listing-a-product-media-upload-preview-no-white-box": {
158
- roles: ["seller"],
159
- startPage: "/store/products/new",
160
- steps: [
161
- "Sign in as tyson@beybladearena.in / TempPass123!.",
162
- "Open /store/products/new and upload public/test-media/sample-image.png.",
163
- "Look at the preview tile the moment it appears and again once it has settled.",
164
- "Upload two more images and look at all three tiles.",
165
- "Resize the window to 390 pixels and look at them again.",
166
- ],
167
- inputs: { image: "public/test-media/sample-image.png", mobileWidth: 390 },
168
- expectedBehaviour: "A preview tile renders its image at its intended size. A fill-style image resolves its percentages against its parent, so a shrink-to-fit wrapper between the control and the image collapses both to nothing — the tile becomes an empty bordered box while the control still looks and behaves correctly.",
169
- expectedUiState: "Every preview shows its picture at the same size as its neighbours, at both widths. An empty white or bordered box where a photo should be is the failure, and it hits every clickable image tile in the app at once.",
170
- endResult: "Leave the editor without saving.",
171
- },
172
- "checklist-selling-listing-a-product-media-upload-video-duration": {
173
- roles: ["seller"],
174
- startPage: "/store/products/new",
175
- steps: [
176
- "Sign in as tyson@beybladearena.in / TempPass123!.",
177
- "Open /store/products/new and read any stated video duration or size limit.",
178
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create: its image control is a single-value field labelled 'Product Image' — no gallery, no multi-select, no crop editor, no video field and no brand. Anything beyond one plain image needs the advanced form.",
179
- "Upload public/test-media/sample-video.mp4 to the video field.",
180
- "Wait for it to finish and read the preview and any duration shown.",
181
- "Read whether a poster frame was captured.",
182
- "Attempt a second video upload and read the message.",
183
- ],
184
- inputs: { video: "public/test-media/sample-video.mp4" },
185
- expectedBehaviour: "A video within the limits is accepted, its duration read, and a poster frame captured. The limits are stated before the upload rather than after it fails — a seller who waits out a long upload to be told the file was always too long has had their time taken.",
186
- expectedUiState: "Any duration or size limit is stated up front. The fixture uploads, shows a poster frame rather than an empty box, and reports its duration. A second video is refused while the first is kept.",
187
- endResult: "Leave the editor without saving.",
188
- },
189
- "checklist-selling-listing-a-product-media-upload-multiple-images": {
190
- roles: ["seller"],
191
- startPage: "/store/products/new",
192
- steps: [
193
- "Sign in as tyson@beybladearena.in / TempPass123!.",
194
- "Open /store/products/new and select public/test-media/sample-image.png, sample-image.jpg and sample-image.webp together in one file dialog.",
195
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create: its image control is a single-value field labelled 'Product Image' — no gallery, no multi-select, no crop editor, no video field and no brand. Anything beyond one plain image needs the advanced form.",
196
- "Watch the upload progress and read whether each file reports its own.",
197
- "Read the previews once they finish and count them.",
198
- "Check each preview shows its own file rather than three copies of one.",
199
- ],
200
- inputs: { images: "sample-image.png, sample-image.jpg, sample-image.webp" },
201
- expectedBehaviour: "A multi-select uploads each file with its own progress, sequentially, and produces one preview per file. Three previews of the same picture means the loop is reusing one file reference.",
202
- expectedUiState: "Three previews appear, each showing its own image. Progress is reported per file rather than as one indeterminate spinner for the batch.",
203
- expectedData: { previewCount: 3 },
204
- endResult: "Leave the editor without saving.",
205
- },
206
- "checklist-selling-listing-a-product-media-upload-remove-image": {
207
- roles: ["seller"],
208
- startPage: "/store/products/new",
209
- steps: [
210
- "Sign in as tyson@beybladearena.in / TempPass123!.",
211
- "Open /store/products/new and upload sample-image.png, sample-image.jpg and sample-image.webp.",
212
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create: its image control is a single-value field labelled 'Product Image' — no gallery, no multi-select, no crop editor, no video field and no brand. Anything beyond one plain image needs the advanced form.",
213
- "Note which image is in which position.",
214
- "Remove the MIDDLE one and read the remaining previews.",
215
- "Check the remaining two are the ones expected and are in their original relative order.",
216
- "Remove another and check the same.",
217
- ],
218
- expectedBehaviour: "Removing an image removes that image. A remove keyed on array position rather than on the item itself deletes the wrong one whenever the list has shifted — the same index-versus-identity mistake that hands one buyer another's lottery slot.",
219
- expectedUiState: "After removing the middle image the remaining two are the first and third, in that order. Removing by index would leave the wrong pair, and both survivors would still look like valid previews.",
220
- expectedData: { remainingCount: 2 },
221
- endResult: "Leave the editor without saving.",
222
- },
223
- "checklist-selling-listing-a-product-media-upload-main-image-crop": {
224
- roles: ["seller"],
225
- startPage: "/store/products/new",
226
- steps: [
227
- "Sign in as tyson@beybladearena.in / TempPass123!.",
228
- "Open /store/products/new and upload public/test-media/sample-image.png as the main image.",
229
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create: its image control is a single-value field labelled 'Product Image' — no gallery, no multi-select, no crop editor, no video field and no brand. Anything beyond one plain image needs the advanced form.",
230
- "Open the crop editor and read the aspect-ratio presets offered.",
231
- "Choose a preset, rotate the image, zoom in, and apply.",
232
- "Read the resulting preview.",
233
- "Reopen the crop editor and check it opens on the cropped result rather than the original.",
234
- ],
235
- inputs: { image: "public/test-media/sample-image.png" },
236
- expectedBehaviour: "Cropping produces a new stored image and the preview reflects it. Cropping runs a native image library, so it belongs in a background function rather than a request handler — a large source image processed inline is a real timeout risk in production even when it is fast locally.",
237
- expectedUiState: "Aspect presets are offered, rotate and zoom respond, and applying updates the preview visibly. Reopening the editor shows the cropped image. A crop that appears to apply and reverts on reopen means the result was never stored.",
238
- endResult: "Leave the editor without saving. If the crop hangs on a large image, that is the timeout risk rather than a UI fault — record how long it took.",
239
- },
240
- "checklist-selling-listing-a-product-media-upload-video-both-sources-render": {
241
- roles: ["seller", "guest"],
242
- startPage: "/store/products",
243
- steps: [
244
- "Sign in as tyson@beybladearena.in / TempPass123!.",
245
- "Open a product editor, select the video field's Upload tab, and upload public/test-media/sample-video.mp4.",
246
- "Read the editor's own preview panel.",
247
- "Save, open the product's public page, and play the video from the gallery.",
248
- "Return to the editor, switch the video field to its YouTube tab, and paste a YouTube watch URL.",
249
- "Read the editor's preview panel again.",
250
- "Save, open the public page, and play the video.",
251
- "Remove the video and save so the product is left as it was.",
252
- ],
253
- expectedBehaviour: "Both sources render, in the editor preview AND on the public page. A YouTube URL must become a privacy-preserving embed rather than being handed to a native video element, which cannot play a watch-page URL and says so in the player's own words. The upload field has always offered the YouTube tab; for a long time nothing on the render side knew what to do with what it stored.",
254
- expectedUiState: "The uploaded file plays in both the preview and the public gallery. The YouTube source shows an embedded player in both. Neither shows 'No video with supported format and MIME type found'.",
255
- endResult: "The video is removed by the final step, so the product's gallery is left as seeded.",
256
- },
257
- "checklist-selling-listing-a-product-seller-quick-add-drawer-flips": {
258
- roles: ["seller"],
259
- startPage: "/store/products",
260
- steps: [
261
- "Sign in as tyson@beybladearena.in / TempPass123!.",
262
- "Open /store/products and open the quick-add drawer.",
263
- "Note which edge it slides in from and where its close control sits.",
264
- "Close it, open /user/settings, and set 'Left-hand mode' to on.",
265
- "Return to /store/products and open the quick-add drawer again.",
266
- "Note the edge and the close control's corner.",
267
- "Set 'Left-hand mode' back to off.",
268
- ],
269
- inputs: { leftHandMode: true },
270
- expectedBehaviour: "The quick-add drawer is chrome placed for reach, so it mirrors with left-hand mode — edge, animation direction and close control together. A drawer that lands on the mirrored edge while still animating in from the original one reads as broken.",
271
- expectedUiState: "With the mode on, the drawer enters from and rests on the mirrored edge and its close control is in the mirrored corner. With it off, both return to the default.",
272
- endResult: "The mode is off again by the final step, and nothing is added. Later cases assume the default layout.",
273
- },
274
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,145 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for selling/listing-edit-roundtrip.
3
- * WHAT: 6 cases, keyed by full checklist id.
4
- *
5
- * 🛑 THE UPDATE PATH HAD NO CASES AT ALL. `/store/products/new` carries 57; the
6
- * editors carried zero — and the editors are where the 2026-09-14 data-loss bug
7
- * lived (Root Cause #98). Nine of them spread an `ActionResult` envelope as if
8
- * it were the product, so `notFound()` could never fire, every field resolved
9
- * `undefined`, and `status === "published" ? … : "draft"` evaluated
10
- * `undefined === "published"` — meaning **pressing Save wrote draft over a live
11
- * listing** and removed it from every public surface.
12
- *
13
- * Every case below is written so it FAILS against that behaviour. A case reading
14
- * "editing a listing works" passes on a blank form that destroys the record.
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-edit-roundtrip-edit-opens-populated": {
25
- roles: ["seller"],
26
- startPage: "/store/products",
27
- steps: [
28
- "Sign in as tyson@beybladearena.in / TempPass123!.",
29
- "Open /store/products and find a listing whose status reads Published.",
30
- "Write down its title, its price and its stock quantity from the row.",
31
- "Open that listing's Edit action.",
32
- "Wait for the form to finish loading.",
33
- "Read the Title, Price and Stock fields.",
34
- ],
35
- expectedBehaviour: "The editor is seeded from the listing's stored document. A blank form means the page received something other than a product — an ActionResult envelope spreads to all-undefined and renders exactly this way, with no error.",
36
- expectedUiState: "Title, Price and Stock each hold the values written down from the row. No field that had a value on the row is empty here.",
37
- expectedData: { emptyRequiredFieldCount: 0 },
38
- endResult: "Nothing is saved; the form was only opened. Leaving without saving must not change the listing.",
39
- },
40
- "checklist-selling-listing-edit-roundtrip-edit-category-preselected": {
41
- roles: ["seller"],
42
- startPage: "/store/products",
43
- steps: [
44
- "Sign in as tyson@beybladearena.in / TempPass123!.",
45
- "Open /store/products and pick any published listing.",
46
- "Open its public page in a second tab and read which category it is filed under.",
47
- "Return to the first tab and open the listing's Edit action.",
48
- "Find the Category selector and read what it currently shows.",
49
- ],
50
- expectedBehaviour: "The selector is seeded from the listing's stored category. The stored field is `categorySlugs[]` and its FIRST entry is the leaf; a form reading a singular `categorySlug` gets undefined and opens blank — and then saving that blank submits it.",
51
- expectedUiState: "The Category selector shows the same category name the public page showed — for example Original Plastic Gen. It is not empty and is not sitting on its unchosen placeholder.",
52
- endResult: "Nothing is saved. If this case fails, do NOT press Save — saving a blank category is the damage it is warning about.",
53
- },
54
- "checklist-selling-listing-edit-roundtrip-edit-save-keeps-published": {
55
- roles: ["seller"],
56
- startPage: "/store/products",
57
- steps: [
58
- "Sign in as tyson@beybladearena.in / TempPass123!.",
59
- "Open /store/products and find a listing whose status reads Published. Write down its title.",
60
- "Open its Edit action.",
61
- "Change only the Description — append the word roundtrip to it.",
62
- "Press Save.",
63
- "Return to /store/products and reload the page.",
64
- "Find the same listing and read its status.",
65
- "Open its public detail page.",
66
- ],
67
- inputs: { descriptionSuffix: "roundtrip" },
68
- expectedBehaviour: "Editing one field changes that field and nothing else. The status must survive the round trip: an editor that read the status as undefined will coerce it to draft on save, which silently unpublishes a live listing.",
69
- expectedUiState: "After the reload the row still reads Published, and the public detail page still loads rather than 404ing.",
70
- expectedData: { statusAfterSave: "published" },
71
- endResult: "The description keeps the appended word after a reload, and the listing is still published and still publicly reachable.",
72
- },
73
- "checklist-selling-listing-edit-roundtrip-edit-missing-id-404s": {
74
- roles: ["seller"],
75
- startPage: "/store/products",
76
- steps: [
77
- "Sign in as tyson@beybladearena.in / TempPass123!.",
78
- "Navigate directly to /store/products/zzzznope-not-a-listing-42/edit — a deliberately invented id, not a fixture.",
79
- "Read what the page shows.",
80
- ],
81
- inputs: { listingId: "zzzznope-not-a-listing-42" },
82
- expectedBehaviour: "An id that resolves to no listing must 404. A blank editor here is the tell that the page never checked: an always-truthy envelope makes the not-found branch unreachable, and the empty form it renders is indistinguishable from a real listing with no data.",
83
- expectedUiState: "A not-found page. NOT an empty product form, and not a form with a Save button on it.",
84
- expectedData: { showsEditForm: false },
85
- endResult: "Nothing is created or saved.",
86
- },
87
- "checklist-selling-listing-edit-roundtrip-edit-other-sellers-listing-404s": {
88
- roles: ["seller"],
89
- startPage: "/store/products",
90
- steps: [
91
- /*
92
- * 🛑 NOT THE ADMIN. `getSellerProductAction` reads
93
- * `if (!isAdminUser(profile))` before comparing stores, so an admin is
94
- * EXEMPT by design and will open Beyblade Arena's listing successfully.
95
- * Signing in as admin@letitrip.in and expecting a 404 tested the
96
- * exemption while claiming to test the gate — it would have reported a
97
- * working ownership check as broken.
98
- *
99
- * 🛑 AND THE CONFOUND IS REAL: store-blader-bazaar is PENDING, because
100
- * there is no second ACTIVE non-admin seller in the seed (Beyblade Arena
101
- * is the only one; Vintage Vault Co. is suspended). So a refusal here may
102
- * come from the store's status rather than from ownership, and the step
103
- * below says how to tell them apart rather than pretending the fixture is
104
- * cleaner than it is.
105
- */
106
- "Sign in as meera.blader@gmail.com / TempPass123!, who owns store-blader-bazaar — a different store from Beyblade Arena.",
107
- "Open /store/products first — if meera's own dashboard is itself blocked, her store's PENDING status is the cause and this case is a null with that reason, not a verdict about ownership.",
108
- "In a second tab open /products and copy the slug of any listing belonging to Beyblade Arena, e.g. product-beyblade-burst-valkyrie.",
109
- "Back in the first tab, navigate to /store/products/<that slug>/edit.",
110
- "Read what the page shows, and whether the refusal is about OWNERSHIP or about the store being pending.",
111
- ],
112
- expectedBehaviour: "Ownership is checked against the caller's STORE, and a product's `storeId` is the store SLUG rather than the owner's Auth uid. A check comparing `storeId` to a uid compares two different namespaces and can never pass — which returns null for every legitimate seller too, so a page that 404s here must be verified to still open the seller's OWN listing.",
113
- expectedUiState: "A not-found page, with no editable fields.",
114
- expectedData: { showsEditForm: false },
115
- endResult: "Nothing is changed on the other seller's listing. Then re-open one of your own listings to confirm the guard has not locked everyone out.",
116
- },
117
- "checklist-selling-listing-edit-roundtrip-edit-ancestor-pages-after-recategorise": {
118
- roles: ["seller"],
119
- startPage: "/store/products",
120
- steps: [
121
- "Sign in as tyson@beybladearena.in / TempPass123!.",
122
- /*
123
- * 🛑 The `category-` PREFIX is load-bearing in all three URLs below.
124
- *
125
- * These steps named /categories/original-plastic-gen, original-tops and
126
- * spinning-tops, and every one of them 404s — a category's document id IS
127
- * its prefixed slug (§ Slug Prefix System), so the real routes are
128
- * /categories/category-original-plastic-gen and so on. Verified 200 on all
129
- * three prefixed forms. `audit-tester-checklist-hrefs` did not catch it
130
- * because it validates `href` and `startPage`, and these are URLs written
131
- * inside step PROSE, which nothing checks.
132
- */
133
- "Open /categories/category-original-plastic-gen — its parent is category-original-tops and its root is category-spinning-tops.",
134
- "Open /store/products, pick a published listing, and open its Edit action.",
135
- "Change its Category to Plastic Generation (that is the display name; the id is category-original-plastic-gen) and press Save.",
136
- "Open /categories/category-original-plastic-gen and look for the listing.",
137
- "Open /categories/category-original-tops and look for the same listing.",
138
- "Open /categories/category-spinning-tops and look for it again.",
139
- ],
140
- expectedBehaviour: "A product stores the FULL ancestor chain, so it is reachable from its own category and from every ancestor with one query. If only the leaf is stored, the ancestor pages match nothing — and the leaf page can fail too, because the stored field and the field the form sends are not the same one.",
141
- expectedUiState: "The listing's card appears on all three pages: the deep category, its parent, and its root.",
142
- expectedData: { visibleOnLeaf: true, visibleOnParent: true, visibleOnRoot: true },
143
- endResult: "After a reload the listing is still filed under the deep category and still appears on all three pages.",
144
- },
145
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;