@envive-ai/react-hooks 0.2.6 → 0.2.7-arthur-2

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 (377) hide show
  1. package/dist/{NewOrgConfig-BfrGpiGk.js → NewOrgConfig-BVByiYPp.js} +2 -2
  2. package/dist/{NewOrgConfig-BxSuoP9C.cjs → NewOrgConfig-CInGtTV6.cjs} +2 -2
  3. package/dist/{SystemSettingsContext-Bkoiobdv.cjs → SystemSettingsContext-150LTxIk.cjs} +2 -2
  4. package/dist/{SystemSettingsContext-B8X_Dvw2.js → SystemSettingsContext-ei5B0dxO.js} +2 -2
  5. package/dist/{TrackComponentVisibleEvent-DMuX-byo.cjs → TrackComponentVisibleEvent-C7-nnBks.cjs} +2 -2
  6. package/dist/{TrackComponentVisibleEvent-DwfGqNTx.js → TrackComponentVisibleEvent-CuwSLbug.js} +2 -2
  7. package/dist/amplitudeContext-BBQ1ATA3.js +265 -0
  8. package/dist/amplitudeContext-BItT9HmT.js +1 -0
  9. package/dist/amplitudeContext-C-0-DDk3.cjs +287 -0
  10. package/dist/{amplitudeContext-B73xamNe.d.cts → amplitudeContext-CCVyp5RU.d.cts} +1 -1
  11. package/dist/amplitudeContext-DPtyVv3Q.cjs +0 -0
  12. package/dist/{amplitudeContext-CiO9T9c-.d.ts → amplitudeContext-DcRur97Z.d.ts} +1 -1
  13. package/dist/{api-bHEYmSiT.js → api-BWSsazAG.js} +3 -3
  14. package/dist/{api-BvygKEiX.cjs → api-DeW6rHj3.cjs} +3 -3
  15. package/dist/{app-Aqkm_SlS.js → app-C_Y-57U5.js} +3 -4
  16. package/dist/{app-BQw_-JGl.cjs → app-XEFPotoH.cjs} +3 -4
  17. package/dist/application/models/graphql/index.cjs +4 -3
  18. package/dist/application/models/graphql/index.d.cts +2 -2
  19. package/dist/application/models/graphql/index.d.ts +2 -2
  20. package/dist/application/models/graphql/index.js +3 -3
  21. package/dist/application/models/guards/api/index.cjs +3 -3
  22. package/dist/application/models/guards/api/index.d.cts +2 -1
  23. package/dist/application/models/guards/api/index.d.ts +2 -1
  24. package/dist/application/models/guards/api/index.js +3 -3
  25. package/dist/application/models/guards/utils.cjs +1 -1
  26. package/dist/application/models/guards/utils.d.cts +1 -1
  27. package/dist/application/models/guards/utils.d.ts +1 -1
  28. package/dist/application/models/guards/utils.js +1 -1
  29. package/dist/application/models/index.cjs +9 -9
  30. package/dist/application/models/index.d.cts +11 -10
  31. package/dist/application/models/index.d.ts +11 -10
  32. package/dist/application/models/index.js +8 -8
  33. package/dist/application/models/variantInfo/index.d.cts +1 -1
  34. package/dist/application/models/variantInfo/index.d.ts +1 -1
  35. package/dist/application/utils/index.cjs +17 -17
  36. package/dist/application/utils/index.d.cts +16 -15
  37. package/dist/application/utils/index.d.ts +16 -15
  38. package/dist/application/utils/index.js +17 -17
  39. package/dist/{atomStore-CmZbgQHc.cjs → atomStore-8ppNkJ_n.cjs} +1 -1
  40. package/dist/{atomStore-DEcDhiLp.js → atomStore-BLYJ2ZoQ.js} +1 -1
  41. package/dist/atoms/app/index.cjs +12 -12
  42. package/dist/atoms/app/index.d.cts +19 -18
  43. package/dist/atoms/app/index.d.ts +14 -13
  44. package/dist/atoms/app/index.js +12 -12
  45. package/dist/atoms/atomStore/index.cjs +1 -1
  46. package/dist/atoms/atomStore/index.js +1 -1
  47. package/dist/atoms/chat/index.cjs +18 -18
  48. package/dist/atoms/chat/index.d.cts +39 -38
  49. package/dist/atoms/chat/index.d.ts +13 -12
  50. package/dist/atoms/chat/index.js +18 -18
  51. package/dist/atoms/globalSearch/index.d.cts +5 -5
  52. package/dist/atoms/org/index.cjs +1 -1
  53. package/dist/atoms/org/index.d.cts +30 -29
  54. package/dist/atoms/org/index.d.ts +30 -29
  55. package/dist/atoms/org/index.js +1 -1
  56. package/dist/atoms/search/index.cjs +20 -20
  57. package/dist/atoms/search/index.d.cts +13 -12
  58. package/dist/atoms/search/index.d.ts +13 -12
  59. package/dist/atoms/search/index.js +20 -20
  60. package/dist/atoms/search/types.d.cts +4 -2
  61. package/dist/atoms/search/types.d.ts +4 -2
  62. package/dist/{cdnContext-Cd0Kvt6g.cjs → cdnContext-Bzqk0s2M.cjs} +2 -2
  63. package/dist/{cdnContext-D8pHA9gh.js → cdnContext-CTC-zBtx.js} +2 -2
  64. package/dist/{chat-U1IgKNij.js → chat-Bzay7QnI.js} +9 -9
  65. package/dist/{chat-DwNALtox.cjs → chat-Ckd1b_z_.cjs} +14 -8
  66. package/dist/{chat-EJbfGWRr.js → chat-ClvJ9xEj.js} +1 -1
  67. package/dist/{chat-CJ9D8n7g.cjs → chat-DCGriB7h.cjs} +1 -1
  68. package/dist/{chatElementDisplayLocation-DWmfNX_u.d.cts → chatElementDisplayLocation-B7vr33eG.d.cts} +1 -1
  69. package/dist/{chatElementDisplayLocation-DbmdwAff.d.ts → chatElementDisplayLocation-D4XF0UfI.d.ts} +1 -1
  70. package/dist/{chatSearch-DtE2cUQw.cjs → chatSearch-Bev4ZI8Z.cjs} +4 -4
  71. package/dist/{chatSearch-Bb2SMr9X.js → chatSearch-DNaGtQyx.js} +4 -4
  72. package/dist/{chatState-BXBN-12W.js → chatState-CcCvgmSM.js} +3 -3
  73. package/dist/{chatState-B3Dyrd9M.cjs → chatState-OkYPVghN.cjs} +3 -3
  74. package/dist/{commerce-api-DXbnMNT8.js → commerce-api-ml5fkEuk.js} +9 -8
  75. package/dist/{commerce-api-Dx02FCQ7.cjs → commerce-api-sQtLuwTh.cjs} +9 -8
  76. package/dist/{common-CuwWqIJ1.cjs → common-DQPvV_S_.cjs} +1 -1
  77. package/dist/{common-Df2bwzd2.js → common-c_4eX0qn.js} +1 -1
  78. package/dist/{components-QGCWJ26c.js → components-CDpaMUjK.js} +1 -1
  79. package/dist/{components-BCfFLf9X.cjs → components-DKwVHIjq.cjs} +1 -1
  80. package/dist/config/index.cjs +4 -4
  81. package/dist/config/index.d.cts +4 -4
  82. package/dist/config/index.d.ts +4 -4
  83. package/dist/config/index.js +4 -4
  84. package/dist/config/locators/components/chat/index.cjs +1 -1
  85. package/dist/config/locators/components/chat/index.d.cts +1 -1
  86. package/dist/config/locators/components/chat/index.d.ts +1 -1
  87. package/dist/config/locators/components/chat/index.js +1 -1
  88. package/dist/config/locators/components/common/index.cjs +1 -1
  89. package/dist/config/locators/components/common/index.d.cts +1 -1
  90. package/dist/config/locators/components/common/index.d.ts +1 -1
  91. package/dist/config/locators/components/common/index.js +1 -1
  92. package/dist/config/locators/components/index.cjs +1 -1
  93. package/dist/config/locators/components/index.d.cts +1 -1
  94. package/dist/config/locators/components/index.d.ts +1 -1
  95. package/dist/config/locators/components/index.js +1 -1
  96. package/dist/config/locators/index.cjs +4 -4
  97. package/dist/config/locators/index.d.cts +4 -4
  98. package/dist/config/locators/index.d.ts +4 -4
  99. package/dist/config/locators/index.js +4 -4
  100. package/dist/contexts/amplitudeContext/index.cjs +17 -16
  101. package/dist/contexts/amplitudeContext/index.d.cts +1 -1
  102. package/dist/contexts/amplitudeContext/index.d.ts +1 -1
  103. package/dist/contexts/amplitudeContext/index.js +17 -16
  104. package/dist/contexts/cdnContext/index.cjs +4 -4
  105. package/dist/contexts/cdnContext/index.js +4 -4
  106. package/dist/contexts/chatContext/index.cjs +25 -25
  107. package/dist/contexts/chatContext/index.d.cts +2 -2
  108. package/dist/contexts/chatContext/index.d.ts +2 -2
  109. package/dist/contexts/chatContext/index.js +25 -25
  110. package/dist/contexts/enviveConfigContext/index.cjs +4 -4
  111. package/dist/contexts/enviveConfigContext/index.d.cts +3 -3
  112. package/dist/contexts/enviveConfigContext/index.d.ts +3 -3
  113. package/dist/contexts/enviveConfigContext/index.js +4 -4
  114. package/dist/contexts/enviveCssContext/index.cjs +15 -15
  115. package/dist/contexts/enviveCssContext/index.js +15 -15
  116. package/dist/contexts/featureFlagContext/index.cjs +6 -6
  117. package/dist/contexts/featureFlagContext/index.d.cts +3 -3
  118. package/dist/contexts/featureFlagContext/index.d.ts +3 -3
  119. package/dist/contexts/featureFlagContext/index.js +6 -6
  120. package/dist/contexts/featureFlagServiceContext/index.cjs +3 -3
  121. package/dist/contexts/featureFlagServiceContext/index.d.cts +4 -4
  122. package/dist/contexts/featureFlagServiceContext/index.d.ts +4 -4
  123. package/dist/contexts/featureFlagServiceContext/index.js +3 -3
  124. package/dist/contexts/graphqlContext/index.cjs +11 -11
  125. package/dist/contexts/graphqlContext/index.d.cts +13 -12
  126. package/dist/contexts/graphqlContext/index.d.ts +13 -12
  127. package/dist/contexts/graphqlContext/index.js +11 -11
  128. package/dist/contexts/localStorageContext/index.cjs +2 -2
  129. package/dist/contexts/localStorageContext/index.js +2 -2
  130. package/dist/contexts/newOrgConfigContext/index.cjs +14 -14
  131. package/dist/contexts/newOrgConfigContext/index.d.cts +14 -13
  132. package/dist/contexts/newOrgConfigContext/index.d.ts +14 -13
  133. package/dist/contexts/newOrgConfigContext/index.js +14 -14
  134. package/dist/contexts/searchContext/index.cjs +18 -18
  135. package/dist/contexts/searchContext/index.d.cts +1 -1
  136. package/dist/contexts/searchContext/index.d.ts +1 -1
  137. package/dist/contexts/searchContext/index.js +18 -18
  138. package/dist/contexts/sessionStorageContext/index.cjs +2 -2
  139. package/dist/contexts/sessionStorageContext/index.js +2 -2
  140. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  141. package/dist/contexts/shopifyUrlContext/index.d.cts +3 -3
  142. package/dist/contexts/shopifyUrlContext/index.d.ts +3 -3
  143. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  144. package/dist/contexts/systemSettingsContext/index.cjs +4 -4
  145. package/dist/contexts/systemSettingsContext/index.d.cts +16 -15
  146. package/dist/contexts/systemSettingsContext/index.d.ts +16 -15
  147. package/dist/contexts/systemSettingsContext/index.js +4 -4
  148. package/dist/contexts/types.cjs +1 -1
  149. package/dist/contexts/types.d.cts +3 -3
  150. package/dist/contexts/types.d.ts +3 -3
  151. package/dist/contexts/types.js +1 -1
  152. package/dist/contexts/userIdentityContext/index.cjs +20 -20
  153. package/dist/contexts/userIdentityContext/index.d.cts +1 -1
  154. package/dist/contexts/userIdentityContext/index.d.ts +1 -1
  155. package/dist/contexts/userIdentityContext/index.js +20 -20
  156. package/dist/{enviveConfig-BlIkxiAF.js → enviveConfig-DV8F12B9.js} +3 -3
  157. package/dist/{enviveConfig-B42OJ8bK.cjs → enviveConfig-DZHdtLsQ.cjs} +3 -3
  158. package/dist/{enviveConfigContext-1_EivtCa.js → enviveConfigContext-BS7aNop5.js} +3 -3
  159. package/dist/{enviveConfigContext-Y1ahEAMe.cjs → enviveConfigContext-CTcHUIFP.cjs} +3 -3
  160. package/dist/{featureFlagServiceContext-D3Ge8GH5.cjs → featureFlagServiceContext-CJyYItqu.cjs} +3 -3
  161. package/dist/{featureFlagServiceContext-C5U0bshi.d.ts → featureFlagServiceContext-CpxlOkI9.d.ts} +2 -2
  162. package/dist/{featureFlagServiceContext-CAPrb4e_.js → featureFlagServiceContext-FBM6DdMJ.js} +3 -3
  163. package/dist/{featureFlagServiceContext-CiKWV306.d.cts → featureFlagServiceContext-p5UBwPM3.d.cts} +2 -2
  164. package/dist/{featureGates-D4Me_IZH.js → featureGates-KEwAL8p_.js} +1 -1
  165. package/dist/{featureGates-Bt_Y3kZ7.cjs → featureGates-qU_ulhpC.cjs} +1 -1
  166. package/dist/{frontendConfig-BiD1-j48.d.ts → frontendConfig-Cawh5iqv.d.ts} +6 -3
  167. package/dist/{frontendConfig-tVg0hsWZ.d.cts → frontendConfig-iZipB5FG.d.cts} +6 -3
  168. package/dist/graphql-CkxgqsXP.js +48 -0
  169. package/dist/graphql-i3dtpVTl.cjs +71 -0
  170. package/dist/{graphqlContext-Bf3E-V2T.d.cts → graphqlContext-BeyKU1Dr.d.cts} +2 -2
  171. package/dist/{graphqlContext-CpwAvnro.cjs → graphqlContext-CVbYIftg.cjs} +6 -6
  172. package/dist/{graphqlContext-CDeKzb46.d.ts → graphqlContext-DgkS-UX1.d.ts} +4 -4
  173. package/dist/{graphqlContext-dyWNSWNv.js → graphqlContext-DouNZbYo.js} +5 -5
  174. package/dist/hooks/AmplitudeOperations/index.cjs +18 -18
  175. package/dist/hooks/AmplitudeOperations/index.d.cts +1 -1
  176. package/dist/hooks/AmplitudeOperations/index.d.ts +1 -1
  177. package/dist/hooks/AmplitudeOperations/index.js +18 -18
  178. package/dist/hooks/AppDetails/index.cjs +15 -15
  179. package/dist/hooks/AppDetails/index.d.cts +12 -11
  180. package/dist/hooks/AppDetails/index.d.ts +12 -11
  181. package/dist/hooks/AppDetails/index.js +15 -15
  182. package/dist/hooks/CdnOperations/index.cjs +4 -4
  183. package/dist/hooks/CdnOperations/index.js +4 -4
  184. package/dist/hooks/ChatToggle/index.cjs +18 -18
  185. package/dist/hooks/ChatToggle/index.d.cts +1 -1
  186. package/dist/hooks/ChatToggle/index.d.ts +1 -1
  187. package/dist/hooks/ChatToggle/index.js +18 -18
  188. package/dist/hooks/ChatToggleAnalytics/index.cjs +19 -19
  189. package/dist/hooks/ChatToggleAnalytics/index.d.cts +1 -1
  190. package/dist/hooks/ChatToggleAnalytics/index.d.ts +1 -1
  191. package/dist/hooks/ChatToggleAnalytics/index.js +19 -19
  192. package/dist/hooks/CustomerSupportHandoff/index.cjs +1 -1
  193. package/dist/hooks/CustomerSupportHandoff/index.js +1 -1
  194. package/dist/hooks/Debounce/index.cjs +20 -2
  195. package/dist/hooks/Debounce/index.js +18 -2
  196. package/dist/hooks/ElementObserver/index.d.cts +1 -1
  197. package/dist/hooks/ElementObserver/index.d.ts +1 -1
  198. package/dist/hooks/GrabAndScroll/index.d.ts +2 -2
  199. package/dist/hooks/GraphQLConfig/index.cjs +12 -12
  200. package/dist/hooks/GraphQLConfig/index.d.cts +13 -12
  201. package/dist/hooks/GraphQLConfig/index.d.ts +13 -12
  202. package/dist/hooks/GraphQLConfig/index.js +12 -12
  203. package/dist/hooks/IdentifyUser/index.cjs +20 -20
  204. package/dist/hooks/IdentifyUser/index.js +20 -20
  205. package/dist/hooks/ImageResolver/index.cjs +10 -10
  206. package/dist/hooks/ImageResolver/index.js +10 -10
  207. package/dist/hooks/LocalStorageOperations/index.cjs +2 -2
  208. package/dist/hooks/LocalStorageOperations/index.js +2 -2
  209. package/dist/hooks/MessageFilter/index.cjs +8 -8
  210. package/dist/hooks/MessageFilter/index.d.cts +12 -11
  211. package/dist/hooks/MessageFilter/index.d.ts +12 -11
  212. package/dist/hooks/MessageFilter/index.js +8 -8
  213. package/dist/hooks/NewOrgConfig/index.cjs +15 -15
  214. package/dist/hooks/NewOrgConfig/index.d.cts +14 -13
  215. package/dist/hooks/NewOrgConfig/index.d.ts +14 -13
  216. package/dist/hooks/NewOrgConfig/index.js +15 -15
  217. package/dist/hooks/Search/index.cjs +323 -152
  218. package/dist/hooks/Search/index.d.cts +21 -17
  219. package/dist/hooks/Search/index.d.ts +21 -17
  220. package/dist/hooks/Search/index.js +323 -153
  221. package/dist/hooks/SearchOperations/index.cjs +18 -18
  222. package/dist/hooks/SearchOperations/index.d.cts +1 -1
  223. package/dist/hooks/SearchOperations/index.d.ts +1 -1
  224. package/dist/hooks/SearchOperations/index.js +18 -18
  225. package/dist/hooks/SessionStorageOperations/index.cjs +2 -2
  226. package/dist/hooks/SessionStorageOperations/index.js +2 -2
  227. package/dist/hooks/ShopifyUrlOperations/index.cjs +2 -2
  228. package/dist/hooks/ShopifyUrlOperations/index.d.cts +5 -5
  229. package/dist/hooks/ShopifyUrlOperations/index.d.ts +5 -5
  230. package/dist/hooks/ShopifyUrlOperations/index.js +2 -2
  231. package/dist/hooks/SystemSettingsContext/index.cjs +5 -5
  232. package/dist/hooks/SystemSettingsContext/index.d.cts +12 -11
  233. package/dist/hooks/SystemSettingsContext/index.d.ts +14 -13
  234. package/dist/hooks/SystemSettingsContext/index.js +5 -5
  235. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +17 -17
  236. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +2 -2
  237. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +2 -2
  238. package/dist/hooks/TrackComponentVisibleEvent/index.js +17 -17
  239. package/dist/hooks/UpdateAnalyticsProps/index.cjs +16 -16
  240. package/dist/hooks/UpdateAnalyticsProps/index.js +16 -16
  241. package/dist/hooks/utils.d.cts +12 -11
  242. package/dist/hooks/utils.d.ts +12 -11
  243. package/dist/{index-B6xpW8RG.d.ts → index--9_c4tze.d.ts} +1 -1
  244. package/dist/index-BEpDGqnz.d.cts +41 -0
  245. package/dist/{index-D31m6bPU.d.ts → index-BKvFVPUX.d.ts} +1 -1
  246. package/dist/{index-VwfWqyR_.d.ts → index-BNHIIgYk.d.ts} +1 -1
  247. package/dist/index-BUDrAxnl.d.ts +673 -0
  248. package/dist/{index-DzbkQtaK.d.cts → index-CCboEuTO.d.cts} +1 -1
  249. package/dist/{index-wFHfdr6p.d.ts → index-CMJM-3zV.d.ts} +5 -5
  250. package/dist/{index-FQjyuD3D.d.cts → index-COXkY78t.d.cts} +1 -1
  251. package/dist/{index--uHjE7L8.d.ts → index-D7htGSQC.d.ts} +1 -1
  252. package/dist/index-DM_5fh8c.d.ts +101 -0
  253. package/dist/index-DU7uw0ba.d.cts +101 -0
  254. package/dist/{index-Da1s8h5C.d.cts → index-DZtnHhlr.d.cts} +1 -1
  255. package/dist/{index-Bq39XSmY.d.cts → index-DpJzjjpi.d.cts} +34 -34
  256. package/dist/{index-DSRs6N6J.d.ts → index-Dtw-hJdt.d.ts} +1 -1
  257. package/dist/index-Dy3TTIOm.d.cts +673 -0
  258. package/dist/index-ErVcwUnR.d.ts +41 -0
  259. package/dist/{index-Cyq5HiC0.d.cts → index-OkKEOL6H.d.cts} +1 -1
  260. package/dist/{index-9NE86em3.d.cts → index-hAqp0oYb.d.cts} +1 -1
  261. package/dist/interceptors/index.d.cts +13 -12
  262. package/dist/interceptors/index.d.ts +13 -12
  263. package/dist/interceptors/types.d.cts +12 -11
  264. package/dist/interceptors/types.d.ts +12 -11
  265. package/dist/{localStorageContext-DAOJ4be4.js → localStorageContext-CqcSvg2H.js} +2 -2
  266. package/dist/{localStorageContext-C5giszHn.cjs → localStorageContext-DiLfSsqL.cjs} +2 -2
  267. package/dist/{locators-C2fWd-74.js → locators-BMQGmGLq.js} +1 -1
  268. package/dist/{locators-Cx3q6Z_h.cjs → locators-DxYdak1F.cjs} +1 -1
  269. package/dist/{logger-0D_8Ip2L.cjs → logger-TBIl4uIH.cjs} +1 -1
  270. package/dist/{logger-Co0IA3k5.js → logger-W3lqg-4b.js} +1 -1
  271. package/dist/models-CWOgrLCm.js +1284 -0
  272. package/dist/models-DqdLOi2I.cjs +1519 -0
  273. package/dist/{newOrgConfigContext-BMvcqPzD.cjs → newOrgConfigContext-BIDz4ZuO.cjs} +4 -4
  274. package/dist/{newOrgConfigContext-DOdUxlOE.d.cts → newOrgConfigContext-CJI3tsVV.d.cts} +2 -2
  275. package/dist/{newOrgConfigContext-BVyJExeW.d.ts → newOrgConfigContext-CKn7B2rj.d.ts} +2 -2
  276. package/dist/{newOrgConfigContext-6mlrvr1w.js → newOrgConfigContext-u_9UPNcX.js} +4 -4
  277. package/dist/{nodeSelector-DYhDUi7v.d.ts → nodeSelector-B5NfnUHv.d.ts} +1 -1
  278. package/dist/{nodeSelector-B3bPtEjX.d.cts → nodeSelector-vKB44CDB.d.cts} +1 -1
  279. package/dist/{orgAnalyticsConfig-Bm23fw4s.cjs → orgAnalyticsConfig-CGEQtAFs.cjs} +1 -1
  280. package/dist/{orgAnalyticsConfig-CpBmga08.js → orgAnalyticsConfig-i4jozLBB.js} +1 -1
  281. package/dist/responseGenerics-D9bS-Dd6.d.ts +148 -0
  282. package/dist/{index-Cx9e-fRi.d.ts → responseGenerics-DWLV09cQ.d.cts} +4 -40
  283. package/dist/{search-y-ioX5Mz.d.cts → search-6RrxBXD6.d.cts} +1 -1
  284. package/dist/{search-D-UfTjB7.cjs → search-CTVX9gC6.cjs} +2 -2
  285. package/dist/{search-B1OtJe8Z.d.ts → search-DrJiCT7d.d.ts} +1 -1
  286. package/dist/{search-yawhMv22.js → search-NgNrXNS9.js} +2 -2
  287. package/dist/{search-filter-types-BxaNSLs_.d.cts → search-filter-types-BItKtezf.d.cts} +1 -1
  288. package/dist/{search-filter-types-OI9zH3E_.d.ts → search-filter-types-CGFhksO3.d.ts} +1 -1
  289. package/dist/{searchContext-CFuwIIW-.cjs → searchContext-CnDXkawZ.cjs} +6 -6
  290. package/dist/{searchContext-CiqOqTJL.js → searchContext-DtRmshTA.js} +6 -6
  291. package/dist/{sessionStorageContext-BmCW091C.cjs → sessionStorageContext-1Ks_d4Z0.cjs} +2 -2
  292. package/dist/{sessionStorageContext-CNxkqJi1.js → sessionStorageContext-CDcl7NVl.js} +2 -2
  293. package/dist/{shopifyUrlContext-aZMwCfbJ.cjs → shopifyUrlContext-CxjV3qvH.cjs} +2 -2
  294. package/dist/{shopifyUrlContext-BXbI0PIG.js → shopifyUrlContext-D2btP_lY.js} +2 -2
  295. package/dist/{spiffyWidgets-CvEJIuJx.d.ts → spiffyWidgets-CR6F7FRE.d.ts} +1 -1
  296. package/dist/{spiffyWidgets-BuS00VaQ.d.cts → spiffyWidgets-eNbU1gMc.d.cts} +1 -1
  297. package/dist/{systemSettingsContext-SozpUezn.cjs → systemSettingsContext-BejoGzzB.cjs} +2 -2
  298. package/dist/{systemSettingsContext-kz6yyiFF.js → systemSettingsContext-C4dtZ0uZ.js} +2 -2
  299. package/dist/{test-types-DRhqHXw-.d.ts → test-types-BEml_bm3.d.ts} +1 -1
  300. package/dist/{test-types-ThQiO_cc.d.cts → test-types-Dsu8RJZu.d.cts} +1 -1
  301. package/dist/types/index.d.cts +2 -2
  302. package/dist/types/index.d.ts +2 -2
  303. package/dist/{types-r0Z6CwyF.d.ts → types-4LQ7LUCk.d.ts} +2 -2
  304. package/dist/types-BegmH0S1.d.ts +60 -0
  305. package/dist/types-BuvXXGxE.cjs +1 -1
  306. package/dist/types-CtUb63bt.js +76 -0
  307. package/dist/{types-zQGBI-Yo.d.cts → types-DFsSqmWx.d.cts} +2 -2
  308. package/dist/types-DWorwfS-.d.cts +60 -0
  309. package/dist/types-DXnG1tV0.js +1 -1
  310. package/dist/types-UUvB6h05.cjs +106 -0
  311. package/dist/types.d.cts +3 -3
  312. package/dist/types.d.ts +3 -3
  313. package/dist/{unsupportedProductExceptions-B4f9aLjr.cjs → unsupportedProductExceptions-B0yx2bHK.cjs} +1 -1
  314. package/dist/{unsupportedProductExceptions-DlmraJm8.js → unsupportedProductExceptions-Cs66ngs3.js} +1 -1
  315. package/dist/{urlsParser-DhcEZLc_.cjs → urlsParser-COzMdJaX.cjs} +1 -1
  316. package/dist/{urlsParser-DLCzibqU.js → urlsParser-DxjoLj98.js} +1 -1
  317. package/dist/{useAmplitudeOperations-D0nvIYlt.cjs → useAmplitudeOperations-BJXD9v2u.cjs} +2 -2
  318. package/dist/{useAmplitudeOperations-Dhks3PgF.js → useAmplitudeOperations-Dym0Ker8.js} +2 -2
  319. package/dist/{useAppDetails-qyaQIbWE.js → useAppDetails-Dmh16bWE.js} +4 -4
  320. package/dist/{useAppDetails-B9sGmpJ3.cjs → useAppDetails-DsAZ1xQn.cjs} +4 -4
  321. package/dist/{useGraphQLConfig-CgKEfVYc.cjs → useGraphQLConfig-B3DlwmGg.cjs} +2 -2
  322. package/dist/{useGraphQLConfig-BccQUaeW.js → useGraphQLConfig-DSRaDTdT.js} +2 -2
  323. package/dist/{userIdentityContext-BKLedN4R.d.ts → userIdentityContext-C6kApbuk.d.ts} +1 -1
  324. package/dist/userIdentityContext-DF3atBFE.js +119 -0
  325. package/dist/userIdentityContext-DpQTduhF.cjs +136 -0
  326. package/dist/{userIdentityContext-D2oFVFzo.d.cts → userIdentityContext-kU1PIo8K.d.cts} +1 -1
  327. package/dist/{utils-DFPt3FSw.js → utils-B7KTAEmV.js} +4 -4
  328. package/dist/{utils-BhyZiDrE.d.ts → utils-BRkGP1eb.d.ts} +1 -1
  329. package/dist/{utils-B7PAzB_M.d.cts → utils-CBD4g2Nc.d.cts} +4 -4
  330. package/dist/{utils-C6imnLBo.cjs → utils-CDw74BCO.cjs} +1 -1
  331. package/dist/{utils-Cazq8Q3q.cjs → utils-CcC2jZRi.cjs} +4 -4
  332. package/dist/{utils-B3x_9JTY.d.cts → utils-DCrwX6FT.d.cts} +1 -1
  333. package/dist/{utils-C4ci_t0-.js → utils-DIvMgPe8.js} +1 -1
  334. package/dist/{utils-B1v0iXs3.d.ts → utils-QKFAbPT6.d.ts} +4 -4
  335. package/package.json +7 -2
  336. package/src/application/commerce-api.ts +2 -0
  337. package/src/application/models/graphql/index.ts +1 -0
  338. package/src/atoms/app/index.ts +1 -1
  339. package/src/atoms/search/productRetrievalAPI.ts +70 -0
  340. package/src/atoms/search/productRetrievalAdapter.ts +25 -0
  341. package/src/atoms/search/types.ts +13 -0
  342. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +525 -0
  343. package/src/contexts/amplitudeContext/amplitudeContext.tsx +5 -2
  344. package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +790 -0
  345. package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +775 -0
  346. package/src/contexts/newOrgConfigContext/__tests__/newOrgConfigContext.test.tsx +495 -0
  347. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +806 -0
  348. package/src/contexts/systemSettingsContext/__tests__/systemSettingsContext.test.tsx +506 -0
  349. package/src/contexts/types.ts +3 -0
  350. package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -5
  351. package/src/hooks/Search/useRecommendedProducts.ts +48 -0
  352. package/src/hooks/Search/useSearch.tsx +89 -182
  353. package/src/hooks/Search/useSearchInput.ts +263 -0
  354. package/src/types/FilterAttribute.ts +35 -0
  355. package/dist/amplitudeContext-DOqL2Vn8.js +0 -264
  356. package/dist/amplitudeContext-ZTQMvVTV.cjs +0 -286
  357. package/dist/graphql-OkhsP4ir.js +0 -36
  358. package/dist/graphql-l4dQrsA6.cjs +0 -53
  359. package/dist/index-Bmub8e38.d.cts +0 -98
  360. package/dist/index-CG3P8xE1.d.cts +0 -676
  361. package/dist/index-CiWEYzXl.d.cts +0 -184
  362. package/dist/index-D2VaMPA3.d.ts +0 -98
  363. package/dist/index-fUsw_Mea.d.ts +0 -676
  364. package/dist/models-CkJ-wg9Q.cjs +0 -1537
  365. package/dist/models-UHOY0ak5.js +0 -1296
  366. package/dist/types-BwNrLPSZ.cjs +0 -106
  367. package/dist/types-CKMMb_gX.d.cts +0 -51
  368. package/dist/types-D3uOF0Oy.js +0 -76
  369. package/dist/types-DZPuBnHe.d.ts +0 -51
  370. package/dist/useDebounce-BZDtUAQ8.cjs +0 -26
  371. package/dist/useDebounce-ueblXZI-.js +0 -19
  372. package/dist/userIdentityContext-Cb6lLv6t.cjs +0 -132
  373. package/dist/userIdentityContext-O_DHHPTN.js +0 -115
  374. /package/dist/{AmplitudeOperations-ChZWcSsc.js → AmplitudeOperations-C-ieCm9m.js} +0 -0
  375. /package/dist/{AmplitudeOperations-JggIc1zD.cjs → AmplitudeOperations-p7APchq9.cjs} +0 -0
  376. /package/dist/{index-RcVcRKH7.d.cts → index-A0HvA68Y.d.cts} +0 -0
  377. /package/dist/{index-mHc9_XC3.d.ts → index-DNVvRcKu.d.ts} +0 -0
