@mohasinac/appkit 4.58.0 → 4.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
  3. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  4. package/dist/_internal/shared/types/base-document.d.ts +1 -1
  5. package/dist/constants/seed-meta.d.ts +113 -0
  6. package/dist/constants/seed-meta.js +91 -0
  7. package/dist/index.d.ts +0 -131
  8. package/dist/index.js +50 -294
  9. package/dist/server.d.ts +0 -69
  10. package/dist/server.js +0 -69
  11. package/package.json +4 -2
  12. package/scripts/seed-cli.mjs +69 -1
  13. package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
  14. package/dist/features/tester/seed-data/_happy-path.js +0 -710
  15. package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
  16. package/dist/features/tester/seed-data/_money-flows.js +0 -610
  17. package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
  18. package/dist/features/tester/seed-data/authored/_types.js +0 -35
  19. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
  20. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
  21. package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
  22. package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
  23. package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
  24. package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
  25. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
  26. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
  27. package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
  28. package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
  29. package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
  30. package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
  31. package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
  32. package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
  33. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
  34. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
  35. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
  36. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
  37. package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
  38. package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
  39. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
  40. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
  41. package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
  42. package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
  43. package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
  44. package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
  45. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
  46. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
  47. package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
  48. package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
  49. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
  50. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
  51. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
  52. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
  53. package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
  54. package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
  55. package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
  56. package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
  57. package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
  58. package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
  59. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
  60. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
  61. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
  62. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
  63. package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
  64. package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
  65. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
  66. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
  67. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
  68. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
  69. package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
  70. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
  71. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
  72. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
  73. package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
  74. package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
  75. package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
  76. package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
  77. package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
  78. package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
  79. package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
  80. package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
  81. package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
  82. package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
  83. package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
  84. package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
  85. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
  86. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
  87. package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
  88. package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
  89. package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
  90. package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
  91. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
  92. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
  93. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
  94. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
  95. package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
  96. package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
  97. package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
  98. package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
  99. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
  100. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
  101. package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
  102. package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
  103. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
  104. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
  105. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
  106. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
  107. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
  108. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
  109. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
  110. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
  111. package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
  112. package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
  113. package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
  114. package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
  115. package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
  116. package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
  117. package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
  118. package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
  119. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
  120. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
  121. package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
  122. package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
  123. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
  124. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
  125. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
  126. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
  127. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
  128. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
  129. package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
  130. package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
  131. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
  132. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
  133. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
  134. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
  135. package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
  136. package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
  137. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
  138. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
  139. package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
  140. package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
  141. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
  142. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
  143. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
  144. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
  145. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
  146. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
  147. package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
  148. package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
  149. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
  150. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
  151. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
  152. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
  153. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
  154. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
  155. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
  156. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
  157. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
  158. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
  159. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
  160. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
  161. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
  162. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
  163. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
  164. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
  165. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
  166. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
  167. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
  168. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
  169. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
  170. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
  171. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
  172. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
  173. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
  174. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
  175. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
  176. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
  177. package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
  178. package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
  179. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
  180. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
  181. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
  182. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
  183. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
  184. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
  185. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
  186. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
  187. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
  188. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
  189. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
  190. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
  191. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
  192. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
  193. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
  194. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
  195. package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
  196. package/dist/features/tester/seed-data/authored/index.js +0 -301
  197. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
  198. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
  199. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
  200. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
  201. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
  202. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
  203. package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
  204. package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
  205. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
  206. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
  207. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
  208. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
  209. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
  210. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
  211. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
  212. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
  213. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
  214. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
  215. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
  216. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
  217. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
  218. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
  219. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
  220. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
  221. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
  222. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
  223. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
  224. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
  225. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
  226. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
  227. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
  228. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
  229. package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
  230. package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
  231. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
  232. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
  233. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
  234. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
  235. package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
  236. package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
  237. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
  238. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
  239. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
  240. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
  241. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
  242. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
  243. package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
  244. package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
  245. package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
  246. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
  247. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
  248. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
  249. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
  250. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
  251. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
  252. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
  253. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
  254. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
  255. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
  256. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
  257. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
  258. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
  259. package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
  260. package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
  261. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
  262. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
  263. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
  264. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
  265. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
  266. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
  267. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
  268. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
  269. package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
  270. package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
  271. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
  272. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
  273. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
  274. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
  275. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
  276. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
  277. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
  278. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
  279. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
  280. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
  281. package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
  282. package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
  283. package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
  284. package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
  285. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
  286. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
  287. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
  288. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
  289. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
  290. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
  291. package/dist/features/tester/seed-data/index.d.ts +0 -2
  292. package/dist/features/tester/seed-data/index.js +0 -2
  293. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
  294. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
  295. package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
  296. package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
  297. package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
  298. package/dist/features/tester/seed-data/tester-window.js +0 -66
  299. package/dist/seed/_helpers/brand-rows.d.ts +0 -35
  300. package/dist/seed/_helpers/brand-rows.js +0 -600
  301. package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
  302. package/dist/seed/_helpers/category-content-generated.js +0 -1853
  303. package/dist/seed/_helpers/category-content.d.ts +0 -68
  304. package/dist/seed/_helpers/category-content.js +0 -731
  305. package/dist/seed/_helpers/category-forest.d.ts +0 -4
  306. package/dist/seed/_helpers/category-forest.js +0 -824
  307. package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
  308. package/dist/seed/_helpers/category-images-generated.js +0 -618
  309. package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
  310. package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
  311. package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
  312. package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
  313. package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
  314. package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
  315. package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
  316. package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
  317. package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
  318. package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
  319. package/dist/seed/_helpers/category-models.d.ts +0 -12
  320. package/dist/seed/_helpers/category-models.js +0 -45
  321. package/dist/seed/_helpers/category-names.d.ts +0 -54
  322. package/dist/seed/_helpers/category-names.js +0 -118
  323. package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
  324. package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
  325. package/dist/seed/_helpers/category-parts.d.ts +0 -9
  326. package/dist/seed/_helpers/category-parts.js +0 -15022
  327. package/dist/seed/_helpers/category-tree.d.ts +0 -27
  328. package/dist/seed/_helpers/category-tree.js +0 -119
  329. package/dist/seed/_helpers/character-features.d.ts +0 -10
  330. package/dist/seed/_helpers/character-features.js +0 -120
  331. package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
  332. package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
  333. package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
  334. package/dist/seed/_helpers/franchise-rows.js +0 -189
  335. package/dist/seed/_helpers/media.d.ts +0 -67
  336. package/dist/seed/_helpers/media.js +0 -172
  337. package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
  338. package/dist/seed/_helpers/part-colours-generated.js +0 -273
  339. package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
  340. package/dist/seed/_helpers/product-search-txt.js +0 -23
  341. package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
  342. package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
  343. package/dist/seed/addresses-seed-data.d.ts +0 -2
  344. package/dist/seed/addresses-seed-data.js +0 -78
  345. package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
  346. package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
  347. package/dist/seed/bey-products-seed-data.d.ts +0 -18
  348. package/dist/seed/bey-products-seed-data.js +0 -18011
  349. package/dist/seed/beys/chunk0.d.ts +0 -17
  350. package/dist/seed/beys/chunk0.js +0 -36733
  351. package/dist/seed/beys/chunk1.d.ts +0 -17
  352. package/dist/seed/beys/chunk1.js +0 -35728
  353. package/dist/seed/beys/chunk2.d.ts +0 -17
  354. package/dist/seed/beys/chunk2.js +0 -35857
  355. package/dist/seed/beys/chunk3.d.ts +0 -17
  356. package/dist/seed/beys/chunk3.js +0 -34476
  357. package/dist/seed/beys-seed-data.d.ts +0 -18
  358. package/dist/seed/beys-seed-data.js +0 -11
  359. package/dist/seed/bids-seed-data.d.ts +0 -2
  360. package/dist/seed/bids-seed-data.js +0 -206
  361. package/dist/seed/blog-posts-seed-data.d.ts +0 -6
  362. package/dist/seed/blog-posts-seed-data.js +0 -442
  363. package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
  364. package/dist/seed/carousel-slides-seed-data.js +0 -411
  365. package/dist/seed/carousels-seed-data.d.ts +0 -2
  366. package/dist/seed/carousels-seed-data.js +0 -36
  367. package/dist/seed/cart-seed-data.d.ts +0 -2
  368. package/dist/seed/cart-seed-data.js +0 -241
  369. package/dist/seed/catalogue-seed-data.d.ts +0 -2
  370. package/dist/seed/catalogue-seed-data.js +0 -112
  371. package/dist/seed/categories-seed-data.d.ts +0 -3
  372. package/dist/seed/categories-seed-data.js +0 -816
  373. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
  374. package/dist/seed/claimed-coupons-seed-data.js +0 -85
  375. package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
  376. package/dist/seed/coupon-usage-seed-data.js +0 -55
  377. package/dist/seed/coupons-seed-data.d.ts +0 -2
  378. package/dist/seed/coupons-seed-data.js +0 -226
  379. package/dist/seed/defaults/categories.d.ts +0 -2
  380. package/dist/seed/defaults/categories.js +0 -12
  381. package/dist/seed/defaults/faqs.d.ts +0 -2
  382. package/dist/seed/defaults/faqs.js +0 -40
  383. package/dist/seed/events-seed-data.d.ts +0 -7
  384. package/dist/seed/events-seed-data.js +0 -482
  385. package/dist/seed/factories/address.factory.d.ts +0 -21
  386. package/dist/seed/factories/address.factory.js +0 -44
  387. package/dist/seed/factories/bid.factory.d.ts +0 -15
  388. package/dist/seed/factories/bid.factory.js +0 -33
  389. package/dist/seed/factories/blog-post.factory.d.ts +0 -15
  390. package/dist/seed/factories/blog-post.factory.js +0 -22
  391. package/dist/seed/factories/carousel.factory.d.ts +0 -11
  392. package/dist/seed/factories/carousel.factory.js +0 -17
  393. package/dist/seed/factories/cart.factory.d.ts +0 -25
  394. package/dist/seed/factories/cart.factory.js +0 -35
  395. package/dist/seed/factories/category.factory.d.ts +0 -11
  396. package/dist/seed/factories/category.factory.js +0 -16
  397. package/dist/seed/factories/coupon.factory.d.ts +0 -21
  398. package/dist/seed/factories/coupon.factory.js +0 -43
  399. package/dist/seed/factories/faq.factory.d.ts +0 -10
  400. package/dist/seed/factories/faq.factory.js +0 -15
  401. package/dist/seed/factories/notification.factory.d.ts +0 -18
  402. package/dist/seed/factories/notification.factory.js +0 -39
  403. package/dist/seed/factories/order.factory.d.ts +0 -20
  404. package/dist/seed/factories/order.factory.js +0 -20
  405. package/dist/seed/factories/payout.factory.d.ts +0 -21
  406. package/dist/seed/factories/payout.factory.js +0 -38
  407. package/dist/seed/factories/product.factory.d.ts +0 -27
  408. package/dist/seed/factories/product.factory.js +0 -80
  409. package/dist/seed/factories/review.factory.d.ts +0 -14
  410. package/dist/seed/factories/review.factory.js +0 -52
  411. package/dist/seed/factories/session.factory.d.ts +0 -15
  412. package/dist/seed/factories/session.factory.js +0 -31
  413. package/dist/seed/factories/store.factory.d.ts +0 -23
  414. package/dist/seed/factories/store.factory.js +0 -47
  415. package/dist/seed/factories/user.factory.d.ts +0 -19
  416. package/dist/seed/factories/user.factory.js +0 -56
  417. package/dist/seed/faq-seed-data.d.ts +0 -18
  418. package/dist/seed/faq-seed-data.js +0 -1956
  419. package/dist/seed/firestore-indexes.d.ts +0 -12
  420. package/dist/seed/firestore-indexes.js +0 -31
  421. package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
  422. package/dist/seed/grouped-listings-seed-data.js +0 -283
  423. package/dist/seed/history-seed-data.d.ts +0 -12
  424. package/dist/seed/history-seed-data.js +0 -70
  425. package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
  426. package/dist/seed/homepage-sections-seed-data.js +0 -1034
  427. package/dist/seed/index.d.ts +0 -100
  428. package/dist/seed/index.js +0 -115
  429. package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
  430. package/dist/seed/lottery-entries-seed-data.js +0 -108
  431. package/dist/seed/manifest.d.ts +0 -16
  432. package/dist/seed/manifest.js +0 -235
  433. package/dist/seed/media-assets-seed-data.d.ts +0 -22
  434. package/dist/seed/media-assets-seed-data.js +0 -5593
  435. package/dist/seed/model-composition-seed-data.d.ts +0 -15
  436. package/dist/seed/model-composition-seed-data.js +0 -9032
  437. package/dist/seed/notifications-seed-data.d.ts +0 -2
  438. package/dist/seed/notifications-seed-data.js +0 -606
  439. package/dist/seed/offers-seed-data.d.ts +0 -2
  440. package/dist/seed/offers-seed-data.js +0 -398
  441. package/dist/seed/orders-seed-data.d.ts +0 -2
  442. package/dist/seed/orders-seed-data.js +0 -845
  443. package/dist/seed/part-glossary/chunk0.d.ts +0 -9
  444. package/dist/seed/part-glossary/chunk0.js +0 -35448
  445. package/dist/seed/part-glossary/chunk1.d.ts +0 -9
  446. package/dist/seed/part-glossary/chunk1.js +0 -40494
  447. package/dist/seed/part-glossary/chunk2.d.ts +0 -9
  448. package/dist/seed/part-glossary/chunk2.js +0 -51242
  449. package/dist/seed/part-glossary/chunk3.d.ts +0 -9
  450. package/dist/seed/part-glossary/chunk3.js +0 -53337
  451. package/dist/seed/part-glossary/chunk4.d.ts +0 -9
  452. package/dist/seed/part-glossary/chunk4.js +0 -51454
  453. package/dist/seed/part-glossary-seed-data.d.ts +0 -15
  454. package/dist/seed/part-glossary-seed-data.js +0 -25
  455. package/dist/seed/payouts-seed-data.d.ts +0 -2
  456. package/dist/seed/payouts-seed-data.js +0 -302
  457. package/dist/seed/product-features-seed-data.d.ts +0 -3
  458. package/dist/seed/product-features-seed-data.js +0 -366
  459. package/dist/seed/products-art-seed-data.d.ts +0 -2
  460. package/dist/seed/products-art-seed-data.js +0 -289
  461. package/dist/seed/products-auctions-seed-data.d.ts +0 -2
  462. package/dist/seed/products-auctions-seed-data.js +0 -475
  463. package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
  464. package/dist/seed/products-beyblade-x-seed-data.js +0 -476
  465. package/dist/seed/products-catalogue/chunk0.d.ts +0 -12
  466. package/dist/seed/products-catalogue/chunk0.js +0 -7262
  467. package/dist/seed/products-catalogue/chunk1.d.ts +0 -12
  468. package/dist/seed/products-catalogue/chunk1.js +0 -7290
  469. package/dist/seed/products-catalogue/chunk10.d.ts +0 -12
  470. package/dist/seed/products-catalogue/chunk10.js +0 -7290
  471. package/dist/seed/products-catalogue/chunk11.d.ts +0 -12
  472. package/dist/seed/products-catalogue/chunk11.js +0 -7005
  473. package/dist/seed/products-catalogue/chunk12.d.ts +0 -12
  474. package/dist/seed/products-catalogue/chunk12.js +0 -7002
  475. package/dist/seed/products-catalogue/chunk13.d.ts +0 -12
  476. package/dist/seed/products-catalogue/chunk13.js +0 -7002
  477. package/dist/seed/products-catalogue/chunk14.d.ts +0 -12
  478. package/dist/seed/products-catalogue/chunk14.js +0 -7002
  479. package/dist/seed/products-catalogue/chunk15.d.ts +0 -12
  480. package/dist/seed/products-catalogue/chunk15.js +0 -7002
  481. package/dist/seed/products-catalogue/chunk16.d.ts +0 -12
  482. package/dist/seed/products-catalogue/chunk16.js +0 -7002
  483. package/dist/seed/products-catalogue/chunk17.d.ts +0 -12
  484. package/dist/seed/products-catalogue/chunk17.js +0 -7002
  485. package/dist/seed/products-catalogue/chunk18.d.ts +0 -12
  486. package/dist/seed/products-catalogue/chunk18.js +0 -4398
  487. package/dist/seed/products-catalogue/chunk2.d.ts +0 -12
  488. package/dist/seed/products-catalogue/chunk2.js +0 -7268
  489. package/dist/seed/products-catalogue/chunk3.d.ts +0 -12
  490. package/dist/seed/products-catalogue/chunk3.js +0 -7264
  491. package/dist/seed/products-catalogue/chunk4.d.ts +0 -12
  492. package/dist/seed/products-catalogue/chunk4.js +0 -7268
  493. package/dist/seed/products-catalogue/chunk5.d.ts +0 -12
  494. package/dist/seed/products-catalogue/chunk5.js +0 -7258
  495. package/dist/seed/products-catalogue/chunk6.d.ts +0 -12
  496. package/dist/seed/products-catalogue/chunk6.js +0 -7268
  497. package/dist/seed/products-catalogue/chunk7.d.ts +0 -12
  498. package/dist/seed/products-catalogue/chunk7.js +0 -7311
  499. package/dist/seed/products-catalogue/chunk8.d.ts +0 -12
  500. package/dist/seed/products-catalogue/chunk8.js +0 -7304
  501. package/dist/seed/products-catalogue/chunk9.d.ts +0 -12
  502. package/dist/seed/products-catalogue/chunk9.js +0 -7309
  503. package/dist/seed/products-catalogue-seed-data.d.ts +0 -2
  504. package/dist/seed/products-catalogue-seed-data.js +0 -60
  505. package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
  506. package/dist/seed/products-classifieds-seed-data.js +0 -435
  507. package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
  508. package/dist/seed/products-digital-codes-seed-data.js +0 -395
  509. package/dist/seed/products-live-items-seed-data.d.ts +0 -7
  510. package/dist/seed/products-live-items-seed-data.js +0 -269
  511. package/dist/seed/products-preorders-seed-data.d.ts +0 -2
  512. package/dist/seed/products-preorders-seed-data.js +0 -360
  513. package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
  514. package/dist/seed/products-prize-draws-seed-data.js +0 -427
  515. package/dist/seed/products-spares-seed-data.d.ts +0 -2
  516. package/dist/seed/products-spares-seed-data.js +0 -368
  517. package/dist/seed/products-standard-seed-data.d.ts +0 -2
  518. package/dist/seed/products-standard-seed-data.js +0 -632
  519. package/dist/seed/products-stickers-seed-data.d.ts +0 -2
  520. package/dist/seed/products-stickers-seed-data.js +0 -319
  521. package/dist/seed/reviews-seed-data.d.ts +0 -1
  522. package/dist/seed/reviews-seed-data.js +0 -185
  523. package/dist/seed/runner.d.ts +0 -2
  524. package/dist/seed/runner.js +0 -125
  525. package/dist/seed/scammers-seed-data.d.ts +0 -2
  526. package/dist/seed/scammers-seed-data.js +0 -235
  527. package/dist/seed/seed-market-config.d.ts +0 -48
  528. package/dist/seed/seed-market-config.js +0 -199
  529. package/dist/seed/seed-purpose.d.ts +0 -299
  530. package/dist/seed/seed-purpose.js +0 -440
  531. package/dist/seed/sessions-seed-data.d.ts +0 -3
  532. package/dist/seed/sessions-seed-data.js +0 -116
  533. package/dist/seed/shipments-seed-data.d.ts +0 -5
  534. package/dist/seed/shipments-seed-data.js +0 -185
  535. package/dist/seed/site-settings-seed-data.d.ts +0 -2
  536. package/dist/seed/site-settings-seed-data.js +0 -1069
  537. package/dist/seed/store-addresses-seed-data.d.ts +0 -18
  538. package/dist/seed/store-addresses-seed-data.js +0 -71
  539. package/dist/seed/store-extensions-seed-data.d.ts +0 -11
  540. package/dist/seed/store-extensions-seed-data.js +0 -292
  541. package/dist/seed/stores-seed-data.d.ts +0 -6
  542. package/dist/seed/stores-seed-data.js +0 -242
  543. package/dist/seed/support-tickets-seed-data.d.ts +0 -16
  544. package/dist/seed/support-tickets-seed-data.js +0 -239
  545. package/dist/seed/tax-codes-seed-data.d.ts +0 -34
  546. package/dist/seed/tax-codes-seed-data.js +0 -100
  547. package/dist/seed/test-data-ttl.d.ts +0 -29
  548. package/dist/seed/test-data-ttl.js +0 -31
  549. package/dist/seed/test-utils.d.ts +0 -49
  550. package/dist/seed/test-utils.js +0 -110
  551. package/dist/seed/types.d.ts +0 -89
  552. package/dist/seed/types.js +0 -15
  553. package/dist/seed/users-seed-data.d.ts +0 -2
  554. package/dist/seed/users-seed-data.js +0 -597
  555. package/dist/seed/wishlists-seed-data.d.ts +0 -12
  556. package/dist/seed/wishlists-seed-data.js +0 -54
