@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,138 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/seller-analytics-payouts 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
- * 🛑 A PAYOUT IS MONEY LEAVING THE PLATFORM, so several cases here read the FULL
10
- * deduction breakdown rather than only the net figure. A net amount alone cannot
11
- * distinguish a correct deduction from a wrong one, and the seller-side deduction
12
- * is deliberately uncapped where the buyer-facing platform fee is capped — so the
13
- * two are not expected to agree and a case that assumes they do is wrong.
14
- *
15
- * @tag domain:tester
16
- * @tag layer:seed
17
- * @tag pattern:none
18
- * @tag access:server-only
19
- * @tag consumers:seed-data/authored/index.ts
20
- * @tag sideEffects:none
21
- */
22
- export const authored = {
23
- "checklist-selling-seller-analytics-payouts-view-analytics": {
24
- roles: ["seller"],
25
- startPage: "/store/analytics",
26
- steps: [
27
- "Sign in as tyson@beybladearena.in / TempPass123!.",
28
- "Open the store's analytics page and read every figure and chart on it.",
29
- "Write down any figure reading zero, a dash, or 'undefined'.",
30
- "Change the date range if one is offered and read the figures again.",
31
- "Compare the order count shown against the number of orders in /store/orders.",
32
- "Reload the page and check the figures are the same.",
33
- ],
34
- expectedBehaviour: "Analytics read from pre-computed rollups rather than scanning every order per request — that is the pattern this codebase uses to keep a dashboard load inside its read budget. A figure that fails to compute must read as unknown rather than as zero: zero is a claim, and it is the wrong one.",
35
- expectedUiState: "Figures and charts render with real values. The order count is consistent with the orders list. A dash for a genuinely unavailable metric is acceptable; a confident zero beside a list that clearly has rows is not.",
36
- endResult: "Read-only; nothing persists. Note any metric reading zero against visible data — that is the failure this case exists for.",
37
- },
38
- "checklist-selling-seller-analytics-payouts-view-payouts": {
39
- roles: ["seller"],
40
- startPage: "/store/payouts",
41
- steps: [
42
- "Sign in as tyson@beybladearena.in / TempPass123!.",
43
- "Open /store/payouts and read every row — period, gross, deductions, net and status.",
44
- "Read every status filter offered and select each in turn.",
45
- "Write down any filter returning zero rows, then check the unfiltered list for rows of that status.",
46
- "Read the sort dropdown's default and confirm it is one of the offered options.",
47
- "Open one payout row.",
48
- ],
49
- expectedBehaviour: "The list shows each payout with its own deductions rather than a bare net figure. Status filters use the values payouts actually hold — and a default sort that is not among the offered options opens the dropdown with nothing selected, which is a real defect on this listing family.",
50
- expectedUiState: "Rows show period, gross, deductions and net. Every status filter either returns its own rows or is empty with none in the unfiltered list either. The sort default is one of the options. Rows open a detail view.",
51
- endResult: "Read-only; nothing persists beyond the URL.",
52
- },
53
- "checklist-selling-seller-analytics-payouts-payouts-checkbox-select": {
54
- roles: ["seller"],
55
- startPage: "/store/payouts",
56
- steps: [
57
- "Sign in as tyson@beybladearena.in / TempPass123!.",
58
- "Open /store/payouts and tick the checkbox on one row.",
59
- "Read the bulk action bar that appears and the count it states.",
60
- "Click the row itself, away from the checkbox, and read what happens.",
61
- "Tick a second row and read the count again.",
62
- "Use select-all and read the count against the number of rows on the page.",
63
- "Clear the selection and check the bar disappears.",
64
- ],
65
- expectedBehaviour: "Selecting rows and opening a row are separate gestures — merely WIRING selection must not disable navigation. A card or row that stops opening the moment a selection handler exists, regardless of whether anything is selected, is the specific defect this checks.",
66
- expectedUiState: "Ticking a checkbox shows a bulk bar with an accurate count. Clicking the row body with nothing selected still opens the payout. Select-all matches the visible row count. Clearing hides the bar without leaving an empty strip behind.",
67
- endResult: "Clear the selection; nothing is mutated. A row that will not open while a checkbox exists is the failure.",
68
- },
69
- "checklist-selling-seller-analytics-payouts-payouts-detail-panel": {
70
- roles: ["seller"],
71
- startPage: "/store/payouts",
72
- steps: [
73
- "Sign in as tyson@beybladearena.in / TempPass123!.",
74
- "Open /store/payouts and open a payout's detail panel from the list.",
75
- "Write down every field label it shows, in order.",
76
- "Read the deduction lines and check they add up to gross minus net.",
77
- "Read the list of orders included in the payout.",
78
- "Close the panel and check the list is unchanged behind it.",
79
- ],
80
- expectedBehaviour: "The panel shows the full breakdown — gross, each deduction, net — and the orders that make it up. The arithmetic is the check: a net figure alone cannot distinguish a correct deduction from a wrong one, and a payout is money actually leaving.",
81
- expectedUiState: "Gross minus the listed deductions equals the net shown, to the paisa. The included orders are listed and identifiable. Any rounding gap is a finding, not a rounding artefact.",
82
- expectedData: { deductionsReconcile: true },
83
- endResult: "Read-only; close the panel without acting.",
84
- },
85
- "checklist-selling-seller-analytics-payouts-payouts-reminder-toggle": {
86
- roles: ["seller"],
87
- startPage: "/store/payouts",
88
- steps: [
89
- "Sign in as tyson@beybladearena.in / TempPass123!.",
90
- /*
91
- * 🛑 THE TOGGLE IS PER-PAYOUT, LABELLED 'Remind me', AND SAVES ITSELF.
92
- *
93
- * This said "open /store/payouts and find the payout reminder toggle",
94
- * then "turn it OFF and save if a save is required", then back on. Three
95
- * things were wrong and each one alone would strand a tester:
96
- *
97
- * - it is not on the page. It lives inside a SELECTED payout's detail
98
- * panel, so a payout has to be opened first.
99
- * - it is labelled 'Remind me', with the helper text "Flag this payout
100
- * for a personal follow-up". Nothing reads "reminder".
101
- * - there is no save. handleToggleReminder PATCHes immediately and
102
- * toasts 'Reminder set.' or 'Reminder cleared.', so waiting for a save
103
- * button means never completing the step.
104
- *
105
- * And the direction was backwards: no seeded payout sets
106
- * `sellerReminderFlag`, and the control reads
107
- * `checked={Boolean(payout.sellerReminderFlag)}` — so it starts OFF.
108
- * "Turn it OFF" first was a no-op that would have made the reload check
109
- * pass trivially.
110
- */
111
- "Open /store/payouts and open any payout to show its detail panel.",
112
- "Find the 'Remind me' toggle in that panel and read its current state — it starts OFF, because no seeded payout carries the flag.",
113
- "Turn it ON. It saves immediately; look for the toast reading 'Reminder set.' rather than a save button.",
114
- "RELOAD the page, reopen the SAME payout, and read the toggle's state.",
115
- "Turn it back off, confirming the toast reads 'Reminder cleared.', and reload once more to confirm.",
116
- ],
117
- expectedBehaviour: "The preference persists server-side. Off is the direction worth testing when the default is on: a toggle that never saves reads back as its default and passes a test that only ever turns it on.",
118
- expectedUiState: "After the reload the reopened payout's 'Remind me' toggle is still ON. A toggle that has reverted to off is the failure — and the PATCH will have reported success and toasted 'Reminder set.', which is exactly what makes it invisible without the reload.",
119
- expectedData: { reminderEnabled: false },
120
- endResult: "The toggle is back on by the final step, so payout reminders are not left suppressed.",
121
- },
122
- "checklist-selling-seller-analytics-payouts-seller-payout-detail-full-page": {
123
- roles: ["seller"],
124
- startPage: "/store/payouts",
125
- steps: [
126
- "Sign in as tyson@beybladearena.in / TempPass123!.",
127
- "Open /store/payouts and open a payout's detail panel from the list.",
128
- "Write down every field label it shows.",
129
- "Note the payout's id and close the panel.",
130
- "Open that payout's standalone detail page directly by URL.",
131
- "Write down every field label it shows and compare the two lists.",
132
- "Reload the standalone page and confirm it still renders.",
133
- ],
134
- expectedBehaviour: "The panel and the page render from one shared content component, so their fields are identical by construction. The standalone page exists because a panel cannot be bookmarked, shared with a colleague, or reopened after a crash — and a payout is exactly the record someone needs to send to someone else.",
135
- expectedUiState: "Both surfaces show the same fields with the same values. The standalone page survives a reload with the same payout loaded. A field present in one and missing from the other means a second copy of the content component has appeared.",
136
- endResult: "Read-only; nothing persists.",
137
- },
138
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,106 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/seller-bids-bundles-filters page.
3
- * WHAT: 4 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 FILTER CHIP'S id IS PASSED STRAIGHT INTO AN EQUALITY, and the comparison is
10
- * byte-exact. A chip whose value is a display label, a wrong case, or a status the
11
- * documents never hold returns zero rows forever with no error anywhere — so every
12
- * case here reads the chip's ROWS, not merely that the chip responds.
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-seller-bids-bundles-filters-seller-bids-status-filter": {
23
- roles: ["seller"],
24
- startPage: "/store/bids",
25
- steps: [
26
- "Sign in as tyson@beybladearena.in / TempPass123!.",
27
- "Open the store's bids page and note the total row count with no filter applied.",
28
- "Read every status chip offered and write the list down.",
29
- "Select each chip in turn and read the row count and the statuses shown in the rows.",
30
- "Write down any chip that returns zero rows.",
31
- "For each such chip, check the unfiltered list for rows carrying that status.",
32
- ],
33
- expectedBehaviour: "Every chip offered corresponds to a status bids actually hold. The last step is what separates an empty chip from a broken one: a chip returning nothing while the unfiltered list contains rows of that status is a wrong filter value, and it fails silently because a byte-exact equality that matches nothing is not an error.",
34
- expectedUiState: "Each chip either returns rows of its own status, or returns none AND the unfiltered list has none either. A chip that is empty while matching rows are visible unfiltered is the failure, named by chip.",
35
- expectedData: { chipsEmptyWithMatchingRows: 0 },
36
- endResult: "Read-only; nothing persists beyond the URL.",
37
- },
38
- "checklist-selling-seller-bids-bundles-filters-seller-bids-sort-dropdown": {
39
- roles: ["seller"],
40
- startPage: "/store/bids",
41
- steps: [
42
- "Sign in as tyson@beybladearena.in / TempPass123!.",
43
- "Open the store's bids page and read the sort dropdown's default selection and the row order.",
44
- "Select each other sort option in turn, reading the row order after each.",
45
- "Write down any option that does not change the order.",
46
- "Check that the dropdown's default is one of the options it offers.",
47
- "Reload with a sort applied and read the order on first paint.",
48
- ],
49
- expectedBehaviour: "Every sort option reorders the rows. An option whose field is not marked sortable is dropped before the query runs, so the dropdown selection changes and nothing moves. A default that is not among the offered options opens the dropdown with nothing selected.",
50
- expectedUiState: "Each option produces a visibly different order. The default is one of the listed options. After the reload the rows are in the selected order on first paint, not the default order that then re-sorts.",
51
- expectedData: { inertSortOptions: 0 },
52
- endResult: "Read-only; nothing persists beyond the URL.",
53
- },
54
- "checklist-selling-seller-bids-bundles-filters-seller-bids-bidder-search": {
55
- roles: ["seller"],
56
- startPage: "/store/bids",
57
- steps: [
58
- "Sign in as tyson@beybladearena.in / TempPass123!.",
59
- "Open the store's bids page and read a bidder identifier from any row.",
60
- "Read the search box's placeholder or helper text for how it matches.",
61
- "Type that identifier exactly and read the results.",
62
- "Clear the box, type only the first half of it, and read the results.",
63
- "Clear the box, type zzzznope, and read the results.",
64
- ],
65
- inputs: { nonsenseQuery: "zzzznope" },
66
- expectedBehaviour: "Bidder identities are PII-encrypted at rest, so they can only be matched exactly through a blind index — a partial match is impossible by design rather than by omission. The box must SAY so, because otherwise a partial search returning nothing reads as broken.",
67
- expectedUiState: "The exact identifier returns its rows. The partial one returns none, and the box states that matching is exact. 'zzzznope' returns none rather than the full list.",
68
- expectedData: { nonsenseResultCount: 0 },
69
- endResult: "Read-only. Bidder names shown in these rows should be masked — an unmasked full name here is a separate and more serious finding than anything about the search.",
70
- },
71
- "checklist-selling-seller-bids-bundles-filters-seller-bundles-active-filter": {
72
- roles: ["seller"],
73
- startPage: "/store/bundles",
74
- steps: [
75
- "Sign in as tyson@beybladearena.in / TempPass123!.",
76
- /*
77
- * 🛑 THE SELLER OWNS NO SEEDED BUNDLE, SO THE CASE HAS TO MAKE ONE.
78
- *
79
- * /store/bundles filters on `b.createdByStoreId === store.id`, and
80
- * `createdByStoreId` appears ZERO times across every seed file — all 11
81
- * seeded bundles are `createdByType: "admin"`, authored by
82
- * user-admin-letitrip. They are platform bundles and correctly invisible
83
- * here.
84
- *
85
- * So the page is empty for every seller, and a case that opens it and
86
- * "notes the total row count" could only ever be answered "could not
87
- * test". Creating one first makes the case self-sufficient, and the
88
- * created row is disposable: `categories` is SEED_OWNED, so the next
89
- * lifecycle wipe removes it.
90
- */
91
- "Open /store/bundles/new and create a bundle named 'QA Bundle active-filter' with at least two of this store's products as members, leaving it Active.",
92
- "Create a second one named 'QA Bundle inactive-probe' and set it Inactive.",
93
- "Open the store's bundles page and note the total row count.",
94
- "Read the active filter's options.",
95
- "Select active and read the rows and their states.",
96
- "Select inactive and read the rows and their states.",
97
- "Confirm the two counts add up to the unfiltered total.",
98
- "Open one bundle and check its member list is populated rather than reading zero items.",
99
- "Delete both QA bundles afterwards.",
100
- ],
101
- expectedBehaviour: "The two filter states partition the list, so their counts sum to the total. The member check matters separately: a bundle's members are mirrored onto the bundle for index-friendly reads, and a reader trusting only that mirror shows an empty bundle whenever a write path forgot to update it.",
102
- expectedUiState: "Active and inactive each return their own rows and the counts sum to the unfiltered total. The opened bundle lists its members with titles and images rather than reading '0 items'.",
103
- expectedData: { partitionSumsToTotal: true },
104
- endResult: "Both QA bundles are deleted, leaving the store's bundle list as it was — empty, since no seeded bundle belongs to a store. If the delete fails, say so: `categories` is SEED_OWNED and the next lifecycle wipe clears them anyway, so a leftover is untidy rather than harmful.",
105
- },
106
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,192 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/seller-catalog-org page.
3
- * WHAT: 8 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
- * 🛑 THREE DIFFERENT THINGS HERE ARE ALL CALLED "CATEGORY", and conflating them is
10
- * how the first version of this file described the wrong object twice:
11
- *
12
- * /store/categories STOREFRONT shelves. Own collection
13
- * (`storeCategoriesRepository`), scoped to one
14
- * store, and the field is **Label**, not Name.
15
- * /store/sublisting-categories the seller's sub-groupings, with DERIVED page
16
- * metadata that must be recomputed on rename.
17
- * the product form's picker the GLOBAL taxonomy. Its inline-create posts to
18
- * the admin categories endpoint — which admits
19
- * sellers deliberately (ROLES_STORE_WRITE, with a
20
- * comment saying it is for this picker).
21
- *
22
- * 🛑 A PRODUCT CARRIES ITS FULL ANCESTOR CHAIN so a parent category page can match
23
- * on its own id alone — and since 2026-09-14 that chain IS derived on write, by
24
- * `ProductRepository.deriveTaxonomy()`, from both `create` and `update`. This file
25
- * used to say the opposite and instruct the tester to REPORT a one-element chain as
26
- * a known gap; that is now a false bug report. `deep-category-chain-derived` is the
27
- * case that can actually fail if the derivation regresses.
28
- *
29
- * The inline-create form sends only name/slug/description/isActive — there is **no
30
- * parent field** — so a category created that way is always a root and correctly
31
- * shows exactly one link. One link there is arithmetic, not a defect.
32
- *
33
- * @tag domain:tester
34
- * @tag layer:seed
35
- * @tag pattern:none
36
- * @tag access:server-only
37
- * @tag consumers:seed-data/authored/index.ts
38
- * @tag sideEffects:none
39
- */
40
- export const authored = {
41
- "checklist-selling-seller-catalog-org-seller-categories-crud": {
42
- roles: ["seller"],
43
- startPage: "/store/categories",
44
- steps: [
45
- "Sign in as tyson@beybladearena.in / TempPass123!.",
46
- "Open the store's categories page and read the list. These are STOREFRONT shelves scoped to this store — not the global taxonomy the product form's category picker offers.",
47
- "Create one and save. The field is labelled 'Label', not 'Name' — type 'QA Shelf catalog-org' into it. Leave the slug blank, it is optional on create.",
48
- "RELOAD and confirm it is listed under that label.",
49
- "Change the Label to 'QA Shelf catalog-org renamed' WITHOUT touching the slug field, save, then RELOAD and read both the label and the slug.",
50
- "Delete it and RELOAD to confirm it is gone.",
51
- ],
52
- inputs: {
53
- label: "QA Shelf catalog-org",
54
- renamed: "QA Shelf catalog-org renamed",
55
- },
56
- expectedBehaviour: "Create, rename and delete all persist against this store. The rename is the one worth watching: slug is its own editable field here rather than something derived from the label, so editing the label alone must leave the slug exactly as it was — a slug that silently re-derives would break every link to the shelf.",
57
- expectedUiState: "Each operation survives its reload. After the rename the new label is shown and the slug is byte-identical to what it was before. A validation error naming a field the form does not show is also a failure — the create schema requires only the label.",
58
- endResult: "The shelf is deleted by the final step. Nothing in the global category taxonomy is touched by this case.",
59
- },
60
- "checklist-selling-seller-catalog-org-seller-sublisting-categories-crud": {
61
- roles: ["seller"],
62
- startPage: "/store/sublisting-categories",
63
- steps: [
64
- "Sign in as tyson@beybladearena.in / TempPass123!.",
65
- "Open the store's sublisting-categories page and read the list.",
66
- "Create one named 'QA Sublisting catalog-org' with a description and save.",
67
- "RELOAD and read every field.",
68
- "Rename it to 'QA Sublisting catalog-org renamed', save, and RELOAD.",
69
- "Read the page title and description shown for it, and check they reflect the new name.",
70
- "Delete it.",
71
- ],
72
- inputs: {
73
- name: "QA Sublisting catalog-org",
74
- renamed: "QA Sublisting catalog-org renamed",
75
- },
76
- expectedBehaviour: "A sublisting category's derived page metadata is recomputed on rename. Deriving it only at creation freezes the title and description at the original name, so the page keeps describing itself as something it is no longer called — a create-time transform the update path does not repeat.",
77
- expectedUiState: "After the rename and reload, both the name AND the derived title and description reflect the new name. Metadata still naming the original is the failure.",
78
- endResult: "The sublisting category is deleted by the final step.",
79
- },
80
- "checklist-selling-seller-catalog-org-sublisting-categories-standard-toolbar": {
81
- roles: ["seller"],
82
- startPage: "/store/sublisting-categories",
83
- steps: [
84
- "Sign in as tyson@beybladearena.in / TempPass123!.",
85
- "Open the store's sublisting-categories page and write down every toolbar control, left to right.",
86
- "Open /store/products and write down its toolbar controls the same way.",
87
- "Compare the two orderings.",
88
- "Type zzzznope into the search box and read the result count.",
89
- "Look for any empty gap in the toolbar where a control would sit.",
90
- ],
91
- inputs: { nonsenseQuery: "zzzznope" },
92
- expectedBehaviour: "This listing uses the shared toolbar scaffold, so its controls match every other listing's in kind and order. The nonsense query is the control that proves the search box filters rather than decorates.",
93
- expectedUiState: "The two toolbars present the same controls in the same order. 'zzzznope' returns zero rows and an empty state, not the full list. No empty gap where a control was removed.",
94
- expectedData: { nonsenseResultCount: 0 },
95
- endResult: "Read-only; nothing persists beyond the URL.",
96
- },
97
- "checklist-selling-seller-catalog-org-seller-listing-templates-crud": {
98
- roles: ["seller"],
99
- startPage: "/store/listing-templates",
100
- steps: [
101
- "Sign in as tyson@beybladearena.in / TempPass123!.",
102
- "Open /store/listing-templates and read the list.",
103
- "Create a template named 'QA Template catalog-org' with a category, a condition and a description filled in, and save.",
104
- "RELOAD and read every field of the saved template.",
105
- "Open /store/products/new and apply that template.",
106
- "Read which fields it populated.",
107
- "Delete the template.",
108
- ],
109
- inputs: { name: "QA Template catalog-org" },
110
- expectedBehaviour: "A template stores a reusable set of field values and applying it populates them in a new listing form. There are two template features in this codebase — an older product-template one superseded by this listing-template one — so confirming which page is reachable from the sidebar matters as much as the CRUD itself.",
111
- expectedUiState: "The template survives its reload with every field. Applying it in the product form fills those fields rather than only the name. A template that saves but populates nothing is the failure.",
112
- endResult: "The template is deleted by the final step; leave the product editor without saving.",
113
- },
114
- "checklist-selling-seller-catalog-org-seller-category-inline-create": {
115
- roles: ["seller"],
116
- startPage: "/store/products/new",
117
- steps: [
118
- "Sign in as tyson@beybladearena.in / TempPass123!.",
119
- "Open /store/products/new and find the category picker.",
120
- "Type QA Category inline-create into its search box.",
121
- "Read what the picker offers when nothing matches.",
122
- "Use the create control and complete the form it opens.",
123
- "Read the picker's selection afterwards.",
124
- ],
125
- inputs: { categoryName: "QA Category inline-create" },
126
- expectedBehaviour: "The category picker offers inline creation for the same reason the brand picker does — a seller listing something genuinely new should not have to abandon the form. The created option is auto-selected.",
127
- expectedUiState: "A create control appears when the search matches nothing, and after saving the picker shows the new category as selected without being re-opened.",
128
- endResult: "A category exists. Leave the editor without saving — it is what the next case reads.",
129
- },
130
- "checklist-selling-seller-catalog-org-seller-category-inline-create-persists": {
131
- roles: ["seller", "guest"],
132
- startPage: "/store/products/new",
133
- steps: [
134
- "Sign in as tyson@beybladearena.in / TempPass123!.",
135
- "Open /store/products/new, search the category picker for QA Category inline-create, and confirm it is offered.",
136
- "Type 'QA Product inline-category' as the title, select that category, type 400 as the price, and publish.",
137
- "Open the product's public page and read its category links below the title.",
138
- "Count how many category links are shown.",
139
- "Click the one naming QA Category inline-create and confirm the product is listed on the page it opens.",
140
- "Delete the product and the category afterwards.",
141
- ],
142
- inputs: {
143
- categoryName: "QA Category inline-create",
144
- title: "QA Product inline-category",
145
- price: 400,
146
- },
147
- expectedBehaviour: "The category persists across a reload and the product is genuinely filed under it — reachable from the category's own page, not merely named on the product.",
148
- expectedUiState: "The category is offered after a reload and the product's public page links it. EXACTLY ONE link is correct here and is not a defect: the inline-create form sends only name, slug, description and active — it has no parent field — so the category it makes is a root with no ancestors to list. A product under a DEEP category is a different assertion and has its own case.",
149
- expectedData: { categoryLinksShown: 1 },
150
- endResult: "The product and the category are deleted by the final step. Do not report the single link as a missing ancestor chain — that was this case's own stale claim and it is wrong.",
151
- },
152
- "checklist-selling-seller-catalog-org-deep-category-chain-derived": {
153
- roles: ["seller", "guest"],
154
- startPage: "/store/products/new",
155
- steps: [
156
- "Sign in as tyson@beybladearena.in / TempPass123!.",
157
- "Open /store/products/new and search the category picker for 'Heavy Metal System' — a seeded tier-3 category whose ancestors are Original Tops, Beyblade Original and Spinning Tops.",
158
- "Select it, type 'QA Product deep-chain' as the title and 500 as the price, and publish.",
159
- "Open the product's public page and count the category links below the title.",
160
- "Read the names in order and compare them against the four expected.",
161
- "Open /categories/category-spinning-tops — the ROOT, three levels above the category chosen — and look for this product.",
162
- "Delete the product afterwards.",
163
- ],
164
- inputs: {
165
- categoryName: "Heavy Metal System",
166
- categoryId: "category-original-hms",
167
- title: "QA Product deep-chain",
168
- price: 500,
169
- },
170
- expectedBehaviour: "A product filed against a deep category is written with its FULL ancestor chain, so every ancestor page matches on its own id alone. The repository derives this on create and update; a form payload cannot supply it, because the create schema strips any categorySlugs it is sent. This is the assertion that fails if that derivation regresses — and the failure is silent, because the product's own page looks completely normal with one link.",
171
- expectedUiState: "FOUR category links: Heavy Metal System, Original Tops, Beyblade Original, Spinning Tops. The product appears on the root Spinning Tops page. One link, or a root page that does not list it, is the failure — and note that every SEEDED product shows four, so a new listing showing one is a write-path defect rather than a display one.",
172
- expectedData: { categoryLinksShown: 4, foundOnRootCategoryPage: true },
173
- endResult: "The product is deleted by the final step. Check the root page before deleting — that is the half a tester is most likely to skip, and it is the half that proves the chain is queryable rather than merely printed.",
174
- },
175
- "checklist-selling-seller-catalog-org-seller-category-inline-create-duplicate-rejected": {
176
- roles: ["seller"],
177
- startPage: "/store/products/new",
178
- steps: [
179
- "Sign in as tyson@beybladearena.in / TempPass123!.",
180
- "Open /store/products/new and open the category picker.",
181
- "Use the create control and type the name of a category that already exists — Beyblade Burst.",
182
- "Save and read the message shown on the form.",
183
- "Open the picker and search that name, counting the matching options.",
184
- "Try again with a case variant: beyblade BURST. The form derives the slug by lowercasing and hyphenating, so this collides on the SAME slug and must be refused for the same reason.",
185
- ],
186
- inputs: { existingCategory: "Beyblade Burst", caseVariant: "beyblade BURST" },
187
- expectedBehaviour: "A duplicate category is refused on its SLUG, which is what makes the case variant collide too. Categories are matched by id on the read side rather than by name, so a duplicate is less immediately destructive than a duplicate brand — but it splits a seller's own catalogue across two near-identical entries with no way to merge them.",
188
- expectedUiState: "Both attempts are refused with a readable message — the server answers 409 'A category with this slug already exists' — and exactly one option matches the name in the picker. A refusal that surfaces only as a silent no-op, or as a raw 409 with no message on the form, is a failure even though nothing was created.",
189
- expectedData: { matchingOptionCount: 1 },
190
- endResult: "Leave the editor without saving.",
191
- },
192
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,109 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/seller-custom-brands 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 BRAND PAGE MATCHES ITS PRODUCTS BY DISPLAY NAME, not by slug. So a brand
10
- * created here and the brand string written onto the product must agree exactly,
11
- * and the public brand page is the only place that disagreement becomes visible —
12
- * the seller's own dashboard shows the product filed correctly either way.
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-seller-custom-brands-seller-brand-inline-create": {
23
- roles: ["seller"],
24
- startPage: "/store/products/new",
25
- steps: [
26
- "Sign in as tyson@beybladearena.in / TempPass123!.",
27
- "Open /store/products/new and find the brand picker.",
28
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create, and its six fields are Product Name, Category, Price (₹), Stock Quantity, Description and Product Image — there is NO brand field on it at all. The brand picker exists only on the advanced form.",
29
- "Type QA Brand inline-create into its search box.",
30
- "Read what the picker offers when nothing matches.",
31
- "Use the create control the picker offers and fill the form it opens.",
32
- "Save the new brand and read the picker's selection afterwards.",
33
- ],
34
- inputs: { brandName: "QA Brand inline-create" },
35
- expectedBehaviour: "A picker with more than five options is searchable, and where a seller might legitimately need a value that does not exist it offers inline creation. The newly created option is auto-selected — making the seller find it again in the list is the half-finished version of this feature.",
36
- expectedUiState: "Searching a name that does not exist shows a create control rather than only an empty state. After saving, the picker shows 'QA Brand inline-create' as the current selection without the seller re-opening it.",
37
- endResult: "A brand exists. Leave the product editor without saving — the brand is what the next cases read.",
38
- },
39
- "checklist-selling-seller-custom-brands-seller-brand-inline-create-persists": {
40
- roles: ["seller"],
41
- startPage: "/store/products/new",
42
- steps: [
43
- "Sign in as tyson@beybladearena.in / TempPass123!.",
44
- "Open /store/products/new and open the brand picker.",
45
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create, and its six fields are Product Name, Category, Price (₹), Stock Quantity, Description and Product Image — there is NO brand field on it at all. The brand picker exists only on the advanced form.",
46
- "Search for QA Brand inline-create.",
47
- "Read whether it is offered as an existing option.",
48
- "Reload the page and search for it again.",
49
- "Open /store/auctions/new — a different creation form — and search for it there. Note that route exists even though /store/auctions itself is a redirect-only shim to the products list.",
50
- ],
51
- inputs: { brandName: "QA Brand inline-create" },
52
- expectedBehaviour: "The brand was written to the shared categories collection as a brand-typed row, so it is available to every form that reads brands, not only the one that created it. A value that exists only in the creating form's local state disappears on reload.",
53
- expectedUiState: "The brand is offered as an existing option in the product form, after a reload, and in the auction form. Being absent from any of the three is the failure.",
54
- endResult: "Leave every editor without saving.",
55
- },
56
- "checklist-selling-seller-custom-brands-seller-brand-inline-create-duplicate-rejected": {
57
- roles: ["seller"],
58
- startPage: "/store/products/new",
59
- steps: [
60
- "Sign in as tyson@beybladearena.in / TempPass123!.",
61
- "Open /store/products/new and open the brand picker.",
62
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create, and its six fields are Product Name, Category, Price (₹), Stock Quantity, Description and Product Image — there is NO brand field on it at all. The brand picker exists only on the advanced form.",
63
- "Use the create control and type QA Brand inline-create — the name that already exists.",
64
- "Save and read the message.",
65
- "Open the picker again and search that name.",
66
- "Count how many options match it.",
67
- "Try once more with the same name in different case: qa brand INLINE-CREATE.",
68
- ],
69
- inputs: { brandName: "QA Brand inline-create", caseVariant: "qa brand INLINE-CREATE" },
70
- expectedBehaviour: "A duplicate is refused rather than creating a second row. Because a brand page matches products by DISPLAY NAME, two rows with the same name are two brands the read side cannot tell apart — and a case-differing duplicate is the same problem wearing a disguise.",
71
- expectedUiState: "The duplicate attempt is refused with a readable message. Exactly one option matches the name in the picker. The case-differing attempt is refused too — accepting it creates the ambiguity this rule exists to prevent.",
72
- expectedData: { matchingOptionCount: 1 },
73
- endResult: "Leave the editor without saving.",
74
- },
75
- "checklist-selling-seller-custom-brands-seller-brand-product-saves-with-new-brand": {
76
- roles: ["seller"],
77
- startPage: "/store/products/new",
78
- steps: [
79
- "Sign in as tyson@beybladearena.in / TempPass123!.",
80
- "Open /store/products/new and type 'QA Product custom-brand' as the title.",
81
- "Click 'Show all fields (advanced)' first. 🛑 /store/products/new opens the QUICK form for a standard create, and its six fields are Product Name, Category, Price (₹), Stock Quantity, Description and Product Image — there is NO brand field on it at all. The brand picker exists only on the advanced form.",
82
- "Select QA Brand inline-create in the brand picker.",
83
- "Type 500 as the price, fill every other required field, and publish.",
84
- "RELOAD the product's editor and read the brand.",
85
- "Open the product's public page at /products/{its slug} and read the brand link below the title.",
86
- "Click that link.",
87
- ],
88
- inputs: { title: "QA Product custom-brand", brandName: "QA Brand inline-create", price: 500 },
89
- expectedBehaviour: "The product stores both the brand's slug and its display name, and the two stay in lockstep. The public page's brand link resolves to the brand's own page — a link built from one field while the page matches on the other lands somewhere empty.",
90
- expectedUiState: "After the reload the editor shows the brand. The public page shows a brand link reading 'QA Brand inline-create' and clicking it opens that brand's page rather than a 404.",
91
- endResult: "The product exists and is the fixture the next case reads. Delete it after that case.",
92
- },
93
- "checklist-selling-seller-custom-brands-seller-brand-appears-on-public-brands-page": {
94
- roles: ["guest"],
95
- startPage: "/brands",
96
- steps: [
97
- "Open /brands in a private window with no session.",
98
- "Look for QA Brand inline-create in the list.",
99
- "Open its brand page.",
100
- "Read the product grid and look for 'QA Product custom-brand'.",
101
- "Open the sort control and choose 'Most Products'. ALL brands should be listed, seeded ones included — Takara-Tomy, Beyblade, Hasbro and Independent Keepers. The seed file writes no `metrics` on brand rows, but `onProductWrite` is a documentWritten trigger on products/{productId}: it fires on seed writes too and increments `metrics.productCount` on the brand as well as the category, creating the field. A brand MISSING from this sort means the trigger did not run for its products.",
102
- ],
103
- inputs: { brandName: "QA Brand inline-create", productTitle: "QA Product custom-brand" },
104
- expectedBehaviour: "A seller-created brand becomes a real public brand page listing its products. The match is on display name, so this page is where a name-versus-slug mismatch finally shows — the brand page renders and its grid is empty, which reads as a brand with no stock rather than as a broken link.",
105
- expectedUiState: "The brand is listed on /brands and its page shows 'QA Product custom-brand' in the grid. An empty grid on a brand that demonstrably has a product is the failure this whole page builds toward. Under 'Most Products' every brand with products is listed, seeded ones included. An orderBy does silently exclude a document lacking the ordering field, so a brand absent HERE is real evidence that onProductWrite never ran for its products — which is why this sort is worth opening at all.",
106
- expectedData: { productsOnBrandPage: 1 },
107
- endResult: "NOTHING is cleaned up here and that is deliberate: this case is signed out, and the harness gives a guest batch no session at all, so a 'sign in and delete' step could never be performed. The QA product and brand are removed by the seller-side case that created them; if this case runs alone, say so and leave them.",
108
- },
109
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,34 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the selling/seller-guide page.
3
- * WHAT: 1 case, 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
- * @tag domain:tester
10
- * @tag layer:seed
11
- * @tag pattern:none
12
- * @tag access:server-only
13
- * @tag consumers:seed-data/authored/index.ts
14
- * @tag sideEffects:none
15
- */
16
- export const authored = {
17
- "checklist-selling-seller-guide-seller-guide-pages": {
18
- roles: ["seller"],
19
- startPage: "/store/guide",
20
- steps: [
21
- "Sign in as tyson@beybladearena.in / TempPass123!.",
22
- "Open /store and find the 'Guides' group in the sidebar. It is the LAST group and it defaults CLOSED (defaultOpen: false), so expand it — seven entries: All Guides, Listings Guide, Orders Guide, Finance Guide, Settings, Capabilities, WhatsApp Catalog Sync.",
23
- "Click 'All Guides' to reach /store/guide. It is a hub and it links the same six sub-guides, so each one has two routes in — check both agree.",
24
- "Open each of the six in turn and read its content: /store/guide/listings, /store/guide/orders, /store/guide/finance, /store/guide/settings, /store/guide/capabilities, /store/guide/whatsapp.",
25
- "Write down any that renders empty, 404s, or repeats another page's text.",
26
- "Check each guide against the feature it describes — open that feature and confirm the guide's instructions match what is on screen.",
27
- "Follow every link inside the guides and note where each lands.",
28
- ],
29
- expectedBehaviour: "Every seller guide renders its own content and every link in it resolves. A guide describing a screen that has since changed is worse than no guide, because the seller trusts it and then cannot find what it names. The sidebar group defaulting closed is deliberate — guides are reference, not daily work — so a tester who does not expand it will wrongly conclude they are missing.",
30
- expectedUiState: "All six guides show a heading and body specific to their topic, with no two identical, and both the sidebar group and the hub reach all of them. Every internal link lands on a real page. Instructions match the current screens — a guide naming a control that no longer exists is the finding, quoted exactly.",
31
- expectedData: { brokenGuideLinks: 0 },
32
- endResult: "Read-only; nothing persists. Report stale instructions with the guide's name and the sentence that is wrong, not just that the page loads.",
33
- },
34
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;