@@ -0,0 +1,495 @@
1
+ import React from "react";
2
+ import { render, screen, waitFor } from "@testing-library/react";
3
+ import { Provider } from "jotai";
4
+ import { useAtomValue } from "jotai";
5
+ import {
6
+ NewOrgConfigProvider,
7
+ useNewOrgConfigContext,
8
+ } from "../newOrgConfigContext";
9
+ import { EnviveConfigProvider } from "src/contexts/enviveConfigContext/enviveConfigContext";
10
+ import { GraphQLProvider } from "src/contexts/graphqlContext/graphqlContext";
11
+ import { LocalStorageProvider } from "src/contexts/localStorageContext/localStorageContext";
12
+ import { newOrgConfigAtom } from "src/atoms/org/newOrgConfigAtom";
13
+ import { orgShortNameAtom } from "src/atoms/envive/enviveConfig";
14
+ import { useColorsAndFrontendConfig } from "src/hooks/GraphQLConfig/useGraphQLConfig";
15
+
16
+ // Mock the useColorsAndFrontendConfig hook
17
+ vi.mock("src/hooks/GraphQLConfig/useGraphQLConfig", () => ({
18
+ useColorsAndFrontendConfig: vi.fn(),
19
+ }));
20
+
21
+ // Component that uses the useNewOrgConfigContext hook
22
+ const MockNewOrgConfigComponent: React.FC = () => {
23
+ const config = useNewOrgConfigContext();
24
+
25
+ return (
26
+ <div data-testid="new-org-config-component">
27
+ <div data-testid="loading">{config.loading.toString()}</div>
28
+ <div data-testid="has-error">{config.error ? "true" : "false"}</div>
29
+ <div data-testid="has-colors-config">
30
+ {config.colorsConfig ? "true" : "false"}
31
+ </div>
32
+ <div data-testid="has-frontend-config">
33
+ {config.frontendConfig ? "true" : "false"}
34
+ </div>
35
+ {config.error && (
36
+ <div data-testid="error-message">{config.error.message}</div>
37
+ )}
38
+ </div>
39
+ );
40
+ };
41
+
42
+ // Component that reads the atom directly to verify it's set
43
+ const AtomReaderComponent: React.FC = () => {
44
+ const config = useAtomValue(newOrgConfigAtom);
45
+ const orgShortName = useAtomValue(orgShortNameAtom);
46
+
47
+ return (
48
+ <div data-testid="atom-reader">
49
+ <div data-testid="atom-org-short-name">{orgShortName || "not-set"}</div>
50
+ <div data-testid="atom-has-config">
51
+ {config ? "has-config" : "no-config"}
52
+ </div>
53
+ {config && (
54
+ <>
55
+ <div data-testid="atom-has-colors">
56
+ {config.colorsConfig ? "true" : "false"}
57
+ </div>
58
+ <div data-testid="atom-has-frontend">
59
+ {config.frontendConfig ? "true" : "false"}
60
+ </div>
61
+ </>
62
+ )}
63
+ </div>
64
+ );
65
+ };
66
+
67
+ // Wrapper component to ensure providers are in correct order
68
+ const TestWrapper: React.FC<{
69
+ children: React.ReactNode;
70
+ orgShortName?: string;
71
+ mockHookData?: {
72
+ data?: any;
73
+ loading?: boolean;
74
+ error?: Error | null;
75
+ };
76
+ }> = ({ children, orgShortName, mockHookData = {} }) => {
77
+ // Mock the hook
78
+ const mockUseColorsAndFrontendConfig = useColorsAndFrontendConfig as any;
79
+ mockUseColorsAndFrontendConfig.mockReturnValue({
80
+ data: mockHookData.data || {},
81
+ loading: mockHookData.loading ?? false,
82
+ error: mockHookData.error || null,
83
+ refetch: vi.fn(),
84
+ });
85
+
86
+ return (
87
+ <Provider>
88
+ <EnviveConfigProvider
89
+ identifyingPrefix="test"
90
+ orgShortName={orgShortName}
91
+ baseUrl="https://test-api.example.com"
92
+ orgLevelApiKey="test-key"
93
+ >
94
+ <LocalStorageProvider>
95
+ <GraphQLProvider>
96
+ <NewOrgConfigProvider>{children}</NewOrgConfigProvider>
97
+ </GraphQLProvider>
98
+ </LocalStorageProvider>
99
+ </EnviveConfigProvider>
100
+ </Provider>
101
+ );
102
+ };
103
+
104
+ describe("NewOrgConfigProvider", () => {
105
+ beforeEach(() => {
106
+ vi.clearAllMocks();
107
+ });
108
+
109
+ describe("useNewOrgConfigContext Hook Integration", () => {
110
+ it("should provide context through useNewOrgConfigContext hook", async () => {
111
+ const mockData = {
112
+ colorsConfig: { accentPrimary: "#FF0000" },
113
+ frontendConfig: { merchantOverrideCss: "test-css" },
114
+ };
115
+
116
+ render(
117
+ <TestWrapper orgShortName="test-org" mockHookData={{ data: mockData }}>
118
+ <MockNewOrgConfigComponent />
119
+ </TestWrapper>
120
+ );
121
+
122
+ await waitFor(() => {
123
+ expect(screen.getByTestId("loading")).toHaveTextContent("false");
124
+ });
125
+
126
+ expect(screen.getByTestId("new-org-config-component")).toBeInTheDocument();
127
+ expect(screen.getByTestId("has-colors-config")).toHaveTextContent("true");
128
+ expect(screen.getByTestId("has-frontend-config")).toHaveTextContent("true");
129
+ });
130
+
131
+ it("should throw error when used outside of NewOrgConfigProvider", () => {
132
+ const consoleSpy = vi
133
+ .spyOn(console, "error")
134
+ .mockImplementation(() => {});
135
+
136
+ const TestComponent: React.FC = () => {
137
+ try {
138
+ useNewOrgConfigContext();
139
+ return <div data-testid="no-error">No Error</div>;
140
+ } catch (error: any) {
141
+ return <div data-testid="error">{error.message}</div>;
142
+ }
143
+ };
144
+
145
+ render(
146
+ <Provider>
147
+ <TestComponent />
148
+ </Provider>
149
+ );
150
+
151
+ expect(screen.getByTestId("error")).toHaveTextContent(
152
+ "useNewOrgConfigContext must be used within a NewOrgConfigProvider"
153
+ );
154
+
155
+ consoleSpy.mockRestore();
156
+ });
157
+ });
158
+
159
+ describe("Loading State", () => {
160
+ it("should show loading state when hook is loading", async () => {
161
+ render(
162
+ <TestWrapper
163
+ orgShortName="test-org"
164
+ mockHookData={{ loading: true, data: {} }}
165
+ >
166
+ <MockNewOrgConfigComponent />
167
+ </TestWrapper>
168
+ );
169
+
170
+ await waitFor(() => {
171
+ expect(screen.getByTestId("loading")).toHaveTextContent("true");
172
+ });
173
+ });
174
+
175
+ it("should show loading state when orgShortName is not available", async () => {
176
+ render(
177
+ <TestWrapper mockHookData={{ data: {}, loading: false }}>
178
+ <MockNewOrgConfigComponent />
179
+ </TestWrapper>
180
+ );
181
+
182
+ await waitFor(() => {
183
+ expect(screen.getByTestId("loading")).toHaveTextContent("true");
184
+ });
185
+ });
186
+
187
+ it("should not show loading when orgShortName is available and hook is not loading", async () => {
188
+ render(
189
+ <TestWrapper
190
+ orgShortName="test-org"
191
+ mockHookData={{ data: {}, loading: false }}
192
+ >
193
+ <MockNewOrgConfigComponent />
194
+ </TestWrapper>
195
+ );
196
+
197
+ await waitFor(() => {
198
+ expect(screen.getByTestId("loading")).toHaveTextContent("false");
199
+ });
200
+ });
201
+ });
202
+
203
+ describe("Error Handling", () => {
204
+ it("should handle errors from useColorsAndFrontendConfig", async () => {
205
+ const testError = new Error("Failed to fetch config");
206
+
207
+ render(
208
+ <TestWrapper
209
+ orgShortName="test-org"
210
+ mockHookData={{ error: testError, loading: false, data: {} }}
211
+ >
212
+ <MockNewOrgConfigComponent />
213
+ </TestWrapper>
214
+ );
215
+
216
+ await waitFor(() => {
217
+ expect(screen.getByTestId("has-error")).toHaveTextContent("true");
218
+ });
219
+
220
+ expect(screen.getByTestId("error-message")).toHaveTextContent(
221
+ "Failed to fetch config"
222
+ );
223
+ expect(screen.getByTestId("loading")).toHaveTextContent("false");
224
+ });
225
+
226
+ it("should return error state without throwing", async () => {
227
+ const testError = new Error("Network error");
228
+
229
+ render(
230
+ <TestWrapper
231
+ orgShortName="test-org"
232
+ mockHookData={{ error: testError, loading: false, data: {} }}
233
+ >
234
+ <MockNewOrgConfigComponent />
235
+ </TestWrapper>
236
+ );
237
+
238
+ await waitFor(() => {
239
+ expect(screen.getByTestId("has-error")).toHaveTextContent("true");
240
+ });
241
+
242
+ // Component should still render without crashing
243
+ expect(screen.getByTestId("new-org-config-component")).toBeInTheDocument();
244
+ });
245
+ });
246
+
247
+ describe("Atom Integration", () => {
248
+ it("should set newOrgConfigAtom when data is available", async () => {
249
+ const mockData = {
250
+ colorsConfig: { accentPrimary: "#FF0000", accentSecondary: "#00FF00" },
251
+ frontendConfig: { merchantOverrideCss: "test-css" },
252
+ };
253
+
254
+ render(
255
+ <TestWrapper
256
+ orgShortName="test-org"
257
+ mockHookData={{ data: mockData, loading: false }}
258
+ >
259
+ <AtomReaderComponent />
260
+ </TestWrapper>
261
+ );
262
+
263
+ await waitFor(() => {
264
+ expect(screen.getByTestId("atom-org-short-name")).toHaveTextContent(
265
+ "test-org"
266
+ );
267
+ });
268
+
269
+ await waitFor(() => {
270
+ expect(screen.getByTestId("atom-has-config")).toHaveTextContent(
271
+ "has-config"
272
+ );
273
+ }, { timeout: 2000 });
274
+
275
+ expect(screen.getByTestId("atom-has-colors")).toHaveTextContent("true");
276
+ expect(screen.getByTestId("atom-has-frontend")).toHaveTextContent("true");
277
+ });
278
+
279
+ it("should not set atom when orgShortName is missing", async () => {
280
+ const mockData = {
281
+ colorsConfig: { accentPrimary: "#FF0000" },
282
+ frontendConfig: {},
283
+ };
284
+
285
+ render(
286
+ <TestWrapper mockHookData={{ data: mockData, loading: false }}>
287
+ <AtomReaderComponent />
288
+ </TestWrapper>
289
+ );
290
+
291
+ await waitFor(() => {
292
+ expect(screen.getByTestId("atom-org-short-name")).toHaveTextContent(
293
+ "not-set"
294
+ );
295
+ });
296
+
297
+ // Atom should not be set when orgShortName is missing
298
+ await waitFor(() => {
299
+ const hasConfig = screen.getByTestId("atom-has-config").textContent;
300
+ // The atom might be set to null or not set at all
301
+ expect(hasConfig).toBeDefined();
302
+ });
303
+ });
304
+
305
+ it("should not set atom when loading", async () => {
306
+ const mockData = {
307
+ colorsConfig: { accentPrimary: "#FF0000" },
308
+ };
309
+
310
+ render(
311
+ <TestWrapper
312
+ orgShortName="test-org"
313
+ mockHookData={{ data: mockData, loading: true }}
314
+ >
315
+ <AtomReaderComponent />
316
+ </TestWrapper>
317
+ );
318
+
319
+ await waitFor(() => {
320
+ expect(screen.getByTestId("atom-org-short-name")).toHaveTextContent(
321
+ "test-org"
322
+ );
323
+ });
324
+
325
+ // When loading, the atom setter might not be called
326
+ // The context value will have loading: true
327
+ });
328
+
329
+ it("should set atom with initial data", async () => {
330
+ const mockData = {
331
+ colorsConfig: { accentPrimary: "#FF0000" },
332
+ frontendConfig: { merchantOverrideCss: "test-css" },
333
+ };
334
+
335
+ render(
336
+ <TestWrapper
337
+ orgShortName="test-org"
338
+ mockHookData={{ data: mockData, loading: false }}
339
+ >
340
+ <AtomReaderComponent />
341
+ </TestWrapper>
342
+ );
343
+
344
+ await waitFor(() => {
345
+ expect(screen.getByTestId("atom-has-config")).toHaveTextContent(
346
+ "has-config"
347
+ );
348
+ });
349
+
350
+ expect(screen.getByTestId("atom-has-colors")).toHaveTextContent("true");
351
+ expect(screen.getByTestId("atom-has-frontend")).toHaveTextContent("true");
352
+ });
353
+ });
354
+
355
+ describe("Context Value", () => {
356
+ it("should provide colorsConfig and frontendConfig in context", async () => {
357
+ const mockData = {
358
+ colorsConfig: {
359
+ accentPrimary: "#FF0000",
360
+ accentSecondary: "#00FF00",
361
+ backgroundDark: "#000000",
362
+ },
363
+ frontendConfig: {
364
+ merchantOverrideCss: "test-css",
365
+ },
366
+ };
367
+
368
+ render(
369
+ <TestWrapper
370
+ orgShortName="test-org"
371
+ mockHookData={{ data: mockData, loading: false }}
372
+ >
373
+ <MockNewOrgConfigComponent />
374
+ </TestWrapper>
375
+ );
376
+
377
+ await waitFor(() => {
378
+ expect(screen.getByTestId("has-colors-config")).toHaveTextContent(
379
+ "true"
380
+ );
381
+ });
382
+
383
+ expect(screen.getByTestId("has-frontend-config")).toHaveTextContent(
384
+ "true"
385
+ );
386
+ });
387
+
388
+ it("should provide empty config when data is empty", async () => {
389
+ render(
390
+ <TestWrapper
391
+ orgShortName="test-org"
392
+ mockHookData={{ data: {}, loading: false }}
393
+ >
394
+ <MockNewOrgConfigComponent />
395
+ </TestWrapper>
396
+ );
397
+
398
+ await waitFor(() => {
399
+ expect(screen.getByTestId("loading")).toHaveTextContent("false");
400
+ });
401
+
402
+ expect(screen.getByTestId("has-colors-config")).toHaveTextContent(
403
+ "false"
404
+ );
405
+ expect(screen.getByTestId("has-frontend-config")).toHaveTextContent(
406
+ "false"
407
+ );
408
+ });
409
+
410
+ it("should merge loading and error states with config data", async () => {
411
+ const mockData = {
412
+ colorsConfig: { accentPrimary: "#FF0000" },
413
+ };
414
+
415
+ render(
416
+ <TestWrapper
417
+ orgShortName="test-org"
418
+ mockHookData={{ data: mockData, loading: false }}
419
+ >
420
+ <MockNewOrgConfigComponent />
421
+ </TestWrapper>
422
+ );
423
+
424
+ await waitFor(() => {
425
+ expect(screen.getByTestId("loading")).toHaveTextContent("false");
426
+ expect(screen.getByTestId("has-error")).toHaveTextContent("false");
427
+ expect(screen.getByTestId("has-colors-config")).toHaveTextContent(
428
+ "true"
429
+ );
430
+ });
431
+ });
432
+ });
433
+
434
+ describe("FeatureFlagServiceProvider Integration", () => {
435
+ it("should wrap children with FeatureFlagServiceProvider", async () => {
436
+ const TestChild: React.FC = () => {
437
+ // This should work because FeatureFlagServiceProvider is wrapping it
438
+ return <div data-testid="child">Child Component</div>;
439
+ };
440
+
441
+ render(
442
+ <TestWrapper
443
+ orgShortName="test-org"
444
+ mockHookData={{ data: {}, loading: false }}
445
+ >
446
+ <TestChild />
447
+ </TestWrapper>
448
+ );
449
+
450
+ await waitFor(() => {
451
+ expect(screen.getByTestId("child")).toBeInTheDocument();
452
+ });
453
+
454
+ // Verify the child is rendered (which means FeatureFlagServiceProvider is working)
455
+ expect(screen.getByTestId("child")).toHaveTextContent("Child Component");
456
+ });
457
+ });
458
+
459
+ describe("Context Value Memoization", () => {
460
+ it("should maintain stable context value references", async () => {
461
+ let contextValue1: any;
462
+ let contextValue2: any;
463
+
464
+ const Component1: React.FC = () => {
465
+ const context = useNewOrgConfigContext();
466
+ contextValue1 = context;
467
+ return <div>Component1</div>;
468
+ };
469
+
470
+ const Component2: React.FC = () => {
471
+ const context = useNewOrgConfigContext();
472
+ contextValue2 = context;
473
+ return <div>Component2</div>;
474
+ };
475
+
476
+ render(
477
+ <TestWrapper
478
+ orgShortName="test-org"
479
+ mockHookData={{ data: {}, loading: false }}
480
+ >
481
+ <Component1 />
482
+ <Component2 />
483
+ </TestWrapper>
484
+ );
485
+
486
+ await waitFor(() => {
487
+ expect(contextValue1).toBeDefined();
488
+ expect(contextValue2).toBeDefined();
489
+ // Both components should receive the same context instance
490
+ expect(contextValue1).toBe(contextValue2);
491
+ });
492
+ });
493
+ });
494
+ });
495
+