@@ -1,125 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the page-wiring/data-loss 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
- * 🛑 EVERY CASE HERE ENDS IN A RELOAD, and that is not padding. All four bugs
10
- * these cases exist for returned HTTP 200 with a success message and wrote
11
- * nothing, or wrote the wrong thing. The screen after saving looked correct in
12
- * every one of them; only the reload told the truth.
13
- *
14
- * 🛑 SLOTS 1-5 ARE ALREADY BOOKED IN THE SEED (corrected 2026-09-29), so the
15
- * first case could not start: it told the tester to pull slot 3, and slot 3 is
16
- * taken by 'Arjun M'. `maxPullsPerUser` is 1 on this lottery, so a pull is also
17
- * a once-per-persona-per-run action and a poor fixture for a case about
18
- * surviving an edit. The seeded bookings ARE the fixture; no pull is needed.
19
- *
20
- * 🛑 AND NONE OF THE FIVE BOOKERS IS A REAL ACCOUNT. user-ravi-k,
21
- * user-priya-s, user-arjun-m, user-sneha-p and user-vikram-r appear in
22
- * events-seed-data.ts (as lotteryConfig.slots[].bookedByUserId) and in
23
- * lottery-entries-seed-data.ts, and NONE of them exists in users-seed-data.ts.
24
- * So nobody can sign in as the person who booked slot 3, and any step asking
25
- * for that is unperformable. The buyer-side check is done from the public page
26
- * instead, which needs no account. Recorded in OUTOFSCOPE: dangling seed FKs
27
- * are data, and repairing them is not a case edit.
28
- *
29
- * @tag domain:tester
30
- * @tag layer:seed
31
- * @tag pattern:none
32
- * @tag access:server-only
33
- * @tag consumers:seed-data/authored/index.ts
34
- * @tag sideEffects:none
35
- */
36
- export const authored = {
37
- "checklist-page-wiring-data-loss-lottery-edit-preserves-bookings": {
38
- roles: ["admin", "guest"],
39
- startPage: "/admin/lotteries",
40
- steps: [
41
- "Sign in as admin@letitrip.in / TempPass123! and open /lottery/event-pokemon-number-draw-july-2026.",
42
- "Read the slot grid and write down slots 1 to 5 — all five are booked in the seed — recording each slot number, the buyer name shown against it and its lottery number.",
43
- "Open /admin/lotteries and open the editor for that lottery.",
44
- "Rename slot number 7 to 'QA Slot lottery-edit-preserves-bookings'. Slot 7 is 'Alakazam Base Set Holo' and is NOT booked — renaming an unbooked slot is the whole point.",
45
- "Save.",
46
- "Reload the editor and read slots 1 to 5 against what was written down, then read slot 7.",
47
- "Read the price on each of slots 1 to 5 as well — slot 1 is 5000, slot 3 is 2500 — and confirm none has become 0.",
48
- "Sign out and open /lottery/event-pokemon-number-draw-july-2026 to read the same five slots as a visitor sees them.",
49
- ],
50
- inputs: {
51
- bookedSlots: "1, 2, 3, 4, 5",
52
- renamedSlot: 7,
53
- newName: "QA Slot lottery-edit-preserves-bookings",
54
- slot1Price: 5000,
55
- slot3Price: 2500,
56
- },
57
- expectedBehaviour: "The write shape cannot express booking state at all, so an admin editing prize names cannot touch attendance. Bookings are re-attached from the stored config and matched by slot NUMBER, never by array position — deleting a slot shifts every later index, and an index-wise merge hands slot 7's buyer the prize that was slot 8's.",
58
- expectedUiState: "After the save and reload, all five booked slots are still booked, carrying the same buyer names and the same lottery numbers. Slot 7 carries its new name. Every price is unchanged — a grid of zeros is the same defect's twin, caused by seeding the editor from the public projection, which strips price and weight. The public page shows the same five slots still taken.",
59
- expectedData: { bookedSlotsAfterSave: 5, slotsPricedZero: 0 },
60
- endResult: "The pull survives the admin edit. The editor once sent isBooked:false for every slot into a passthrough route, so the first save of a live lottery marked every purchased slot available again and erased the buyers — with a success message and no error anywhere.",
61
- },
62
- "checklist-page-wiring-data-loss-lottery-booked-slot-cannot-be-deleted": {
63
- roles: ["admin"],
64
- startPage: "/admin/lotteries",
65
- steps: [
66
- "Sign in as admin@letitrip.in / TempPass123!.",
67
- "Open /admin/lotteries and open the editor for event-pokemon-number-draw-july-2026.",
68
- "Find slot number 3, which the seed ships already booked by 'Arjun M' — no earlier case has to run for this to be true.",
69
- "Remove that slot from the list.",
70
- "Save.",
71
- "Read the error message.",
72
- "Reload the editor and read slot 3.",
73
- ],
74
- inputs: { bookedSlot: 3 },
75
- expectedBehaviour: "Removing a slot somebody has pulled is refused as a CONFLICT, not as a validation error. The request is well formed and the admin is not confused — the world changed under them, and the correct next action is to reopen the pull rather than fix a field.",
76
- expectedUiState: "The save fails and the message names the slot number that blocked it, so the admin knows which one to deal with. It does not read as a form error attached to a field, and it is not a generic 'Something went wrong'.",
77
- expectedData: { slot3StillPresent: true },
78
- endResult: "Slot 3 is still there and still booked after the reload. A save that succeeds and quietly drops the slot is the failure.",
79
- },
80
- "checklist-page-wiring-data-loss-admin-grouped-listing-title-actually-saves": {
81
- roles: ["admin"],
82
- startPage: "/admin/grouped-listings",
83
- steps: [
84
- "Sign in as admin@letitrip.in / TempPass123!.",
85
- "Open /admin/grouped-listings, find group-beyblade-original-lineage, and write down its exact title.",
86
- "Open /admin/grouped-listings/group-beyblade-original-lineage/edit.",
87
- "Replace the title with 'QA Group admin-grouped-listing-title-actually-saves'.",
88
- "Save and read the confirmation.",
89
- "RELOAD the page.",
90
- "Read the title.",
91
- "Set the title back to what it was and save.",
92
- ],
93
- inputs: {
94
- group: "group-beyblade-original-lineage",
95
- newTitle: "QA Group admin-grouped-listing-title-actually-saves",
96
- },
97
- expectedBehaviour: "The admin PATCH accepts every field the editor can send, not just productIds. A Zod object schema STRIPS unknown keys rather than rejecting them, so a schema listing only productIds turned a title change into a perfectly normal 200 that wrote nothing at all. Verified fixed on 2026-09-29 — the admin route now parses the same strict schema as the seller route, so a pass here is the expected result. It is kept because the failure was invisible without a reload and would return the moment the two schemas diverge again.",
98
- expectedUiState: "After the reload the title is the new one. A save confirmation followed by the OLD title after reload is the exact failure — and without the reload the screen looks identical either way, because the form is still showing what was typed.",
99
- expectedData: { titlePersisted: true },
100
- endResult: "The title is restored to its original value by the final step, so other cases that read this group by name still work.",
101
- },
102
- "checklist-page-wiring-data-loss-store-address-landmark-survives-edit": {
103
- roles: ["seller"],
104
- startPage: "/store/addresses",
105
- steps: [
106
- "Sign in as tyson@beybladearena.in / TempPass123!.",
107
- "Open /store/addresses and create a pickup address from the drawer: name 'QA Address landmark-survives', street '8 Test Lane', city 'Indore', state 'Madhya Pradesh', pincode 452010, landmark 'Opposite the stadium gate'.",
108
- "Save and reload the page, then read the address's landmark.",
109
- "Open /store/addresses/{id}/edit for that address.",
110
- "Change the street to '9 Test Lane' and leave everything else alone.",
111
- "Save.",
112
- "RELOAD the page and read the landmark.",
113
- ],
114
- inputs: {
115
- name: "QA Address landmark-survives",
116
- landmark: "Opposite the stadium gate",
117
- streetBefore: "8 Test Lane",
118
- streetAfter: "9 Test Lane",
119
- },
120
- expectedBehaviour: "The edit form carries every field the route accepts. A form missing one field does not leave it alone — it sends undefined, and undefined overwrites. The landmark was dropped on every single edit for exactly that reason.",
121
- expectedUiState: "After the reload the street reads '9 Test Lane' AND the landmark still reads 'Opposite the stadium gate'. A blank landmark after an unrelated edit is the failure, and it is invisible until the reload.",
122
- expectedData: { landmark: "Opposite the stadium gate" },
123
- endResult: "Delete the address afterwards. What this case really asks of any authoring form is: what does the stored record hold that the form cannot name?",
124
- },
125
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,85 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the page-wiring/detail-pages page.
3
- * WHAT: 3 case(s), keyed by full checklist id.
4
- *
5
- * 🛑 REHAN NEVER BID (corrected 2026-09-29). The identity case said to find a
6
- * bid placed by rehan.sheikh@gmail.com. Only three personas bid anywhere in the
7
- * seed: user-rohit-collector, user-ananya-collector and user-meera-bey. So the
8
- * step found nothing, and its buyer half would then have been signing in as
9
- * someone looking at another person's bid, which is a different test entirely.
10
- *
11
- * Bid ids are DERIVED and therefore knowable:
12
- * bid-{auctionSuffix}-{userSuffix}-20260601-{NNN}
13
- * so the first bid on auction-beyblade-original-dragoon-storm is
14
- * bid-beyblade-original-dragoon-storm-rohit-collector-20260601-000
15
- * That auction has three distinct bidders, which is what makes it the right
16
- * fixture for a case about seeing other people's identities.
17
- *
18
- * ONE builder, FOUR viewers. `buildBidDetailFields(bid, viewer)` is called by
19
- * AdminBidsView's modal ('admin'), UserBidsView ('buyer'), SellerBidsView
20
- * ('seller') and the shared BidDetailPageClient behind all three /view pages.
21
- * Its only viewer-dependent row is Bidder, added when viewer !== 'buyer'. The
22
- * seller leg had no case at all and now has one.
23
- *
24
- * Written by hand, case by case, against the label each one states. There is no
25
- * generator: the authoring scripts were deleted once it was clear they were
26
- * scaffolding around work that is simply writing.
27
- *
28
- * @tag domain:tester
29
- * @tag layer:seed
30
- * @tag pattern:none
31
- * @tag access:server-only
32
- * @tag consumers:seed-data/authored/index.ts
33
- * @tag sideEffects:none
34
- */
35
- export const authored = {
36
- "checklist-page-wiring-detail-pages-detail-page-matches-list-modal": {
37
- roles: ["admin"],
38
- startPage: "/admin/bids",
39
- steps: [
40
- "Sign in as admin@letitrip.in / TempPass123!.",
41
- "Open /admin/bids and open the first bid row so its modal appears.",
42
- "Write down every field label the modal shows, in order.",
43
- "Click the modal's 'Open full page' link and note the URL it lands on.",
44
- "Confirm that URL is /admin/bids/{that bid id}/view.",
45
- "Write down every field label that page shows, in order.",
46
- "Compare the two lists.",
47
- ],
48
- expectedBehaviour: "The modal and the page are two renderings of ONE field builder, so their field sets are identical by construction. Any difference means a second copy of the builder has appeared, and two copies of a field list drift the first time one is edited.",
49
- expectedUiState: "Both surfaces show the same labels, in the same order, with the same values. A field present in one and missing from the other is the failure — including a field the page adds that the modal does not have.",
50
- endResult: "Read-only; nothing persists. Comparing labels rather than layout is deliberate: the two are allowed to look different, they are not allowed to say different things.",
51
- },
52
- "checklist-page-wiring-detail-pages-detail-page-hides-identity-per-portal": {
53
- roles: ["admin", "buyer"],
54
- startPage: "/admin/bids",
55
- steps: [
56
- "Sign in as admin@letitrip.in / TempPass123!.",
57
- "Open /admin/bids/bid-beyblade-original-dragoon-storm-rohit-collector-20260601-000/view directly. It is the first of three bids on auction-beyblade-original-dragoon-storm, placed by rohit.collect@gmail.com.",
58
- "Write down every bidder name and identifier shown anywhere on the page.",
59
- "Sign out and sign in as rohit.collect@gmail.com / TempPass123!, the buyer who placed it.",
60
- "Open /user/bids/bid-beyblade-original-dragoon-storm-rohit-collector-20260601-000/view.",
61
- "Write down every bidder name and identifier shown anywhere on that page, including in the page source.",
62
- ],
63
- expectedBehaviour: "One viewer argument decides what each portal reveals, in one place. The admin view may name other bidders because moderating a dispute requires it; the buyer's own view must not, because a competitor's identity is not the buyer's to see.",
64
- expectedUiState: "The admin page shows a Bidder row naming who placed it; the buyer page omits that row entirely — it is the one field buildBidDetailFields makes viewer-dependent, added only when the viewer is not the buyer. Check the page source too, not merely what is rendered. A competing bidder's real name anywhere in the buyer view is a leak.",
65
- expectedData: { otherBidderNamesInBuyerView: 0 },
66
- endResult: "Read-only; nothing persists. A buyer view that shows nothing at all also fails — the buyer must still see their own bid.",
67
- },
68
- "checklist-page-wiring-detail-pages-detail-page-seller-sees-bidder": {
69
- roles: ["seller"],
70
- startPage: "/store/bids",
71
- steps: [
72
- "Sign in as tyson@beybladearena.in / TempPass123!.",
73
- "Open /store/bids and open the first bid row so its modal appears.",
74
- "Write down every field label the modal shows, in order.",
75
- "Open /store/bids/bid-beyblade-original-dragoon-storm-rohit-collector-20260601-000/view directly.",
76
- "Write down every field label that page shows, in order, and compare the two lists.",
77
- "Read whether a Bidder row is present and what it names.",
78
- ],
79
- inputs: { bidId: "bid-beyblade-original-dragoon-storm-rohit-collector-20260601-000", viewer: "seller" },
80
- expectedBehaviour: "The seller is the third viewer of the same field builder, and the only one with no case until now. A seller running an auction needs to know who bid, so the Bidder row is present for them as it is for an admin; the buyer is the single viewer it is withheld from.",
81
- expectedUiState: "The modal and the page show the same labels in the same order. A Bidder row is present and names the bidder. If it is absent, the seller cannot tell who is bidding on their own auction — and if the buyer view gained one, that is the leak the case above tests.",
82
- expectedData: { bidderRowShown: true },
83
- endResult: "Read-only; nothing persists. Every bid on this auction belongs to store-beyblade-arena, which is tyson's store, so the seller is entitled to see it.",
84
- },
85
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,92 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the page-wiring/drawer-pages page.
3
- * WHAT: 3 case(s), keyed by full checklist id.
4
- *
5
- * 🛑 "EDITOR AS A PAGE" IS TWO DIFFERENT SHAPES, and the cases assumed one
6
- * (corrected 2026-09-29). Checked route by route:
7
- *
8
- * drawer-as-page /admin/team/new, /admin/navigation/new — the editor hard-
9
- * renders <SideDrawer> with no headless mode, so the page
10
- * mounts it permanently open and wires onClose to navigate
11
- * back to the list. Here "close the panel" is literal.
12
- * full page /admin/tester-checklist/new (StackedViewShell +
13
- * SectionForm), /admin/carousels/new (a Section/Container
14
- * with a back Link), /store/stickers/new (a product shell).
15
- * There is no panel and nothing to close; the way back is a
16
- * Cancel button or a link.
17
- *
18
- * Both are correct. What matters for every case here is the same two things —
19
- * the form is usable on arrival, and there is a way back to its list — so the
20
- * steps now ask for that rather than for a drawer that two thirds of these
21
- * routes do not have. A tester hunting a panel on /store/stickers/new would
22
- * otherwise report a defect that is really a second, equally valid shape.
23
- *
24
- * All 19 routes named in step prose below were verified to exist on
25
- * 2026-09-29. Worth repeating rather than trusting: the hrefs audit validates
26
- * href and startPage only, so a route named inside a step is checked by nobody.
27
- *
28
- * Written by hand, case by case, against the label each one states. There is no
29
- * generator: the authoring scripts were deleted once it was clear they were
30
- * scaffolding around work that is simply writing.
31
- *
32
- * @tag domain:tester
33
- * @tag layer:seed
34
- * @tag pattern:none
35
- * @tag access:server-only
36
- * @tag consumers:seed-data/authored/index.ts
37
- * @tag sideEffects:none
38
- */
39
- export const authored = {
40
- "checklist-page-wiring-drawer-pages-page-drawer-opens-already-open": {
41
- roles: ["admin"],
42
- startPage: "/admin/team/new",
43
- steps: [
44
- "Sign in as admin@letitrip.in / TempPass123!.",
45
- "Open /admin/team/new directly in the address bar.",
46
- "Read what is on screen without clicking anything — this one is a drawer mounted permanently open.",
47
- "Close the panel and read the address bar.",
48
- "Open /admin/navigation/new directly, read what is on screen, close it, and read the address bar. This is the same drawer-as-page shape.",
49
- "Open /admin/tester-checklist/new directly and read what is on screen. This one is a FULL PAGE, not a drawer, so look for a Cancel or back control rather than a panel to close.",
50
- "Use that control and read the address bar.",
51
- ],
52
- inputs: {
53
- drawerAsPage: "/admin/team/new, /admin/navigation/new",
54
- fullPage: "/admin/tester-checklist/new",
55
- },
56
- expectedBehaviour: "An editor reached by URL is usable the moment it loads, and offers a way back to the list it belongs to — so the page is a real destination rather than a dead end. Whether that is a drawer mounted open or an ordinary page is an implementation choice and both are correct; what fails is arriving at a blank page, or having no way back.",
57
- expectedUiState: "All three URLs render their form immediately, with no blank page and nothing to click first. Leaving each one lands on /admin/team, /admin/navigation and /admin/tester-checklist respectively, not on a 404 and not on the dashboard. 🛑 Only the first two have a panel to close; the third is a full page and its absence of a drawer is not a finding.",
58
- endResult: "Nothing is created — close each panel rather than saving. A blank page behind a closed drawer is the failure this catches.",
59
- },
60
- "checklist-page-wiring-drawer-pages-page-drawer-deep-link-survives-reload": {
61
- roles: ["admin"],
62
- startPage: "/admin/team",
63
- steps: [
64
- "Sign in as admin@letitrip.in / TempPass123!.",
65
- "Open /admin/team and open the editor for employee-blog@letitrip.in.",
66
- "Copy the URL from the address bar.",
67
- "Reload the page.",
68
- "Read whether the panel is open and which record it holds.",
69
- "Open the copied URL in a new tab and read the same two things.",
70
- ],
71
- inputs: { record: "employee-blog@letitrip.in" },
72
- expectedBehaviour: "The record's identity is in the URL, so a reload and a fresh tab both restore the same open editor. This is the entire reason these pages exist alongside the drawers — a drawer alone cannot be bookmarked, shared with a colleague, or reopened after a crash.",
73
- expectedUiState: "After the reload the panel is still open on employee-blog@letitrip.in with its fields populated. The new tab shows the same. A panel that closes on reload, or reopens empty, both fail.",
74
- endResult: "Read-only; close without saving. Nothing persists.",
75
- },
76
- "checklist-page-wiring-drawer-pages-every-new-editor-route-opens": {
77
- roles: ["admin", "seller"],
78
- startPage: "/admin/categories/new",
79
- steps: [
80
- "Sign in as admin@letitrip.in / TempPass123!.",
81
- "Open each of these by URL in turn: /admin/categories/new, /admin/brands/new, /admin/bundles/new, /admin/faqs/new, /admin/ads/new, /admin/shipments/new, /admin/addresses/new, /admin/grouped-listings/new, /admin/sublisting-categories/new, /admin/carousel/new, /admin/carousels/new.",
82
- "On each, note whether the form is usable on arrival or the page is blank.",
83
- "Leave each one — a drawer close, a Cancel button or a back link, whichever it offers — and note where the browser lands.",
84
- "Sign in as tyson@beybladearena.in / TempPass123! and repeat for /store/addresses/new, /store/sublisting-categories/new, /store/stickers/new, /store/pre-orders/new and /store/listing-templates/new.",
85
- "Record every route that arrives blank and every cancel that lands nowhere.",
86
- ],
87
- expectedBehaviour: "Every editor-as-a-page route arrives with its form usable and offers a way back to its own list. These sixteen are distinct from the three named in the first case on this page, and none of them is named anywhere else in the catalogue, so a blank one is a working URL with nothing on it and no error to report.",
88
- expectedUiState: "All sixteen arrive with a usable form and get back to the matching list. Each blank arrival is a finding, and so is each exit that lands on a dead route, both named by route. 🛑 These are NOT all drawers: /admin/carousels/new is a plain page with a back link and /store/stickers/new is a product shell, so record how each one offers its way back rather than expecting a panel.",
89
- expectedData: { blankEditorRoutes: 0, routesChecked: 16 },
90
- endResult: "Nothing is saved. Every one of these routes was verified to exist on 2026-09-29, so a 404 here means one was deleted since, which is itself the finding.",
91
- },
92
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,115 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the page-wiring/reachability 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
- * Every case here is the same shape: something was fully built and had no way in.
10
- * A page with no nav entry and a nav entry with no page are the two halves of one
11
- * defect, and both ship as "half done" without anything failing.
12
- *
13
- * 🛑 Two fixtures pinned on 2026-09-29. Exactly ONE named carousel is seeded
14
- * — carousel-hero-default, 'Homepage Hero', status active — so 'the first
15
- * carousel' is that one, and its status toggles between exactly two values,
16
- * active and draft. The 'Edit carousel' control lives on the DETAIL page
17
- * /admin/carousels/{id}, not on the list, which only links to each row.
18
- *
19
- * Verified before asserting: /admin/events/new really does derive its type list
20
- * from ALL_EVENT_TYPES now, so Lottery is in the picker and the first case
21
- * should pass. Its own file still carries the note about the local copy that
22
- * omitted it, which is why lottery events could once only come from the seeder.
23
- *
24
- * @tag domain:tester
25
- * @tag layer:seed
26
- * @tag pattern:none
27
- * @tag access:server-only
28
- * @tag consumers:seed-data/authored/index.ts
29
- * @tag sideEffects:none
30
- */
31
- export const authored = {
32
- "checklist-page-wiring-reachability-lottery-can-be-created-without-seeding": {
33
- roles: ["admin", "buyer"],
34
- startPage: "/admin/events/new",
35
- steps: [
36
- "Sign in as admin@letitrip.in / TempPass123!.",
37
- "Open /admin/events/new and read every option in the event type picker.",
38
- "Select Lottery as the type.",
39
- "Type 'QA Event lottery-created-without-seeding' as the title, set a start date of today and an end date one week out, and save.",
40
- "Open /admin/lotteries and open the new event's slot editor.",
41
- "Add three slots numbered 1, 2 and 3, give each a name, and save.",
42
- "Sign out and sign in as rehan.sheikh@gmail.com / TempPass123!.",
43
- "Open /lottery/{the new event id} and pull slot 1.",
44
- ],
45
- inputs: { eventTitle: "QA Event lottery-created-without-seeding", slotCount: 3, pulledSlot: 1 },
46
- expectedBehaviour: "A lottery can be built entirely through the UI. The event and its slots are edited in different places on purpose — the slot editor has no fields for title, dates, status or media, so a lottery created there alone would have no dates, and the draw window is measured from them.",
47
- expectedUiState: "Lottery appears in the event type picker, which is where it was missing entirely. The event saves, its slot editor accepts three slots, and the public page renders them as a pullable grid. Slot 1 becomes booked after the pull.",
48
- expectedData: { lotteryInTypePicker: true },
49
- endResult: "A working lottery exists that no seed script created. Delete the event afterwards. Until this was fixed, lottery events could only come from the seeder.",
50
- },
51
- "checklist-page-wiring-reachability-carousel-can-be-renamed": {
52
- roles: ["admin"],
53
- startPage: "/admin/carousels",
54
- steps: [
55
- "Sign in as admin@letitrip.in / TempPass123!.",
56
- "Open /admin/carousels and read the list — one carousel is seeded, 'Homepage Hero', with status active.",
57
- "Open /admin/carousels/carousel-hero-default and find its 'Edit carousel' control. It is on this detail page, not on the list.",
58
- "Change the name to 'QA Carousel can-be-renamed' and the status from active to draft.",
59
- "Save.",
60
- "RELOAD /admin/carousels and read the name and status in the row.",
61
- "Set the name back to 'Homepage Hero' and the status back to active, then reload once more to confirm.",
62
- ],
63
- inputs: {
64
- carousel: "carousel-hero-default",
65
- originalName: "Homepage Hero",
66
- newName: "QA Carousel can-be-renamed",
67
- statusBefore: "active",
68
- statusAfter: "draft",
69
- },
70
- expectedBehaviour: "A named carousel can be edited after creation. The group editor was create-only, so a carousel's name was fixed for its entire life with no path to change it — and /admin/carousels rendered the flat slide editor rather than a list of named carousels at all.",
71
- expectedUiState: "The list page shows named carousels, not a bare slide editor. 'Edit carousel' exists on the detail page, opens with the current values, and after saving and reloading the list row reads 'QA Carousel can-be-renamed' with status draft. Status has exactly two values here — active and draft — so a picker offering more is itself worth noting.",
72
- expectedData: { editControlPresent: true },
73
- endResult: "The name reads 'Homepage Hero' and the status is active again. Other cases read this carousel by that seeded name, and it is the only one there is.",
74
- },
75
- "checklist-page-wiring-reachability-grouped-listing-members-editable-from-its-own-page": {
76
- roles: ["seller"],
77
- startPage: "/store/grouped-listings/new",
78
- steps: [
79
- "Sign in as tyson@beybladearena.in / TempPass123!.",
80
- "Open /store/grouped-listings/new.",
81
- "Read the form and look for a product picker, a minimum-active-members field and a cover-image field.",
82
- "Type 'QA Group members-editable' as the title.",
83
- "Add product-beyblade-burst-valkyrie and product-beyblade-x-wizard-arrow as members.",
84
- "Set minimum active members to 2 and attach public/test-media/sample-image.png as the cover image.",
85
- "Save.",
86
- "RELOAD the group's page and read its members, minimum and cover image.",
87
- ],
88
- inputs: {
89
- title: "QA Group members-editable",
90
- member1: "product-beyblade-burst-valkyrie",
91
- member2: "product-beyblade-x-wizard-arrow",
92
- minActiveMembers: 2,
93
- coverImage: "/test-media/sample-image.png",
94
- },
95
- expectedBehaviour: "Members are chosen while the group is being created, in the same form. productIds was hardcoded to an empty array, so a group could only ever be created empty and populated from somewhere else — and neither the minimum-active-members nor the cover-image field had an input anywhere in the app.",
96
- expectedUiState: "All three controls are present on the create form. After saving and reloading, the group holds both products, a minimum of 2, and the uploaded cover image. A group that saves with zero members is the failure.",
97
- expectedData: { memberCount: 2, minActiveMembers: 2 },
98
- endResult: "Delete the group afterwards so it does not accumulate across runs.",
99
- },
100
- "checklist-page-wiring-reachability-public-nav-and-footer-resolve": {
101
- roles: ["guest"],
102
- startPage: "/",
103
- steps: [
104
- "Signed out, open /.",
105
- "Click every link in the public header navigation in turn, reading each destination and going back.",
106
- "Open the sidebar support links and click each one, reading each destination.",
107
- "Scroll to the footer and click every link in every column, reading each destination.",
108
- "Write down any link that lands on a not-found page, an empty shell, or back on the homepage.",
109
- ],
110
- expectedBehaviour: "Every public-facing link resolves to a real page with content. The nav audit only ever checked the three portal sidebars, so not one of these 62 hrefs was covered by anything — a rename anywhere in the public surface rotted silently.",
111
- expectedUiState: "All 62 destinations render real content. None shows a 404, none renders chrome with an empty body, and none silently redirects back to / — a redirect to the homepage looks like a working link and is not one.",
112
- expectedData: { brokenLinkCount: 0, linksChecked: 62 },
113
- endResult: "Read-only; nothing persists. Record every broken href in the comment, not just the first — one report naming all of them is worth more than a verdict.",
114
- },
115
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,137 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the public-pages/auth-error-pages 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
- * @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-public-pages-auth-error-pages-register-page": {
18
- roles: ["guest"],
19
- startPage: "/auth/register",
20
- steps: [
21
- "Open /auth/register in a private window with no session.",
22
- "Click 'Create account' with every field empty and read where the errors appear.",
23
- "Type 'QA Register register-page' as the full name and 'not-an-email' as the email, then click 'Create account'.",
24
- "Type qa-register-1@mailnull.com as the email — if that address already has an account from a previous run, increment the number.",
25
- "Type TestPass123! in the password field and Different123! in the confirm field, then click 'Create account'.",
26
- "Correct the confirm field to TestPass123!, tick the terms checkbox, and click 'Create account'.",
27
- ],
28
- inputs: {
29
- fullName: "QA Register register-page",
30
- email: "qa-register-1@mailnull.com",
31
- password: "TestPass123!",
32
- mismatchedConfirm: "Different123!",
33
- },
34
- expectedBehaviour: "Each rule reports on the field that broke it — required, email format, password match, terms accepted — before any request is sent, and the account is created only once all four pass.",
35
- expectedUiState: "The empty submit marks the individual fields rather than showing one banner. 'not-an-email' is rejected on the email field. The mismatched confirm is rejected on the confirm field, not the password field. The final submit signs the browser in and leaves /auth/register.",
36
- endResult: "The account exists and persists. This case creates a real row that teardown does not remove, which is why the address is numbered rather than fixed.",
37
- },
38
- "checklist-public-pages-auth-error-pages-forgot-reset-password-pages": {
39
- roles: ["guest"],
40
- startPage: "/auth/forgot-password",
41
- steps: [
42
- "Open /auth/forgot-password in a private window with no session.",
43
- "Click 'Send reset link' with the field empty and read where the error appears.",
44
- "Type not-an-email and click 'Send reset link'.",
45
- "Type divya.funko@gmail.com and click 'Send reset link'. Read only the CONFIRMATION here — the generic 'if an account exists' message is the whole point of this step and needs no inbox.",
46
- "🛑 DO NOT COMPLETE A RESET FOR A SEEDED PERSONA. The harness cannot open divya's inbox — both check-inbox.mjs and the emailEvents recorder key on TESTER_EMAIL_ID — and a reset that half-completes leaves a PRESERVE-tier login changed with nothing to restore it from, breaking every other case that signs in as her. For the link half, register a throwaway account on the harness mailbox using a plus-address and request the reset for THAT.",
47
- "Capture a timestamp, request the link for the throwaway address, then run: node tester/scripts/check-inbox.mjs --since <that number> --subject \"reset\". Open the link it reports and read the page it lands on.",
48
- "Submit the reset form with two different passwords typed into its two fields.",
49
- "Set both fields to QaAuthPages654! and submit.",
50
- "No restore is needed: the password changed belongs to a throwaway account, not to a seeded persona. Note in your comment that the account remains — the purge script matches only qa-signup+…@letitrip-qa.test, so a Gmail plus-address is not swept automatically.",
51
- ],
52
- inputs: {
53
- email: "divya.funko@gmail.com",
54
- newPassword: "QaAuthPages654!",
55
- restoredPassword: "TempPass123!",
56
- },
57
- expectedBehaviour: "Both pages validate on the field before submitting, and the reset page enforces that the two password entries match. The link's action code is what authorises the change — reaching the inbox is the proof of identity.",
58
- expectedUiState: "Empty and malformed emails are marked on the field. A real address produces the generic 'if an account exists' message. The reset page rejects mismatched passwords on the confirm field and accepts matching ones with a confirmation.",
59
- endResult: "The password is back at TempPass123! by the final step. This case shares divya.funko@gmail.com with the single-use-link case in signup-login and with nothing else, deliberately — the seeder never resets an existing password, so a changed one outlives every future re-seed.",
60
- },
61
- "checklist-public-pages-auth-error-pages-verify-email-page": {
62
- roles: ["guest"],
63
- startPage: "/auth/register",
64
- steps: [
65
- "Open /auth/register in a private window and create an account on the HARNESS mailbox using a plus-address — no seeded persona can receive testable email, since both instruments key on TESTER_EMAIL_ID — with TestPass123! as the password.",
66
- "Capture a timestamp before registering, then find the verification email: node tester/scripts/check-inbox.mjs --since <that number> --subject \"verify\". Read the exit code — 0 arrived, 1 did not (a defect), 2 could not open the mailbox (a harness problem, answer null).",
67
- "Open the verification link and read the page it lands on.",
68
- "Open /user and look for an unverified-email warning.",
69
- "Open the same verification link a second time and read the page.",
70
- ],
71
- inputs: { password: "TestPass123!" },
72
- expectedBehaviour: "The verify-email page consumes the action code, reports the outcome, and offers a way onward. A second visit finds the code spent and says so rather than reporting a second success.",
73
- expectedUiState: "The first visit shows a clear confirmation and a link into the site. /user then carries no unverified-email warning. The second visit shows a readable already-used or expired message — not a blank page, not a raw Firebase error code, and not another success.",
74
- expectedData: { emailVerified: true },
75
- endResult: "The account is verified and stays verified across a sign-out and sign-in.",
76
- },
77
- "checklist-public-pages-auth-error-pages-oauth-loading-redirect": {
78
- roles: ["guest"],
79
- startPage: "/auth/login",
80
- steps: [
81
- "Open /auth/login in a private window with no session.",
82
- "Click 'Sign in with Google'.",
83
- "Complete the Google popup and watch what the site shows while it finishes.",
84
- "Wait up to 30 seconds without clicking anything.",
85
- "Read where the browser ends up.",
86
- ],
87
- expectedBehaviour: "The interstitial waits for the sign-in signal and then moves on by itself. It must not be a terminal state: a page that shows a spinner and never navigates is the same to a user as a crash, and it is the state a dropped realtime signal produces.",
88
- expectedUiState: "A loading state appears briefly and then the browser navigates to / or /user with the header showing a signed-in avatar. It does not sit on the loading page indefinitely and it does not land back on /auth/login as though nothing happened.",
89
- endResult: "The session is established and survives a reload. Needs a Google account — answer null with that reason if none is available.",
90
- },
91
- "checklist-public-pages-auth-error-pages-checkout-success-page": {
92
- roles: ["buyer"],
93
- startPage: "/checkout",
94
- steps: [
95
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
96
- "Open /products/product-beyblade-burst-valkyrie and click 'Add to Cart'.",
97
- "Open /checkout, select the first saved address, continue through the add-ons step, choose Cash on Delivery and place the order.",
98
- "Read the success page for an order number, the item, the address and the total.",
99
- "Copy the URL and reload it.",
100
- "Open the same URL in a private window with no session.",
101
- ],
102
- inputs: { productId: "product-beyblade-burst-valkyrie", price: 199, paymentMethod: "Cash on Delivery" },
103
- expectedBehaviour: "The success page reads the real order rather than whatever the checkout had in memory, so it survives a reload. It is also order-scoped data, so a signed-out visitor with the URL must not be shown someone's delivery address.",
104
- expectedUiState: "The page names an order number, 'Beyblade Burst Valkyrie' at ₹1,899.00 — the product the steps actually add, the delivery address and a total. After the reload it shows the same. In the private window it does not render the order details — it asks for sign-in or reports not-found.",
105
- expectedData: { orderTotal: 199 },
106
- endResult: "The order exists in /user/orders. A success page that goes blank on reload was rendering from checkout state and not from the order.",
107
- },
108
- "checklist-public-pages-auth-error-pages-unauthorized-404-pages": {
109
- roles: ["guest", "buyer"],
110
- startPage: "/",
111
- steps: [
112
- "Open /this-page-does-not-exist-qa in a private window and read the page.",
113
- "Click whatever the page offers as a way back and read where it lands.",
114
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
115
- "Open /admin/site and read the page.",
116
- "Open /unauthorized directly and read the page.",
117
- ],
118
- expectedBehaviour: "Both error pages render as real pages inside the site chrome and offer a way out. A buyer reaching an admin route gets the unauthorized page rather than a crash or a raw framework error, and neither page leaks anything about what it was protecting.",
119
- expectedUiState: "The 404 shows a readable message and at least one working link back into the site. The unauthorized page does the same. Neither shows a stack trace, a file path, or an error digest presented as the whole page, and neither renders as an unstyled white page outside the site's own layout.",
120
- endResult: "Read-only; nothing persists. A blank white page for either is the failure — it reads as the site being down rather than as one route being unavailable.",
121
- },
122
- "checklist-public-pages-auth-error-pages-auth-close-terminates-popup": {
123
- roles: ["guest"],
124
- startPage: "/auth/login",
125
- steps: [
126
- "Open /auth/login in a private window with no session.",
127
- "Start a Google sign-in so the popup opens.",
128
- "Complete it and watch the popup window rather than the page behind it.",
129
- "Check the popup closes itself rather than sitting on a page.",
130
- "Read the original page and check it is now signed in.",
131
- "If the popup stays open, read what it shows and whether the opener ever updates.",
132
- ],
133
- expectedBehaviour: "The popup terminator closes its own window and hands the result back to the opener. A popup that renders and stays open leaves the opener waiting forever — the sign-in genuinely succeeded, and the site never learns it, which is indistinguishable to the visitor from a failed login.",
134
- expectedUiState: "The popup closes on its own and the original page becomes signed in without a manual reload. A popup left open is the finding, with whatever it displays.",
135
- endResult: "Signed out.",
136
- },
137
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;