@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,350 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the admin/orders-fulfillment page.
3
- * WHAT: 20 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
- * 🛑 THE MANUAL-PAYMENT STATE IS DERIVED, NEVER STORED — four states computed from
10
- * two fields, so every surface agrees by construction. That is also why the admin
11
- * queue is not an ordinary filter: "has a proof" is not a Firestore-filterable
12
- * predicate, since an inequality excludes every document where the field was never
13
- * written, which is exactly the awaiting-payment set. The queue therefore reads a
14
- * bounded window and refines in memory.
15
- *
16
- * The payment actions here are the most consequential in the admin panel: rejecting
17
- * as fraud cancels the order, restores stock and bans a real account for seven days.
18
- *
19
- * @tag domain:tester
20
- * @tag layer:seed
21
- * @tag pattern:none
22
- * @tag access:server-only
23
- * @tag consumers:seed-data/authored/index.ts
24
- * @tag sideEffects:none
25
- */
26
- export const authored = {
27
- "checklist-admin-orders-fulfillment-orders-status-change": {
28
- roles: ["admin", "buyer"],
29
- startPage: "/admin/orders",
30
- steps: [
31
- "Sign in as admin@letitrip.in / TempPass123!.",
32
- "Open /admin/orders and open an order in a pending state.",
33
- "Read every status the status control offers.",
34
- "Compare that list against the nine order statuses the system has.",
35
- "Change the status one step forward and save.",
36
- "RELOAD and read the status and the order's own history entries.",
37
- "Sign in as the buyer who placed it and read the status on their order page.",
38
- ],
39
- expectedBehaviour: "A status change is written with a history entry recording who changed it, when, and from what — appended inside the repository's write primitives rather than at each call site, so all thirty-odd write paths record it. The buyer sees the same status; a change visible only in the admin means the write did not reach the order.",
40
- expectedUiState: "The status control offers the real statuses. After the reload the new status holds and a history entry names the transition with an actor and a timestamp. The buyer's view shows the same status.",
41
- endResult: "The order carries its new status. A history entry with a fabricated timestamp — one invented for a status with no recorded date — is a separate finding.",
42
- },
43
- "checklist-admin-orders-fulfillment-admin-emi-order-reviewable": {
44
- roles: ["admin"],
45
- startPage: "/admin/orders",
46
- steps: [
47
- "Sign in as admin@letitrip.in / TempPass123!.",
48
- "Open /admin/orders and find an order paid by EMI.",
49
- "Open it and read the instalment schedule.",
50
- "Check the number of instalments, each amount and each due date are shown.",
51
- "Read whether the seller's share of any surcharge is displayed.",
52
- "Read the payment actions offered for this order.",
53
- ],
54
- expectedBehaviour: "An EMI order is reviewable with its full schedule. The surcharge has a platform-versus-seller split that is server-side only — the buyer is quoted from a projection that excludes it. Whether an admin may see it is a judgement, but it must never have reached the buyer's quote.",
55
- expectedUiState: "The schedule shows every instalment with its amount and due date. Record whether the seller share is displayed here. An EMI order with no schedule at all is the failure.",
56
- endResult: "Read-only; take no payment action.",
57
- },
58
- "checklist-admin-orders-fulfillment-admin-decided-order-no-live-buttons": {
59
- roles: ["admin"],
60
- startPage: "/admin/orders",
61
- steps: [
62
- "Sign in as admin@letitrip.in / TempPass123!.",
63
- "Open /admin/orders and find an order whose payment has already been verified.",
64
- "Open it and read every payment control offered.",
65
- "Check whether Verify, Request re-upload and Reject as fraud are still active.",
66
- "Find an order already rejected as fraud and read its controls.",
67
- "Find a cancelled order and read its controls.",
68
- ],
69
- expectedBehaviour: "Once a payment decision is made, the decision controls are gone rather than merely discouraged. An active Reject-as-fraud button on an already-verified order is one click from cancelling a paid order and banning its buyer for seven days.",
70
- expectedUiState: "Decided orders show their outcome and no live payment-decision controls. Buttons that are present but disabled are acceptable; buttons that still act are the failure.",
71
- expectedData: { liveDecisionControlsOnDecidedOrder: 0 },
72
- endResult: "Read-only; click nothing.",
73
- },
74
- "checklist-admin-orders-fulfillment-admin-orders-payment-review-filters": {
75
- roles: ["admin"],
76
- startPage: "/admin/orders",
77
- steps: [
78
- "Sign in as admin@letitrip.in / TempPass123!.",
79
- "Open /admin/orders and find the manual-payment filter chips.",
80
- "Read every chip offered and write the list down — there are three: All, 'Awaiting payment' and 'Awaiting verification'.",
81
- "Select each in turn and read the rows returned.",
82
- "Check the awaiting-payment chip returns orders with NO proof uploaded.",
83
- "Check the awaiting-verification chip returns orders WITH a proof and no decision.",
84
- "Read the URL and confirm the selection is encoded there as ?paymentReview=awaiting_proof or ?paymentReview=awaiting_verification — a query param of its own, NOT a Sieve f= filter, which is the whole point of the case.",
85
- ],
86
- expectedBehaviour: "The queue is not an ordinary Sieve filter. 'Has a proof' cannot be expressed as a query predicate — an inequality on the proof field excludes every document where it was never written, which IS the awaiting-payment set, so the query would return only the opposite of what was asked. The queue runs one bounded query and refines in memory instead, reached through its own query parameter.",
87
- expectedUiState: "The awaiting-payment chip returns orders with no proof, and the awaiting-verification chip returns orders with a proof and no decision — two visibly different sets. A chip returning the inverse of its name is the predicate failure.",
88
- endResult: "Read-only; nothing persists beyond the URL.",
89
- },
90
- "checklist-admin-orders-fulfillment-admin-orders-payment-state-on-row": {
91
- roles: ["admin"],
92
- startPage: "/admin/orders",
93
- steps: [
94
- "Sign in as admin@letitrip.in / TempPass123!.",
95
- "Open /admin/orders and read the secondary line on every manual-payment row.",
96
- "Check each states which of the four payment states the order is in.",
97
- "Open one of those orders and compare the state shown there against the row.",
98
- "Find an order in the re-upload-requested state and read how the row describes it.",
99
- "Find a rejected order and read its row.",
100
- ],
101
- expectedBehaviour: "The state is derived from two fields on every surface, so the row and the detail cannot disagree. A stored mirror would drift the first time a write path forgot it, which is why there is no such field.",
102
- expectedUiState: "Every manual-payment row names its state and matches the order's own detail. All four states are distinguishable from the row alone, including re-upload-requested — an order stuck in that state is invisible to both the auto-approve sweep and the queue, so it has to be visible here.",
103
- endResult: "Read-only; nothing persists.",
104
- },
105
- "checklist-admin-orders-fulfillment-admin-orders-view-payment-proof": {
106
- roles: ["admin"],
107
- startPage: "/admin/orders",
108
- steps: [
109
- "Sign in as admin@letitrip.in / TempPass123!.",
110
- "Open /admin/orders and open an order awaiting payment verification.",
111
- "Find the buyer's uploaded proof and open it at full size.",
112
- "Read the payment reference the buyer entered.",
113
- "Read the expected payment identifier the order was created with.",
114
- "Compare the two and check the page flags any mismatch.",
115
- ],
116
- expectedBehaviour: "The admin sees the screenshot, the reference the buyer typed, and the identifier the order expected — and the page compares them. A mismatch warning is the whole point of showing both: an admin reading two long strings side by side will miss a single transposed digit.",
117
- expectedUiState: "The screenshot opens legibly at full size. Both identifiers are shown together and a mismatch is flagged rather than left for the admin to spot. A verify control with no proof visible is the acting-blind failure.",
118
- endResult: "Read-only; take no decision.",
119
- },
120
- "checklist-admin-orders-fulfillment-admin-orders-verify-payment": {
121
- roles: ["admin", "buyer"],
122
- startPage: "/admin/orders",
123
- steps: [
124
- "Sign in as admin@letitrip.in / TempPass123!.",
125
- "Open /admin/orders and open an order awaiting verification, noting its buyer and total.",
126
- "Read the proof and the references, then use Verify.",
127
- "Read the confirmation and RELOAD the order.",
128
- "Read the payment status, the order status and the history entries.",
129
- "Sign in as that buyer and read the order's status and payment state on their side.",
130
- "Check the payment upload page for that order is no longer active.",
131
- ],
132
- expectedBehaviour: "Verifying marks the payment paid, moves the order forward and records a history entry. The buyer's own view has to agree — a verification visible only to the admin leaves the buyer believing they still owe money.",
133
- expectedUiState: "After the reload the payment reads as paid with a history entry naming the admin and the time. The buyer's order shows the same, and their upload page is closed rather than still inviting a proof.",
134
- endResult: "One order is verified. Choose an order created by an earlier case rather than a real one.",
135
- },
136
- "checklist-admin-orders-fulfillment-admin-orders-request-reupload": {
137
- roles: ["admin", "buyer"],
138
- startPage: "/admin/orders",
139
- steps: [
140
- "Sign in as admin@letitrip.in / TempPass123!.",
141
- "Open an order awaiting verification and use Request re-upload.",
142
- "Attempt to submit with an empty note and read what happens.",
143
- "Type 'QA Note request-reupload — the screenshot is unreadable.' and submit.",
144
- "RELOAD and read the order's payment state.",
145
- "Sign in as the buyer, open the order's payment page, and read whether the form is active and what the deadline shows.",
146
- "Upload a new proof as the buyer and submit it.",
147
- "Sign back in as admin, RELOAD the order, and read its payment state.",
148
- ],
149
- inputs: { note: "QA Note request-reupload — the screenshot is unreadable." },
150
- expectedBehaviour: "The note is required — a re-upload request with no reason leaves the buyer resubmitting the same thing. The corrected upload must CLEAR the requested state: an order left in it is invisible to both the two-hour auto-approve sweep and the admin queue, and stalls indefinitely with nobody looking at it.",
151
- expectedUiState: "The empty note is refused. After the request the buyer's upload form is active again with an extended deadline. After their re-upload the admin order returns to awaiting-verification rather than staying in the requested state.",
152
- expectedData: { stateAfterReupload: "awaiting verification" },
153
- endResult: "The order is back in the queue. An order still reading re-upload-requested after a fresh proof is the stall this case exists for.",
154
- },
155
- "checklist-admin-orders-fulfillment-admin-orders-reject-fraud": {
156
- roles: ["admin"],
157
- startPage: "/admin/orders",
158
- steps: [
159
- "Sign in as admin@letitrip.in / TempPass123!.",
160
- "Open an order awaiting verification and locate Reject as fraud.",
161
- "Attempt to submit with an empty note and read what happens.",
162
- "Type a note and read the confirmation dialog that opens.",
163
- "Read whether it names what will happen — the cancellation, the stock restore and the ban.",
164
- "CANCEL the dialog rather than confirming.",
165
- "RELOAD and confirm the order is unchanged.",
166
- ],
167
- expectedBehaviour: "Rejecting as fraud cancels the order, restores stock and enqueues a seven-day ban cascade against the buyer. A destructive action of that reach must carry a confirmation naming the consequences — one without it executes immediately with no warning, and this is not an action to discover by clicking.",
168
- expectedUiState: "The empty note is refused. The confirmation names the cancellation, the stock restore and the ban rather than asking a generic 'Are you sure?'. Cancelling leaves the order untouched after a reload.",
169
- endResult: "Nothing is rejected. CANCEL rather than confirm — this action bans a real account for seven days.",
170
- },
171
- "checklist-admin-orders-fulfillment-admin-orders-payment-actions-hidden-when-paid": {
172
- roles: ["admin"],
173
- startPage: "/admin/orders",
174
- steps: [
175
- "Sign in as admin@letitrip.in / TempPass123!.",
176
- "Open an order paid by an online gateway rather than manually.",
177
- "Read whether any manual-payment controls are offered.",
178
- "Open a cash or UPI order that has already been verified and read its controls.",
179
- "Open an order still awaiting payment and read its controls.",
180
- "Compare all three.",
181
- ],
182
- expectedBehaviour: "Manual-payment controls appear only where a manual payment is pending. A gateway-paid order never had a proof to review, and a verified one has been decided — offering the controls on either invites an action with no meaning and real consequences.",
183
- expectedUiState: "The gateway order shows no manual-payment controls at all. The verified one shows its outcome without live decision buttons. Only the pending order offers them. Identical controls on all three is the failure.",
184
- endResult: "Read-only; click nothing.",
185
- },
186
- "checklist-admin-orders-fulfillment-bids-admin-view": {
187
- roles: ["admin"],
188
- startPage: "/admin/bids",
189
- steps: [
190
- "Sign in as admin@letitrip.in / TempPass123!.",
191
- "Open /admin/bids and read every column.",
192
- "Read every status filter offered and select each, noting any that returns nothing.",
193
- "For each empty filter, check the unfiltered list for rows of that status.",
194
- "Open a row and read the bid's detail.",
195
- "Check the row action menu offers a view rather than only mutations.",
196
- "Search zzzznope and read the count.",
197
- ],
198
- inputs: { nonsenseQuery: "zzzznope" },
199
- expectedBehaviour: "Bids are readable before being acted on. Their statuses include outbid, won, forfeited and cancelled — a chip naming a value bids never hold matches nothing forever, and a bid list where rows cannot be opened is a dead end.",
200
- expectedUiState: "Every status filter returns its own rows or is empty with none unfiltered either. A row opens to a detail. 'zzzznope' returns none.",
201
- expectedData: { nonsenseResultCount: 0 },
202
- endResult: "Read-only; nothing persists beyond the URL.",
203
- },
204
- "checklist-admin-orders-fulfillment-return-requests-triage": {
205
- roles: ["admin", "buyer"],
206
- startPage: "/admin/orders",
207
- steps: [
208
- "Sign in as admin@letitrip.in / TempPass123!.",
209
- "Open /admin/return-requests and read the rows.",
210
- "Check each row shows the item, the buyer's stated reason and the order it belongs to.",
211
- "Read the scope tabs and check which scope a return-requested order sits under.",
212
- "Open one and read the full reason before acting.",
213
- "Approve or reject it with a note, then RELOAD and read the order's status and history.",
214
- "Sign in as the buyer and read the order's status on their side.",
215
- ],
216
- expectedBehaviour: "A return is an order STATUS rather than a separate entity, so returns are a view over orders and the request is the seller's next action item — which is why return-requested belongs under the Active scope rather than Closed. The buyer's stated reason has to be readable before a decision, not after.",
217
- expectedUiState: "Rows show the item, the reason and the order. Return-requested orders appear under Active. The decision is recorded with a history entry and the buyer's view agrees.",
218
- endResult: "One return is triaged. A return-requested order filed under Closed is the finding, since it disappears from the queue the seller works from.",
219
- },
220
- "checklist-admin-orders-fulfillment-fulfillment-queue-admin": {
221
- roles: ["admin"],
222
- startPage: "/admin/orders",
223
- steps: [
224
- "Sign in as admin@letitrip.in / TempPass123!.",
225
- "Open /admin/fulfillment and read every row's primary label.",
226
- "Check each names the ITEM and shows its thumbnail rather than only an order id.",
227
- "Read a multi-item order's row and check it indicates there is more than one item.",
228
- "Read the queue's ordering and check the oldest unfulfilled order is first.",
229
- "Use every filter offered and confirm each changes the rows.",
230
- ],
231
- expectedBehaviour: "Every order carries its item title and image denormalised onto the document so a list row needs no extra fetch. A row reading 'Order {id}' threw that away and forces the admin to open each order to learn what it is — the data was there the whole time.",
232
- expectedUiState: "Rows name the product with a thumbnail and a multi-item order shows a '+N more' style suffix. The order id is present but de-emphasised. The oldest unfulfilled order is first.",
233
- endResult: "Read-only; nothing persists beyond the URL.",
234
- },
235
- "checklist-admin-orders-fulfillment-shipments-crud": {
236
- roles: ["admin"],
237
- startPage: "/admin/shipments",
238
- steps: [
239
- "Sign in as admin@letitrip.in / TempPass123!.",
240
- "Open /admin/shipments and read the existing shipments.",
241
- "Create one named 'QA Shipment admin-crud' with a supplier and a date, and save.",
242
- "RELOAD and read every field.",
243
- "Add a lot and an item to it, save, RELOAD, and read them back.",
244
- "Edit ONLY the supplier, save, RELOAD, and check the lots and items are unchanged.",
245
- "Read any money figure and check it reads as rupees rather than a hundredfold value.",
246
- "Delete the shipment.",
247
- ],
248
- inputs: { name: "QA Shipment admin-crud" },
249
- expectedBehaviour: "A shipment carries lots and items as FK-linked children, and an edit to the parent leaves them alone. Money here is decimal rupees like everywhere else — a seed file once carried hundredfold literals in this feature and inflated every profit projection by a hundred, which is visible only by reading a figure and asking whether it is plausible.",
250
- expectedUiState: "After each reload the shipment holds its fields and its children. The supplier edit leaves the lots and items intact. Money figures are plausible rupee amounts, not values a hundred times too large.",
251
- endResult: "The shipment is deleted by the final step.",
252
- },
253
- "checklist-admin-orders-fulfillment-print-center-admin": {
254
- roles: ["admin"],
255
- startPage: "/admin/orders",
256
- steps: [
257
- "Sign in as admin@letitrip.in / TempPass123!.",
258
- "Open the admin print centre and read what it offers.",
259
- "Select two orders or items to print.",
260
- "Read the URL and check the selection is encoded there.",
261
- "Read the preview and check it carries the right store's name, logo and address for each order.",
262
- "Open the URL in a new tab and check the same selection arrives.",
263
- "Check any barcode shown matches the product it is printed for.",
264
- ],
265
- expectedBehaviour: "The selection is deep-linkable and the preview carries real context. Where orders from different stores are printed together, each label must carry ITS OWN store's details — a print run that stamps one store's address on another's parcel is a delivery failure rather than a formatting one.",
266
- expectedUiState: "The URL encodes the selection and the pasted URL reproduces it. Each label carries the correct store's name, logo and address. Barcodes match their products.",
267
- endResult: "Nothing is sent to a physical printer.",
268
- },
269
- "checklist-admin-orders-fulfillment-payouts-export-admin": {
270
- roles: ["admin"],
271
- startPage: "/admin/payouts",
272
- steps: [
273
- "Sign in as admin@letitrip.in / TempPass123!.",
274
- "Open /admin/payouts and read the rows, their statuses and their amounts.",
275
- "Note the total number of payouts.",
276
- "Trigger the export and read what the page does immediately.",
277
- "Navigate away and back and check progress is still reported.",
278
- "Open the finished file and compare its row count against the list.",
279
- "Read whether payout bank identifiers appear in the file and in the list.",
280
- ],
281
- expectedBehaviour: "The export runs as a background job rather than inside the request. Payout details are PII-encrypted at rest — the file legitimately needs identifiers to be actionable, the LIST does not, and where each is masked is worth recording separately.",
282
- expectedUiState: "The export returns immediately with a job accepted and its progress survives navigation. The file's row count matches the list. Record how identifiers appear in each.",
283
- endResult: "An export file exists. A request that hangs and then times out is the failure.",
284
- },
285
- "checklist-admin-orders-fulfillment-bulk-action-realtime-progress": {
286
- roles: ["admin"],
287
- startPage: "/admin/products",
288
- steps: [
289
- "Sign in as admin@letitrip.in / TempPass123!.",
290
- "Open /admin/products and tick several rows.",
291
- "Read the bulk action bar and the count it states against the number ticked.",
292
- "Choose a non-destructive bulk action and start it.",
293
- "Read what the page does immediately — whether it blocks or returns.",
294
- "Watch the progress indicator and read the completion summary.",
295
- "Navigate away and back mid-run, then read whether progress is still reported.",
296
- "Clear the selection and check the bar disappears.",
297
- ],
298
- expectedBehaviour: "A bulk action of unknown size is enqueued as a job and its progress streamed, rather than run inside the request where the function ceiling kills it. A bounded action over a small selection may legitimately run synchronously — what must not happen is a large run that hangs and times out with no summary.",
299
- expectedUiState: "The bar's count matches the ticked rows. The action reports progress and finishes with a summary naming how many succeeded and failed. Progress survives navigating away. Clearing the selection hides the bar without leaving an empty strip.",
300
- endResult: "The chosen action's effects persist. Pick a reversible action and undo it afterwards.",
301
- },
302
- "checklist-admin-orders-fulfillment-admin-order-list-item-and-detail": {
303
- roles: ["admin"],
304
- startPage: "/admin/orders",
305
- steps: [
306
- "Sign in as admin@letitrip.in / TempPass123!.",
307
- "Open /admin/orders and read every row's primary label.",
308
- "Check each names the item and shows a thumbnail rather than a bare order id.",
309
- "Find a multi-item order and read how its row summarises the contents.",
310
- "Open that row and check every item is listed with its own quantity and price.",
311
- "Check a bundle or grouped line is collapsed back into one line on the receipt.",
312
- ],
313
- expectedBehaviour: "Rows read from the denormalised item data already on the order. In the detail, a bundle or grouped line is stored as one row PER MEMBER — per-product tax codes are a GST invoice requirement and cancellations are per product — and the receipt collapses them back into the single line the buyer chose.",
314
- expectedUiState: "Rows name the product with a thumbnail and multi-item orders say so. The detail lists every item. A bundle appears as ONE line on the receipt rather than as its individual members.",
315
- endResult: "Read-only; nothing persists.",
316
- },
317
- "checklist-admin-orders-fulfillment-admin-order-detail-standalone-page": {
318
- roles: ["admin"],
319
- startPage: "/admin/orders",
320
- steps: [
321
- "Sign in as admin@letitrip.in / TempPass123!.",
322
- "Open /admin/orders and open an order's detail panel from the list.",
323
- "Write down every field label and section it shows.",
324
- "Note the order id and close the panel.",
325
- "Open that order's standalone detail page directly by URL.",
326
- "Write down every field and section and compare the two lists.",
327
- "Reload the standalone page and confirm it loads the same order.",
328
- ],
329
- expectedBehaviour: "The panel and the page render from one shared content component, so their fields match by construction. The standalone page exists because a panel cannot be bookmarked or sent to a colleague — and an order under dispute is exactly the record that gets shared.",
330
- expectedUiState: "Both show the same fields and sections with the same values, and the standalone page survives a reload. A field in one and not the other means a second copy of the component has appeared and the two will drift.",
331
- endResult: "Read-only; nothing persists.",
332
- },
333
- "checklist-admin-orders-fulfillment-admin-payout-detail-view": {
334
- roles: ["admin"],
335
- startPage: "/admin/payouts",
336
- steps: [
337
- "Sign in as admin@letitrip.in / TempPass123!.",
338
- "Open /admin/payouts and open a payout's detail.",
339
- "Read the gross, every deduction line and the net.",
340
- "Add the deductions and check gross minus them equals the net.",
341
- "Read the list of orders included.",
342
- "Read the payout's history entries and check each names an actor and a time.",
343
- "Read whether the seller's bank identifier is shown in full.",
344
- ],
345
- expectedBehaviour: "The breakdown reconciles exactly — a net figure alone cannot distinguish a correct deduction from a wrong one, and a payout is money leaving the platform. The status history is written through the repository's batch primitives against a running copy rather than the original snapshot, so a pending-to-processing-to-failed sequence records all three rather than only the last.",
346
- expectedUiState: "Gross minus the listed deductions equals the net to the paisa. The included orders are identifiable. History shows each transition with an actor. Bank identifiers are masked rather than shown in full.",
347
- expectedData: { deductionsReconcile: true },
348
- endResult: "Read-only; take no payout action.",
349
- },
350
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,129 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the admin/prize-draws-lotteries 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
- * 🛑 THIS IS THE PAGE WHERE A SAVE ONCE DESTROYED BUYERS. The lottery editor sent
10
- * a booked flag of false for every slot into a passthrough route, so the first
11
- * save of a live lottery marked every purchased slot available again and erased
12
- * who had bought them — with a success message and no error anywhere. The write
13
- * shape now cannot express booking state at all, and two cases here exist to keep
14
- * it that way.
15
- *
16
- * @tag domain:tester
17
- * @tag layer:seed
18
- * @tag pattern:none
19
- * @tag access:server-only
20
- * @tag consumers:seed-data/authored/index.ts
21
- * @tag sideEffects:none
22
- */
23
- export const authored = {
24
- "checklist-admin-prize-draws-lotteries-prizedraw-create": {
25
- roles: ["admin", "guest"],
26
- startPage: "/admin/products",
27
- steps: [
28
- "Sign in as admin@letitrip.in / TempPass123!.",
29
- "Create a prize draw titled 'QA Prize Draw admin-create' at 80 per entry, 25 entries, instant-reveal mode.",
30
- "Define at least two prizes with names and save.",
31
- "RELOAD the editor and read the mode, the per-entry price, the entry count and the prizes.",
32
- "Open the prize draw's public page at /prize-draws/{its id} in a private window and read the purchase panel's wording.",
33
- "Read whether the panel describes buying an ENTRY rather than buying the prize.",
34
- ],
35
- inputs: { title: "QA Prize Draw admin-create", pricePerEntry: 80, entryCount: 25 },
36
- expectedBehaviour: "A prize draw is created with a per-entry price, an entry pool and a reveal mode. The public wording is part of the case rather than a copy preference: a panel reading 'Buy now' beside a price misrepresents what the money buys, which is a consumer claim.",
37
- expectedUiState: "After the reload every field holds, including both prizes. The public panel names an entry and its per-entry price. A panel presenting the prize as the thing being purchased is the failure.",
38
- endResult: "Leave the draw in place — the next three cases read it.",
39
- },
40
- "checklist-admin-prize-draws-lotteries-prizedraw-reveal-winner": {
41
- roles: ["admin", "buyer"],
42
- startPage: "/admin/products",
43
- steps: [
44
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and buy one entry in 'QA Prize Draw admin-create' with Cash on Delivery.",
45
- "Read what the order page shows immediately after payment.",
46
- "Sign out and sign in as admin@letitrip.in / TempPass123!.",
47
- "Open /admin/prize-draws/{its id}/edit and read the entries and any reveal control.",
48
- "Trigger the reveal if the mode requires it, and read the assigned prize.",
49
- "Sign back in as the buyer and read the prize on their order.",
50
- "Compare the prize the admin sees against the one the buyer sees.",
51
- ],
52
- inputs: { entries: 1, pricePerEntry: 80 },
53
- expectedBehaviour: "The prize is drawn once with real randomness and then stored. Drawing per render would show a different prize on every load — which is why both sides are read and compared rather than either being trusted alone.",
54
- expectedUiState: "The buyer's order names one prize and the admin's view names the same one. Reloading either side shows the same prize. A prize that changes on reload was never persisted.",
55
- endResult: "One entry is sold and revealed. The admin and buyer views agreeing is the assertion.",
56
- },
57
- "checklist-admin-prize-draws-lotteries-prizedraw-lock-on-reveal": {
58
- roles: ["admin"],
59
- startPage: "/admin/products",
60
- steps: [
61
- "Sign in as admin@letitrip.in / TempPass123!.",
62
- "Open the editor for 'QA Prize Draw admin-create', now that a prize has been revealed.",
63
- "Attempt to change the prize list — rename a prize or remove one — and save.",
64
- "Read what happens.",
65
- "Attempt to change the per-entry price and save, then read what happens.",
66
- "RELOAD and read whether the revealed entry still names the same prize.",
67
- ],
68
- expectedBehaviour: "Once a prize has been revealed the draw's prize definitions lock. Editing them afterwards would rewrite what a buyer has already been told they won, and the buyer's own record is the one that binds.",
69
- expectedUiState: "The prize edit is refused, or the fields are visibly locked. After the reload the revealed entry still names the prize the buyer was shown. A silently accepted prize rename is the failure, and it is invisible unless the buyer's side is re-read.",
70
- endResult: "The revealed prize is unchanged. Delete the draw afterwards.",
71
- },
72
- "checklist-admin-prize-draws-lotteries-prizedraw-scam-guard": {
73
- roles: ["admin", "buyer"],
74
- startPage: "/admin/products",
75
- steps: [
76
- "Sign in as admin@letitrip.in / TempPass123!.",
77
- "Open /admin/prize-draws/prizedraw-beyblade-burst-collectors-draw/edit — a seeded draw that is still open — and read what the reveal mechanism is described as.",
78
- "Read whether the admin can choose WHO wins a specific prize.",
79
- "Read whether the admin can see, before revealing, which prize an entry will draw.",
80
- "Trigger a reveal and read whether the outcome was predictable from anything on screen beforehand.",
81
- "Open the prize draw's public page at /prize-draws/{its id} and read whether the odds or prize pool are disclosed to buyers.",
82
- ],
83
- expectedBehaviour: "The draw is not steerable. Prizes are assigned by cryptographic randomness at reveal, so an admin cannot pick a winner and cannot see the outcome in advance — a prize draw an operator can steer is a rigged one, whatever else the page does correctly.",
84
- expectedUiState: "No control assigns a specific prize to a specific entry or buyer. Nothing on the admin screen discloses an entry's outcome before it is revealed. The public page states the prize pool so buyers know what they are entering.",
85
- endResult: "Read-only apart from any reveal performed. Report exactly what an admin CAN influence — that is the substance of this case.",
86
- },
87
- "checklist-admin-prize-draws-lotteries-prizedraw-entries-view": {
88
- roles: ["admin"],
89
- startPage: "/admin/products",
90
- steps: [
91
- "Sign in as admin@letitrip.in / TempPass123!.",
92
- "Open /admin/prize-draws/prizedraw-beyblade-metal-closed-revealed/entries — a CLOSED and revealed draw, so it has entries and a recorded winner to read rather than an empty table.",
93
- "Check each row shows enough to identify the entry without opening it.",
94
- "Read whether buyer identities are shown in full or masked.",
95
- "Read the row actions offered and check at least one lets you VIEW the entry.",
96
- "Use any filter or search offered and confirm it changes the rows.",
97
- "Search zzzznope and confirm zero results.",
98
- ],
99
- inputs: { nonsenseQuery: "zzzznope" },
100
- expectedBehaviour: "An admin can read entries before acting on them. A row offering only mutations lets an admin act on a record they were never able to read, which is the dead-end shape this whole page family exists to close — and the nonsense query is what proves any search present is filtering rather than decorating.",
101
- expectedUiState: "Rows identify their entries and offer a view affordance, not only actions. Filters change the rows and 'zzzznope' returns none. Buyer identities are shown as the admin needs them but are not more exposed than the moderation task requires.",
102
- expectedData: { nonsenseResultCount: 0 },
103
- endResult: "Read-only. Delete 'QA Prize Draw admin-create' as the last action of this page.",
104
- },
105
- "checklist-admin-prize-draws-lotteries-lottery-edit-preserves-bookings": {
106
- roles: ["admin"],
107
- startPage: "/admin/lotteries",
108
- steps: [
109
- "Sign in as admin@letitrip.in / TempPass123!.",
110
- "Open /admin/lotteries and find event-pokemon-number-draw-july-2026 — 25 total slots, of which FIVE are already booked in the seed.",
111
- "Open its slot editor at /admin/lotteries/event-pokemon-number-draw-july-2026/edit.",
112
- "WRITE DOWN which slot numbers show as booked and the buyer named against each.",
113
- "Change something harmless and unrelated — rename ONE unbooked slot's prize — and save.",
114
- "RELOAD the editor and read the booked slots again.",
115
- "Compare every booked slot number and buyer against what you wrote down.",
116
- "Read the prices shown on the slots too: they must be the real stored amounts, not zeros.",
117
- "Restore the renamed slot and save again.",
118
- ],
119
- inputs: {
120
- eventId: "event-pokemon-number-draw-july-2026",
121
- totalSlots: 25,
122
- bookedSlots: 5,
123
- },
124
- expectedBehaviour: "Editing a lottery's prizes leaves its bookings alone. This is the one save in the application that has destroyed buyer data: the editor once sent isBooked:false and weight:0 for every slot and dropped the buyer fields entirely, and because the event PATCH was passthrough, the first save of a live lottery marked every purchased slot available again and erased who had bought them — with a 200 and no error anywhere. The write shape now cannot even express booking state, and the merge reattaches bookings by slotNumber rather than by array position, so deleting a slot cannot hand slot 7's buyer slot 8's prize.",
125
- expectedUiState: "All five booked slots are still booked after the reload, against the same buyers, and only the renamed prize differs. Prices read as their stored amounts. 🛑 EVERY SLOT SHOWING AS AVAILABLE is the catastrophic outcome and it looks like a successful save — the page re-renders, the toast is green, and only the buyers know. Every price reading zero is the same defect's twin, from seeding the form off the public projection, which strips price and weight.",
126
- expectedData: { bookedSlotsAfterSave: 5, slotsPricedZero: 0 },
127
- endResult: "The renamed slot is restored and all five bookings survive. If any booking is gone, STOP and report it immediately rather than continuing the batch — there is no undo, and the remaining cases on this page would be run against corrupted data.",
128
- },
129
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;