@bigbinary/neeto-commons-frontend 3.0.6 → 3.0.7

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 (385) hide show
  1. package/{constants.cjs.js → cjs/constants/index.js} +11 -10
  2. package/cjs/constants/index.js.map +1 -0
  3. package/cjs/cypress-utils/commands.js +276 -0
  4. package/cjs/cypress-utils/commands.js.map +1 -0
  5. package/cjs/cypress-utils/constants/index.js +14 -0
  6. package/cjs/cypress-utils/constants/index.js.map +1 -0
  7. package/cjs/cypress-utils/constants/routes.js +40 -0
  8. package/cjs/cypress-utils/constants/routes.js.map +1 -0
  9. package/cjs/cypress-utils/constants/selectors/common.js +103 -0
  10. package/cjs/cypress-utils/constants/selectors/common.js.map +1 -0
  11. package/cjs/cypress-utils/constants/selectors/editor.js +29 -0
  12. package/cjs/cypress-utils/constants/selectors/editor.js.map +1 -0
  13. package/cjs/cypress-utils/constants/selectors/ipRestriction.js +19 -0
  14. package/cjs/cypress-utils/constants/selectors/ipRestriction.js.map +1 -0
  15. package/cjs/cypress-utils/constants/selectors/login.js +21 -0
  16. package/cjs/cypress-utils/constants/selectors/login.js.map +1 -0
  17. package/cjs/cypress-utils/constants/selectors/member.js +65 -0
  18. package/cjs/cypress-utils/constants/selectors/member.js.map +1 -0
  19. package/cjs/cypress-utils/constants/selectors/navigation.js +28 -0
  20. package/cjs/cypress-utils/constants/selectors/navigation.js.map +1 -0
  21. package/cjs/cypress-utils/constants/selectors/roles.js +24 -0
  22. package/cjs/cypress-utils/constants/selectors/roles.js.map +1 -0
  23. package/cjs/cypress-utils/constants/selectors/signUp.js +23 -0
  24. package/cjs/cypress-utils/constants/selectors/signUp.js.map +1 -0
  25. package/cjs/cypress-utils/constants/selectors/tags.js +31 -0
  26. package/cjs/cypress-utils/constants/selectors/tags.js.map +1 -0
  27. package/cjs/cypress-utils/constants/texts/common.js +40 -0
  28. package/cjs/cypress-utils/constants/texts/common.js.map +1 -0
  29. package/cjs/cypress-utils/constants/texts/member.js +68 -0
  30. package/cjs/cypress-utils/constants/texts/member.js.map +1 -0
  31. package/cjs/cypress-utils/constants/texts/navigation.js +24 -0
  32. package/cjs/cypress-utils/constants/texts/navigation.js.map +1 -0
  33. package/cjs/cypress-utils/constants/texts/roles.js +25 -0
  34. package/cjs/cypress-utils/constants/texts/roles.js.map +1 -0
  35. package/cjs/cypress-utils/constants/texts/signUp.js +14 -0
  36. package/cjs/cypress-utils/constants/texts/signUp.js.map +1 -0
  37. package/cjs/cypress-utils/constants/texts/tags.js +28 -0
  38. package/cjs/cypress-utils/constants/texts/tags.js.map +1 -0
  39. package/cjs/cypress-utils/fixtures/fake.js +177 -0
  40. package/cjs/cypress-utils/fixtures/fake.js.map +1 -0
  41. package/cjs/cypress-utils/index.js +226 -0
  42. package/cjs/cypress-utils/index.js.map +1 -0
  43. package/cjs/cypress-utils/utils/authentication.js +45 -0
  44. package/cjs/cypress-utils/utils/authentication.js.map +1 -0
  45. package/cjs/cypress-utils/utils/common.js +92 -0
  46. package/cjs/cypress-utils/utils/common.js.map +1 -0
  47. package/cjs/cypress-utils/utils/date.js +28 -0
  48. package/cjs/cypress-utils/utils/date.js.map +1 -0
  49. package/cjs/cypress-utils/utils/email.js +165 -0
  50. package/cjs/cypress-utils/utils/email.js.map +1 -0
  51. package/cjs/cypress-utils/utils/member.js +352 -0
  52. package/cjs/cypress-utils/utils/member.js.map +1 -0
  53. package/cjs/cypress-utils/utils/navigation.js +208 -0
  54. package/cjs/cypress-utils/utils/navigation.js.map +1 -0
  55. package/cjs/cypress-utils/utils/organization.js +109 -0
  56. package/cjs/cypress-utils/utils/organization.js.map +1 -0
  57. package/cjs/cypress-utils/utils/validation.js +17 -0
  58. package/cjs/cypress-utils/utils/validation.js.map +1 -0
  59. package/cjs/initializers/axios/index.js +199 -0
  60. package/cjs/initializers/axios/index.js.map +1 -0
  61. package/cjs/initializers/axios/paramsSerializer.js +27 -0
  62. package/cjs/initializers/axios/paramsSerializer.js.map +1 -0
  63. package/cjs/initializers/constants.js +17 -0
  64. package/cjs/initializers/constants.js.map +1 -0
  65. package/cjs/initializers/globalProps.js +15 -0
  66. package/cjs/initializers/globalProps.js.map +1 -0
  67. package/cjs/initializers/i18n.js +68 -0
  68. package/cjs/initializers/i18n.js.map +1 -0
  69. package/cjs/initializers/index.js +51 -0
  70. package/cjs/initializers/index.js.map +1 -0
  71. package/cjs/initializers/logger.js +17 -0
  72. package/cjs/initializers/logger.js.map +1 -0
  73. package/cjs/initializers/reactDevTools.js +26 -0
  74. package/cjs/initializers/reactDevTools.js.map +1 -0
  75. package/cjs/initializers/utils/customFormatters.js +43 -0
  76. package/cjs/initializers/utils/customFormatters.js.map +1 -0
  77. package/cjs/initializers/utils/customPostProcessors.js +21 -0
  78. package/cjs/initializers/utils/customPostProcessors.js.map +1 -0
  79. package/cjs/initializers/utils.js +37 -0
  80. package/cjs/initializers/utils.js.map +1 -0
  81. package/cjs/react-utils/BrowserPushNotifications/devices.js +26 -0
  82. package/cjs/react-utils/BrowserPushNotifications/devices.js.map +1 -0
  83. package/cjs/react-utils/BrowserPushNotifications/index.js +19 -0
  84. package/cjs/react-utils/BrowserPushNotifications/index.js.map +1 -0
  85. package/cjs/react-utils/BrowserPushNotifications/pushHelper.js +116 -0
  86. package/cjs/react-utils/BrowserPushNotifications/pushHelper.js.map +1 -0
  87. package/cjs/react-utils/BrowserPushNotifications/registerServiceWorker.js +146 -0
  88. package/cjs/react-utils/BrowserPushNotifications/registerServiceWorker.js.map +1 -0
  89. package/cjs/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js +153 -0
  90. package/cjs/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js.map +1 -0
  91. package/cjs/react-utils/HoneybadgerErrorBoundary/constants.js +9 -0
  92. package/cjs/react-utils/HoneybadgerErrorBoundary/constants.js.map +1 -0
  93. package/cjs/react-utils/HoneybadgerErrorBoundary/index.js +59 -0
  94. package/cjs/react-utils/HoneybadgerErrorBoundary/index.js.map +1 -0
  95. package/cjs/react-utils/HoneybadgerErrorBoundary/utils.js +17 -0
  96. package/cjs/react-utils/HoneybadgerErrorBoundary/utils.js.map +1 -0
  97. package/cjs/react-utils/PrivateRoute.js +80 -0
  98. package/cjs/react-utils/PrivateRoute.js.map +1 -0
  99. package/cjs/react-utils/constants/constants.js +11 -0
  100. package/cjs/react-utils/constants/constants.js.map +1 -0
  101. package/cjs/react-utils/constants/index.js +28 -0
  102. package/cjs/react-utils/constants/index.js.map +1 -0
  103. package/cjs/react-utils/constants/query.js +11 -0
  104. package/cjs/react-utils/constants/query.js.map +1 -0
  105. package/cjs/react-utils/index.js +242 -0
  106. package/cjs/react-utils/index.js.map +1 -0
  107. package/cjs/react-utils/metaClick.js +16 -0
  108. package/cjs/react-utils/metaClick.js.map +1 -0
  109. package/cjs/react-utils/useDebounce.js +28 -0
  110. package/cjs/react-utils/useDebounce.js.map +1 -0
  111. package/cjs/react-utils/useDisplayErrorPage.js +23 -0
  112. package/cjs/react-utils/useDisplayErrorPage.js.map +1 -0
  113. package/cjs/react-utils/useFetchNeetoApps/apis/neeto_apps.js +17 -0
  114. package/cjs/react-utils/useFetchNeetoApps/apis/neeto_apps.js.map +1 -0
  115. package/cjs/react-utils/useFetchNeetoApps/index.js +14 -0
  116. package/cjs/react-utils/useFetchNeetoApps/index.js.map +1 -0
  117. package/cjs/react-utils/useFetchNeetoApps/useFetchNeetoApps.js +27 -0
  118. package/cjs/react-utils/useFetchNeetoApps/useFetchNeetoApps.js.map +1 -0
  119. package/cjs/react-utils/useFieldSubmit.js +33 -0
  120. package/cjs/react-utils/useFieldSubmit.js.map +1 -0
  121. package/cjs/react-utils/useFuncDebounce.js +27 -0
  122. package/cjs/react-utils/useFuncDebounce.js.map +1 -0
  123. package/cjs/react-utils/useHotKeys/constants.js +36 -0
  124. package/cjs/react-utils/useHotKeys/constants.js.map +1 -0
  125. package/cjs/react-utils/useHotKeys/index.js +14 -0
  126. package/cjs/react-utils/useHotKeys/index.js.map +1 -0
  127. package/cjs/react-utils/useHotKeys/useHotKeys.js +65 -0
  128. package/cjs/react-utils/useHotKeys/useHotKeys.js.map +1 -0
  129. package/cjs/react-utils/useHotKeys/utils.js +37 -0
  130. package/cjs/react-utils/useHotKeys/utils.js.map +1 -0
  131. package/cjs/react-utils/useIsElementVisibleInDom/index.js +14 -0
  132. package/cjs/react-utils/useIsElementVisibleInDom/index.js.map +1 -0
  133. package/cjs/react-utils/useIsElementVisibleInDom/useForceUpdate.js +23 -0
  134. package/cjs/react-utils/useIsElementVisibleInDom/useForceUpdate.js.map +1 -0
  135. package/cjs/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js +34 -0
  136. package/cjs/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js.map +1 -0
  137. package/cjs/react-utils/useKeyboardShortcutsPaneState.js +36 -0
  138. package/cjs/react-utils/useKeyboardShortcutsPaneState.js.map +1 -0
  139. package/cjs/react-utils/useLocalStorage.js +39 -0
  140. package/cjs/react-utils/useLocalStorage.js.map +1 -0
  141. package/cjs/react-utils/useMutationWithInvalidation.js +33 -0
  142. package/cjs/react-utils/useMutationWithInvalidation.js.map +1 -0
  143. package/cjs/react-utils/useOnClickOutside.js +32 -0
  144. package/cjs/react-utils/useOnClickOutside.js.map +1 -0
  145. package/cjs/react-utils/usePersistedQuery.js +59 -0
  146. package/cjs/react-utils/usePersistedQuery.js.map +1 -0
  147. package/cjs/react-utils/usePrevious.js +17 -0
  148. package/cjs/react-utils/usePrevious.js.map +1 -0
  149. package/cjs/react-utils/useQueryParams.js +15 -0
  150. package/cjs/react-utils/useQueryParams.js.map +1 -0
  151. package/cjs/react-utils/useRegisterNavigationCheckpoint.js +43 -0
  152. package/cjs/react-utils/useRegisterNavigationCheckpoint.js.map +1 -0
  153. package/cjs/react-utils/useStateWithDependency.js +23 -0
  154. package/cjs/react-utils/useStateWithDependency.js.map +1 -0
  155. package/cjs/react-utils/useTimer.js +51 -0
  156. package/cjs/react-utils/useTimer.js.map +1 -0
  157. package/cjs/react-utils/useUpdateEffect.js +21 -0
  158. package/cjs/react-utils/useUpdateEffect.js.map +1 -0
  159. package/cjs/react-utils/withImmutableActions.js +29 -0
  160. package/cjs/react-utils/withImmutableActions.js.map +1 -0
  161. package/cjs/react-utils/withT.js +14 -0
  162. package/cjs/react-utils/withT.js.map +1 -0
  163. package/cjs/react-utils/withTitle.js +44 -0
  164. package/cjs/react-utils/withTitle.js.map +1 -0
  165. package/cjs/utils/axios.js +17 -0
  166. package/cjs/utils/axios.js.map +1 -0
  167. package/cjs/utils/createSubscription.js +22 -0
  168. package/cjs/utils/createSubscription.js.map +1 -0
  169. package/cjs/utils/currencyFormat.js +50 -0
  170. package/cjs/utils/currencyFormat.js.map +1 -0
  171. package/cjs/utils/datetime.js +69 -0
  172. package/cjs/utils/datetime.js.map +1 -0
  173. package/cjs/utils/general.js +193 -0
  174. package/cjs/utils/general.js.map +1 -0
  175. package/cjs/utils/index.js +72 -0
  176. package/cjs/utils/index.js.map +1 -0
  177. package/cjs/utils/permissions.js +25 -0
  178. package/cjs/utils/permissions.js.map +1 -0
  179. package/configs/scripts/getPkgTranslations.js +1 -1
  180. package/configs/scripts/jsdoc-builder/constants.mjs +1 -1
  181. package/configs/scripts/jsdoc-builder/index.mjs +1 -1
  182. package/configs/webpack/rules.js +2 -1
  183. package/constants/index.js +13 -0
  184. package/constants/index.js.map +1 -0
  185. package/cypress-utils/commands.js +268 -0
  186. package/cypress-utils/commands.js.map +1 -0
  187. package/cypress-utils/constants/index.js +7 -0
  188. package/cypress-utils/constants/index.js.map +1 -0
  189. package/cypress-utils/constants/routes.js +33 -0
  190. package/cypress-utils/constants/routes.js.map +1 -0
  191. package/cypress-utils/constants/selectors/common.js +94 -0
  192. package/cypress-utils/constants/selectors/common.js.map +1 -0
  193. package/cypress-utils/constants/selectors/editor.js +22 -0
  194. package/cypress-utils/constants/selectors/editor.js.map +1 -0
  195. package/cypress-utils/constants/selectors/ipRestriction.js +12 -0
  196. package/cypress-utils/constants/selectors/ipRestriction.js.map +1 -0
  197. package/cypress-utils/constants/selectors/login.js +14 -0
  198. package/cypress-utils/constants/selectors/login.js.map +1 -0
  199. package/cypress-utils/constants/selectors/member.js +56 -0
  200. package/cypress-utils/constants/selectors/member.js.map +1 -0
  201. package/cypress-utils/constants/selectors/navigation.js +20 -0
  202. package/cypress-utils/constants/selectors/navigation.js.map +1 -0
  203. package/cypress-utils/constants/selectors/roles.js +17 -0
  204. package/cypress-utils/constants/selectors/roles.js.map +1 -0
  205. package/cypress-utils/constants/selectors/signUp.js +16 -0
  206. package/cypress-utils/constants/selectors/signUp.js.map +1 -0
  207. package/cypress-utils/constants/selectors/tags.js +23 -0
  208. package/cypress-utils/constants/selectors/tags.js.map +1 -0
  209. package/cypress-utils/constants/texts/common.js +33 -0
  210. package/cypress-utils/constants/texts/common.js.map +1 -0
  211. package/cypress-utils/constants/texts/member.js +59 -0
  212. package/cypress-utils/constants/texts/member.js.map +1 -0
  213. package/cypress-utils/constants/texts/navigation.js +16 -0
  214. package/cypress-utils/constants/texts/navigation.js.map +1 -0
  215. package/cypress-utils/constants/texts/roles.js +18 -0
  216. package/cypress-utils/constants/texts/roles.js.map +1 -0
  217. package/cypress-utils/constants/texts/signUp.js +7 -0
  218. package/cypress-utils/constants/texts/signUp.js.map +1 -0
  219. package/cypress-utils/constants/texts/tags.js +21 -0
  220. package/cypress-utils/constants/texts/tags.js.map +1 -0
  221. package/cypress-utils/fixtures/fake.js +171 -0
  222. package/cypress-utils/fixtures/fake.js.map +1 -0
  223. package/cypress-utils/index.js +21 -0
  224. package/cypress-utils/index.js.map +1 -0
  225. package/cypress-utils/utils/authentication.js +38 -0
  226. package/cypress-utils/utils/authentication.js.map +1 -0
  227. package/cypress-utils/utils/common.js +75 -0
  228. package/cypress-utils/utils/common.js.map +1 -0
  229. package/cypress-utils/utils/date.js +20 -0
  230. package/cypress-utils/utils/date.js.map +1 -0
  231. package/cypress-utils/utils/email.js +156 -0
  232. package/cypress-utils/utils/email.js.map +1 -0
  233. package/cypress-utils/utils/member.js +344 -0
  234. package/cypress-utils/utils/member.js.map +1 -0
  235. package/cypress-utils/utils/navigation.js +200 -0
  236. package/cypress-utils/utils/navigation.js.map +1 -0
  237. package/cypress-utils/utils/organization.js +102 -0
  238. package/cypress-utils/utils/organization.js.map +1 -0
  239. package/cypress-utils/utils/validation.js +10 -0
  240. package/cypress-utils/utils/validation.js.map +1 -0
  241. package/initializers/axios/index.js +192 -0
  242. package/initializers/axios/index.js.map +1 -0
  243. package/initializers/axios/paramsSerializer.js +18 -0
  244. package/initializers/axios/paramsSerializer.js.map +1 -0
  245. package/initializers/constants.js +8 -0
  246. package/initializers/constants.js.map +1 -0
  247. package/initializers/globalProps.js +8 -0
  248. package/initializers/globalProps.js.map +1 -0
  249. package/initializers/i18n.js +61 -0
  250. package/initializers/i18n.js.map +1 -0
  251. package/initializers/index.js +28 -0
  252. package/initializers/index.js.map +1 -0
  253. package/initializers/logger.js +10 -0
  254. package/initializers/logger.js.map +1 -0
  255. package/initializers/reactDevTools.js +19 -0
  256. package/initializers/reactDevTools.js.map +1 -0
  257. package/initializers/utils/customFormatters.js +34 -0
  258. package/initializers/utils/customFormatters.js.map +1 -0
  259. package/initializers/utils/customPostProcessors.js +14 -0
  260. package/initializers/utils/customPostProcessors.js.map +1 -0
  261. package/initializers/utils.js +29 -0
  262. package/initializers/utils.js.map +1 -0
  263. package/package.json +51 -158
  264. package/pure.d.ts +384 -0
  265. package/react-utils/BrowserPushNotifications/devices.js +18 -0
  266. package/react-utils/BrowserPushNotifications/devices.js.map +1 -0
  267. package/react-utils/BrowserPushNotifications/index.js +1 -0
  268. package/react-utils/BrowserPushNotifications/index.js.map +1 -0
  269. package/react-utils/BrowserPushNotifications/pushHelper.js +107 -0
  270. package/react-utils/BrowserPushNotifications/pushHelper.js.map +1 -0
  271. package/react-utils/BrowserPushNotifications/registerServiceWorker.js +137 -0
  272. package/react-utils/BrowserPushNotifications/registerServiceWorker.js.map +1 -0
  273. package/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js +144 -0
  274. package/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js.map +1 -0
  275. package/react-utils/HoneybadgerErrorBoundary/constants.js +1 -0
  276. package/react-utils/HoneybadgerErrorBoundary/constants.js.map +1 -0
  277. package/react-utils/HoneybadgerErrorBoundary/index.js +52 -0
  278. package/react-utils/HoneybadgerErrorBoundary/index.js.map +1 -0
  279. package/react-utils/HoneybadgerErrorBoundary/utils.js +9 -0
  280. package/react-utils/HoneybadgerErrorBoundary/utils.js.map +1 -0
  281. package/react-utils/PrivateRoute.js +72 -0
  282. package/react-utils/PrivateRoute.js.map +1 -0
  283. package/react-utils/constants/constants.js +3 -0
  284. package/react-utils/constants/constants.js.map +1 -0
  285. package/react-utils/constants/index.js +3 -0
  286. package/react-utils/constants/index.js.map +1 -0
  287. package/react-utils/constants/query.js +4 -0
  288. package/react-utils/constants/query.js.map +1 -0
  289. package/react-utils/index.js +33 -0
  290. package/react-utils/index.js.map +1 -0
  291. package/react-utils/metaClick.js +8 -0
  292. package/react-utils/metaClick.js.map +1 -0
  293. package/react-utils/useDebounce.js +20 -0
  294. package/react-utils/useDebounce.js.map +1 -0
  295. package/react-utils/useDisplayErrorPage.js +15 -0
  296. package/react-utils/useDisplayErrorPage.js.map +1 -0
  297. package/react-utils/useFetchNeetoApps/apis/neeto_apps.js +9 -0
  298. package/react-utils/useFetchNeetoApps/apis/neeto_apps.js.map +1 -0
  299. package/react-utils/useFetchNeetoApps/index.js +1 -0
  300. package/react-utils/useFetchNeetoApps/index.js.map +1 -0
  301. package/react-utils/useFetchNeetoApps/useFetchNeetoApps.js +19 -0
  302. package/react-utils/useFetchNeetoApps/useFetchNeetoApps.js.map +1 -0
  303. package/react-utils/useFieldSubmit.js +26 -0
  304. package/react-utils/useFieldSubmit.js.map +1 -0
  305. package/react-utils/useFuncDebounce.js +20 -0
  306. package/react-utils/useFuncDebounce.js.map +1 -0
  307. package/react-utils/useHotKeys/constants.js +25 -0
  308. package/react-utils/useHotKeys/constants.js.map +1 -0
  309. package/react-utils/useHotKeys/index.js +1 -0
  310. package/react-utils/useHotKeys/index.js.map +1 -0
  311. package/react-utils/useHotKeys/useHotKeys.js +57 -0
  312. package/react-utils/useHotKeys/useHotKeys.js.map +1 -0
  313. package/react-utils/useHotKeys/utils.js +29 -0
  314. package/react-utils/useHotKeys/utils.js.map +1 -0
  315. package/react-utils/useIsElementVisibleInDom/index.js +1 -0
  316. package/react-utils/useIsElementVisibleInDom/index.js.map +1 -0
  317. package/react-utils/useIsElementVisibleInDom/useForceUpdate.js +15 -0
  318. package/react-utils/useIsElementVisibleInDom/useForceUpdate.js.map +1 -0
  319. package/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js +26 -0
  320. package/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js.map +1 -0
  321. package/react-utils/useKeyboardShortcutsPaneState.js +29 -0
  322. package/react-utils/useKeyboardShortcutsPaneState.js.map +1 -0
  323. package/react-utils/useLocalStorage.js +31 -0
  324. package/react-utils/useLocalStorage.js.map +1 -0
  325. package/react-utils/useMutationWithInvalidation.js +25 -0
  326. package/react-utils/useMutationWithInvalidation.js.map +1 -0
  327. package/react-utils/useOnClickOutside.js +25 -0
  328. package/react-utils/useOnClickOutside.js.map +1 -0
  329. package/react-utils/usePersistedQuery.js +51 -0
  330. package/react-utils/usePersistedQuery.js.map +1 -0
  331. package/react-utils/usePrevious.js +10 -0
  332. package/react-utils/usePrevious.js.map +1 -0
  333. package/react-utils/useQueryParams.js +8 -0
  334. package/react-utils/useQueryParams.js.map +1 -0
  335. package/react-utils/useRegisterNavigationCheckpoint.js +35 -0
  336. package/react-utils/useRegisterNavigationCheckpoint.js.map +1 -0
  337. package/react-utils/useStateWithDependency.js +15 -0
  338. package/react-utils/useStateWithDependency.js.map +1 -0
  339. package/react-utils/useTimer.js +43 -0
  340. package/react-utils/useTimer.js.map +1 -0
  341. package/react-utils/useUpdateEffect.js +14 -0
  342. package/react-utils/useUpdateEffect.js.map +1 -0
  343. package/react-utils/withImmutableActions.js +22 -0
  344. package/react-utils/withImmutableActions.js.map +1 -0
  345. package/react-utils/withT.js +7 -0
  346. package/react-utils/withT.js.map +1 -0
  347. package/react-utils/withTitle.js +36 -0
  348. package/react-utils/withTitle.js.map +1 -0
  349. package/react-utils.d.ts +14 -2
  350. package/utils/axios.js +10 -0
  351. package/utils/axios.js.map +1 -0
  352. package/utils/createSubscription.js +15 -0
  353. package/utils/createSubscription.js.map +1 -0
  354. package/utils/currencyFormat.js +42 -0
  355. package/utils/currencyFormat.js.map +1 -0
  356. package/utils/datetime.js +60 -0
  357. package/utils/datetime.js.map +1 -0
  358. package/utils/general.js +172 -0
  359. package/utils/general.js.map +1 -0
  360. package/utils/index.js +7 -0
  361. package/utils/index.js.map +1 -0
  362. package/utils/permissions.js +16 -0
  363. package/utils/permissions.js.map +1 -0
  364. package/utils.d.ts +18 -2
  365. package/README.md +0 -173
  366. package/constants.cjs.js.map +0 -1
  367. package/constants.js +0 -15
  368. package/constants.js.map +0 -1
  369. package/cypress-utils.cjs.js +0 -1819
  370. package/cypress-utils.cjs.js.map +0 -1
  371. package/cypress-utils.js +0 -1773
  372. package/cypress-utils.js.map +0 -1
  373. package/initializers.cjs.js +0 -2648
  374. package/initializers.cjs.js.map +0 -1
  375. package/initializers.js +0 -2634
  376. package/initializers.js.map +0 -1
  377. package/react-utils.cjs.js +0 -4915
  378. package/react-utils.cjs.js.map +0 -1
  379. package/react-utils.js +0 -4860
  380. package/react-utils.js.map +0 -1
  381. package/utils.cjs.js +0 -1280
  382. package/utils.cjs.js.map +0 -1
  383. package/utils.js +0 -1248
  384. package/utils.js.map +0 -1
  385. /package/{src/translations → translations}/en.json +0 -0
package/cypress-utils.js DELETED
@@ -1,1773 +0,0 @@
1
- import { faker } from '@faker-js/faker';
2
- import dayjs from 'dayjs';
3
-
4
- function _typeof(obj) {
5
- "@babel/helpers - typeof";
6
-
7
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
8
- return typeof obj;
9
- } : function (obj) {
10
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
11
- }, _typeof(obj);
12
- }
13
-
14
- function _toPrimitive(input, hint) {
15
- if (_typeof(input) !== "object" || input === null) return input;
16
- var prim = input[Symbol.toPrimitive];
17
- if (prim !== undefined) {
18
- var res = prim.call(input, hint || "default");
19
- if (_typeof(res) !== "object") return res;
20
- throw new TypeError("@@toPrimitive must return a primitive value.");
21
- }
22
- return (hint === "string" ? String : Number)(input);
23
- }
24
-
25
- function _toPropertyKey(arg) {
26
- var key = _toPrimitive(arg, "string");
27
- return _typeof(key) === "symbol" ? key : String(key);
28
- }
29
-
30
- function _defineProperty(obj, key, value) {
31
- key = _toPropertyKey(key);
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value: value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
41
- }
42
- return obj;
43
- }
44
-
45
- function _arrayLikeToArray(arr, len) {
46
- if (len == null || len > arr.length) len = arr.length;
47
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
48
- return arr2;
49
- }
50
-
51
- function _arrayWithoutHoles(arr) {
52
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
53
- }
54
-
55
- function _iterableToArray(iter) {
56
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
57
- }
58
-
59
- function _unsupportedIterableToArray(o, minLen) {
60
- if (!o) return;
61
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
62
- var n = Object.prototype.toString.call(o).slice(8, -1);
63
- if (n === "Object" && o.constructor) n = o.constructor.name;
64
- if (n === "Map" || n === "Set") return Array.from(o);
65
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
66
- }
67
-
68
- function _nonIterableSpread() {
69
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
70
- }
71
-
72
- function _toConsumableArray(arr) {
73
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
74
- }
75
-
76
- var environment = {
77
- development: "development",
78
- staging: "staging",
79
- review: "review",
80
- production: "production"
81
- };
82
-
83
- function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
84
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
85
- var getCountFromText = function getCountFromText(countText) {
86
- return Number(countText.text().trim().split(" ")[0]);
87
- };
88
- var env = {
89
- isDevelopment: Cypress.env("configFile") === environment.development,
90
- isReview: Cypress.env("configFile") === environment.review,
91
- isStaging: Cypress.env("configFile") === environment.staging,
92
- isProduction: Cypress.env("configFile") === environment.production
93
- };
94
- env.isNightlyRun = env.isProduction || env.isStaging;
95
- env.tld = env.isProduction ? "com" : "net";
96
- var isStagingEnv = Cypress.env("configFile") === environment.staging;
97
- var dataCy = function dataCy(value) {
98
- var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
99
- return "[data-cy='".concat(value, "']").concat(suffix);
100
- };
101
- var dataTestId = function dataTestId(value) {
102
- var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
103
- return "[data-testid='".concat(value, "']").concat(suffix);
104
- };
105
- var setListCount = function setListCount(countSelector, alias) {
106
- return cy.get(countSelector).then(function (countText) {
107
- cy.wrap(getCountFromText(countText)).as(alias);
108
- });
109
- };
110
- var verifyListCount = function verifyListCount(countSelector, count) {
111
- return cy.get(countSelector).then(function (countText) {
112
- cy.wrap(getCountFromText(countText)).should("eq", count);
113
- });
114
- };
115
- var getUrl = function getUrl(path) {
116
- return "/api/v1/".concat(path);
117
- };
118
- var getTestTitle = function getTestTitle() {
119
- var ctx = Cypress.mocha.getRunner().suite.ctx;
120
- return ctx.currentTest.parent.title;
121
- };
122
- var joinHyphenCase = function joinHyphenCase() {
123
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
124
- args[_key] = arguments[_key];
125
- }
126
- return args.join(" ").replace(/\s+/g, "-").toLowerCase();
127
- };
128
- var hyphenize = function hyphenize(input) {
129
- var fallbackString = "";
130
- if (typeof input === "number") return String(input);
131
- if (input && typeof input === "string" && input.replace) {
132
- return input.replace(/[\s_]/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/-+/g, "-").toLowerCase();
133
- }
134
- return fallbackString;
135
- };
136
- var initializeCredentials = function initializeCredentials(stagingData) {
137
- cy.task("getGlobalState").then(function (state) {
138
- var newState = _objectSpread$2(_objectSpread$2({}, state), {}, {
139
- businessName: state.businessName || stagingData.businessName,
140
- currentUserName: state.currentUserName || stagingData.currentUserName,
141
- email: state.email || stagingData.email,
142
- firstName: state.firstName || stagingData.firstName,
143
- lastName: state.lastName || stagingData.lastName,
144
- subdomainName: state.subdomainName || stagingData.subdomainName,
145
- skipSetup: state.skipSetup
146
- });
147
- if (isStagingEnv) {
148
- var baseUrl = "https://".concat(newState.subdomainName, ".").concat(stagingData.domain);
149
- Cypress.config("baseUrl", baseUrl);
150
- }
151
- cy.task("bulkUpdateGlobalState", newState);
152
- });
153
- };
154
-
155
- var allPath = function allPath() {
156
- return "".concat(Cypress.config("baseUrl"), "/**");
157
- };
158
- var tld = env.isProduction ? "com" : "net";
159
- var requestApis = {
160
- countries: getUrl("countries"),
161
- signUp: getUrl("signups/**"),
162
- subdomainAvailability: getUrl("subdomain_availability/**"),
163
- teamMembers: {
164
- all: "/team_members*/**",
165
- bulkUpdate: "/team_members/teams/bulk_update",
166
- index: "/team_members/teams",
167
- show: function show(id) {
168
- return "/team_members/teams/".concat(id);
169
- }
170
- },
171
- allChatPath: "https://*.neetochat.".concat(tld).concat(getUrl("**")),
172
- myProfilePath: function myProfilePath(subdomain) {
173
- return "https://".concat(subdomain, ".neetoauth.").concat(tld, "/my/profile");
174
- },
175
- settingsPath: function settingsPath(subdomain) {
176
- return "https://".concat(subdomain, ".neetoauth.").concat(tld, "/settings");
177
- }
178
- };
179
- var urlPaths = {
180
- members: "/members"
181
- };
182
- Object.defineProperty(requestApis, "allPath", {
183
- get: allPath
184
- });
185
-
186
- var commonSelectors = {
187
- alertTitle: dataCy("alert-title"),
188
- alertModalMessage: dataCy("alert-message"),
189
- alertModalSubmitButton: dataCy("alert-submit-button"),
190
- checkbox: dataCy("nui-checkbox-input"),
191
- checkboxLabel: dataCy("nui-checkbox-label"),
192
- dropdownContainer: dataCy("nui-dropdown-container"),
193
- dropdownIcon: dataCy("nui-dropdown-icon"),
194
- heading: dataCy("main-header"),
195
- paneBody: dataCy("pane-body"),
196
- paneHeader: dataCy("pane-header"),
197
- profileSidebar: dataCy("profile-section"),
198
- selectOption: function selectOption(label) {
199
- return dataCy("".concat(hyphenize(label), "-select-option"));
200
- },
201
- toastMessage: dataCy("toastr-message-container"),
202
- toastCloseButton: dataCy("toastr-close-button"),
203
- windowAlert: "#alert-box",
204
- body: "body",
205
- toastIcon: ".Toastify__toast-icon",
206
- paneModalCrossIcon: dataCy("pane-close-button"),
207
- inputField: dataCy("nui-input-field"),
208
- alertConfirmationText: dataCy("alert-confirmation-text"),
209
- alertCancelButton: dataCy("alert-cancel-button"),
210
- alertModalCrossIcon: dataCy("modal-close-button"),
211
- saveChangesButton: dataCy("save-changes-button"),
212
- cancelButton: dataCy("cancel-button"),
213
- inputFieldError: dataCy("nui-input-error"),
214
- selectDropDownError: dataCy("nui-select-error"),
215
- subTitleHeading: function subTitleHeading(index) {
216
- return dataCy("menubar-subtitle-heading", ":eq(".concat(index, ")"));
217
- },
218
- noDataTitle: dataCy("no-data-title"),
219
- noDataDescription: dataCy("no-data-description"),
220
- backdrop: dataCy("neeto-backdrop"),
221
- menuBarHeading: dataCy("menubar-heading"),
222
- nthTabItem: function nthTabItem(index) {
223
- return dataCy("tab-item", ":eq(".concat(index, ")"));
224
- },
225
- dropdownWrapper: function dropdownWrapper(index) {
226
- return dataCy("nui-select-container-wrapper", ":eq(".concat(index, ")"));
227
- },
228
- toggleButton: dataCy("menubar-toggle-button"),
229
- tooltip: dataCy("tooltip-box"),
230
- articlePageTitle: ".serene-article__title",
231
- tabItem: dataCy("tab-item"),
232
- labelInputError: dataCy("label-input-error"),
233
- urlInputError: dataCy("url-input-error"),
234
- noDataPrimaryButton: dataCy("no-data-primary-button"),
235
- modalHeader: dataCy("modal-header"),
236
- nameInputError: dataCy("name-input-error"),
237
- selectContainer: dataCy("nui-select-container"),
238
- dropdownMenu: dataCy("nui-select-menu"),
239
- nthDropdownIcon: function nthDropdownIcon(index) {
240
- return dataCy("nui-dropdown-icon", ":eq(".concat(index, ")"));
241
- },
242
- sidebarToggle: dataCy("neeto-molecules-sidebar-toggler"),
243
- customDataCy: function customDataCy(name) {
244
- return dataCy(name);
245
- },
246
- leftSubHeader: dataCy("subheader-left"),
247
- subheader: dataCy("subheader"),
248
- settingsLink: dataCy("Settings"),
249
- nthInputField: function nthInputField(index) {
250
- return dataCy("nui-input-field", ":eq(".concat(index, ")"));
251
- },
252
- ticketFieldTextInput: function ticketFieldTextInput(label) {
253
- return dataCy("".concat(hyphenize(label), "-text-input"));
254
- }
255
- };
256
- var tableSelectors = {
257
- nthColumn: function nthColumn(n) {
258
- return "td:nth-child(".concat(n, ")");
259
- },
260
- tableBody: ".ant-table-body",
261
- tableHeader: ".ant-table-thead th",
262
- tableRow: ".ant-table-tbody tr",
263
- spinner: ".ant-spin",
264
- nthHeading: function nthHeading(n) {
265
- return "tr > th:nth-child(".concat(n, ")");
266
- }
267
- };
268
- var profileSelectors = {
269
- tab: dataCy("profile-section"),
270
- logoutLink: dataCy("profile-logout-button"),
271
- myProfileButton: dataCy("my-profile-button"),
272
- organizationSettingsButton: dataCy("profile-organization-settings-button"),
273
- loader: dataTestId("spinner"),
274
- appSwitcherBody: dataCy("app-switcher-body-wrapper"),
275
- sidebarInfo: dataCy("sidebar-info"),
276
- appSwitcherBackButton: dataCy("app-switcher-back-button")
277
- };
278
-
279
- var commonTexts = {
280
- activate: "Activate",
281
- block: "Block",
282
- copiedToClipboard: "Copied to clipboard!",
283
- crossSiteScript: "<script>alert('XSS')</script>",
284
- deactivate: "Deactivate",
285
- "delete": "Delete",
286
- edit: "Edit",
287
- invalidEmailMessage: "Please enter a valid email.",
288
- invalidSearchInput: "Invalid search input",
289
- logout: "Log out",
290
- "new": "New",
291
- takeAction: "Take action",
292
- unblock: "Unblock",
293
- toastIcon: "👍",
294
- emailRequiredError: "Email is required.",
295
- emailTakenMessage: "Email is already taken",
296
- nameTakenMessage: "Name has already been taken",
297
- all: "All",
298
- proceed: "Proceed",
299
- settings: "Settings",
300
- unsavedChangesAlertTitle: "You have unsaved changes!",
301
- unsavedChangesAlertMessage: "Are you sure you want to continue? All of your unsaved changes will be lost.",
302
- clearFilters: "Clear filters",
303
- filters: "Filters",
304
- descriptionRequiredMessage: "Description is required.",
305
- active: "active",
306
- deactivated: "deactivated",
307
- nameExistsMsg: "Name already exists",
308
- cancel: "Cancel",
309
- "continue": "Continue"
310
- };
311
-
312
- function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
313
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
314
- var initCustomCommands = function initCustomCommands() {
315
- Cypress.Commands.add("clearAndType", function (selector, text) {
316
- cy.get(selector).clear().type(text);
317
- });
318
- Cypress.Commands.add("clearAndTypeFast", function (selector, text) {
319
- cy.get(selector).clear().type(text, {
320
- delay: 0
321
- });
322
- });
323
- Cypress.Commands.add("clearByClickAndTypeFast", function (selector, text) {
324
- cy.get(selector).click().clear().type(text, {
325
- delay: 0
326
- });
327
- });
328
- Cypress.Commands.add("typeFast", function (selector, text) {
329
- cy.get(selector).type(text, {
330
- delay: 0
331
- });
332
- });
333
- Cypress.Commands.add("typeAndEnter", function (selector, text) {
334
- cy.get(selector).clear().type("".concat(text, "{enter}"));
335
- });
336
- Cypress.Commands.add("verifyToastMessage", function (message) {
337
- cy.get(commonSelectors.toastMessage).should("be.visible").should("have.text", message);
338
-
339
- // close toast message
340
- cy.get(commonSelectors.toastCloseButton).click();
341
- cy.get(commonSelectors.toastMessage).should("not.exist");
342
- });
343
- Cypress.Commands.add("verifyToastIcon", function () {
344
- var closeToastr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
345
- cy.document().its("body").find(commonSelectors.toastIcon).should("have.text", "👍");
346
- closeToastr && cy.document().its("body").find(commonSelectors.toastCloseButton).click();
347
- cy.document().its("body").find(commonSelectors.toastIcon).should("not.exist");
348
- });
349
- Cypress.Commands.add("continueOnAlert", function (args) {
350
- var props = _typeof(args) === "object" ? args : {
351
- alias: args
352
- };
353
- var alias = props.alias,
354
- title = props.title,
355
- _props$requestCount = props.requestCount,
356
- requestCount = _props$requestCount === void 0 ? 1 : _props$requestCount,
357
- verifyToastIcon = props.verifyToastIcon,
358
- toastMessage = props.toastMessage;
359
- var hasMoreThanOneRequest = requestCount > 1;
360
- title && cy.get(commonSelectors.alertTitle).should("have.text", title);
361
- cy.interceptApi(alias, requestCount);
362
- cy.get(commonSelectors.alertModalSubmitButton).click();
363
- cy.wait("@".concat(alias));
364
- verifyToastIcon && cy.verifyToastIcon();
365
- toastMessage && cy.verifyToastMessage(toastMessage);
366
- hasMoreThanOneRequest && cy.waitForMultipleRequest("@".concat(alias), requestCount - 1);
367
- });
368
- Cypress.Commands.add("interceptApi", function (alias) {
369
- var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
370
- return times > 0 && cy.intercept({
371
- url: requestApis.allPath,
372
- resourceType: "xhr",
373
- times: times
374
- }).as(alias);
375
- });
376
- Cypress.Commands.add("waitForMultipleRequest", function (alias) {
377
- var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
378
- return cy.wrap(_toConsumableArray(new Array(times))).each(function () {
379
- return cy.wait(alias);
380
- });
381
- });
382
- Cypress.Commands.add("apiRequest", function (options) {
383
- return cy.get("@requestHeaders").then(function (requestHeaders) {
384
- return requestHeaders ? cy.request(_objectSpread$1(_objectSpread$1({}, options), {}, {
385
- headers: _objectSpread$1(_objectSpread$1({}, requestHeaders), {}, {
386
- "accept-encoding": "gzip"
387
- })
388
- })) : cy.log("No request headers found");
389
- });
390
- });
391
- Cypress.Commands.add("reloadAndWait", function () {
392
- var requestCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
393
- if (requestCount > 0) {
394
- cy.interceptApi("reloadAllRequests", requestCount);
395
- cy.reload();
396
- cy.waitForMultipleRequest("@reloadAllRequests", requestCount);
397
- }
398
- });
399
- Cypress.Commands.add("selectOption", function (containerSelector, optionText) {
400
- cy.get(containerSelector).click().type(optionText);
401
- cy.get(commonSelectors.selectOption(optionText)).invoke("click");
402
- });
403
- Cypress.Commands.add("clickDropdownOption", function (optionText) {
404
- var dropdownSelector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : commonSelectors.dropdownIcon;
405
- cy.get(dropdownSelector).click();
406
- cy.get(commonSelectors.dropdownContainer).contains(optionText).invoke("click");
407
- });
408
- Cypress.Commands.add("getText", function (selector) {
409
- return cy.get(selector).invoke("text");
410
- });
411
- Cypress.Commands.add("getValue", function (selector) {
412
- return cy.get(selector).invoke("val");
413
- });
414
-
415
- // Deprecated. Use withinIframe.
416
- Cypress.Commands.add("getIframe", function (iframeSelector) {
417
- return cy.get(iframeSelector).its("0.contentDocument.body").should("not.be.empty");
418
- });
419
- Cypress.Commands.add("withinIframe", function (selector, callback) {
420
- cy.get(selector, {
421
- timeout: 10000
422
- }).its("0.contentDocument.body").should("be.visible").and("not.be.empty");
423
- cy.get(selector, {
424
- timeout: 10000
425
- }).its("0.contentDocument.body").eq(0).within(callback);
426
- });
427
- Cypress.Commands.add("openInSameTabOnClick", function (_ref) {
428
- var url = _ref.url,
429
- alias = _ref.alias,
430
- selector = _ref.selector;
431
- cy.window().then(function (win) {
432
- cy.stub(win, "open").as(alias).callsFake(function (newUrl) {
433
- return win.location.href = newUrl;
434
- });
435
- });
436
- cy.get(selector).click();
437
- cy.get("@".concat(alias)).should("be.called");
438
- cy.url().should("include", url);
439
- });
440
- Cypress.Commands.add("globalState", function (key) {
441
- return cy.task("getGlobalState", key);
442
- });
443
- Cypress.Commands.add("ifExist", function (selector, callback) {
444
- cy.get(commonSelectors.body).then(function ($body) {
445
- if ($body.find(selector).length) callback();
446
- });
447
- });
448
- Cypress.Commands.add("ifNotExist", function (selector, callback) {
449
- cy.get(commonSelectors.body).then(function ($body) {
450
- if (!$body.find(selector).length) callback();
451
- });
452
- });
453
- Cypress.Commands.add("dragAndDrop", function (_ref2) {
454
- var subject = _ref2.subject,
455
- target = _ref2.target,
456
- _ref2$dragIndex = _ref2.dragIndex,
457
- dragIndex = _ref2$dragIndex === void 0 ? 0 : _ref2$dragIndex,
458
- _ref2$dropIndex = _ref2.dropIndex,
459
- dropIndex = _ref2$dropIndex === void 0 ? 0 : _ref2$dropIndex;
460
- cy.get(subject).should("be.visible", {
461
- timeout: 20000
462
- });
463
- Cypress.log({
464
- name: "DRAGNDROP",
465
- message: "Dragging element ".concat(subject, " to ").concat(target),
466
- consoleProps: function consoleProps() {
467
- return {
468
- subject: subject,
469
- target: target
470
- };
471
- }
472
- });
473
- cy.get(target).eq(dropIndex).then(function ($target) {
474
- var coordsDrop = $target[0].getBoundingClientRect();
475
- cy.get(subject).eq(dragIndex).then(function (subject) {
476
- var coordsDrag = subject[0].getBoundingClientRect();
477
- cy.wrap(subject).trigger("mousedown", {
478
- button: 0,
479
- // BUTTON_INDEX
480
- clientX: coordsDrag.x,
481
- clientY: coordsDrag.y,
482
- force: true
483
- }).trigger("mousemove", {
484
- button: 0,
485
- // BUTTON_INDEX
486
- clientX: coordsDrag.x + 10,
487
- // SLOPPY_CLICK_THRESHOLD
488
- clientY: coordsDrag.y,
489
- force: true
490
- });
491
- cy.get("body").trigger("mousemove", {
492
- button: 0,
493
- // BUTTON_INDEX
494
- clientX: coordsDrop.x,
495
- clientY: coordsDrop.y,
496
- force: true
497
- }).trigger("mouseup");
498
- });
499
- });
500
- });
501
- Cypress.Commands.add("verifyPlaceholder", function (textInputSelector, value) {
502
- cy.get(textInputSelector).should("have.attr", "placeholder").and("eq", value);
503
- });
504
- Cypress.Commands.add("enableOrDisableSwitch", function (switchButton, value) {
505
- cy.get(switchButton).invoke("click");
506
- cy.get(switchButton).should("have.prop", "value").and("eq", value);
507
- });
508
- Cypress.Commands.add("interceptNonVersionedApi", function (_ref3) {
509
- var _ref3$url = _ref3.url,
510
- url = _ref3$url === void 0 ? "*" : _ref3$url,
511
- alias = _ref3.alias,
512
- _ref3$times = _ref3.times,
513
- times = _ref3$times === void 0 ? 1 : _ref3$times;
514
- cy.intercept({
515
- url: url,
516
- times: times
517
- }).as(alias);
518
- });
519
- Cypress.Commands.add("typeOnSearchField", function (_ref4) {
520
- var selector = _ref4.selector,
521
- value = _ref4.value,
522
- _ref4$skipSearchReque = _ref4.skipSearchRequest,
523
- skipSearchRequest = _ref4$skipSearchReque === void 0 ? true : _ref4$skipSearchReque,
524
- delay = _ref4.delay;
525
- cy.get(selector).invoke("val").then(function (currentValue) {
526
- if (currentValue !== value) {
527
- !skipSearchRequest && cy.interceptApi("searchRequest");
528
- cy.clearAndTypeFast(selector, value);
529
- !skipSearchRequest && cy.wait("@searchRequest");
530
- } else delay && cy.wait(delay);
531
- });
532
- });
533
- Cypress.Commands.add("clickByRemoveTargetAttr", function (selector) {
534
- cy.get(selector).invoke("removeAttr", "target").click();
535
- });
536
- Cypress.Commands.add("navigateToPreviewPage", function (selector) {
537
- var fetchRequestCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
538
- cy.interceptApi("fetchRequests", fetchRequestCount);
539
- cy.clickByRemoveTargetAttr(selector);
540
- fetchRequestCount === 1 ? cy.wait("@fetchRequests") : cy.waitForMultipleRequest("@fetchRequests", fetchRequestCount);
541
- });
542
- Cypress.Commands.add("saveChanges", function (aliasName) {
543
- var requestCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
544
- cy.interceptApi(aliasName, requestCount);
545
- cy.get(commonSelectors.saveChangesButton).click();
546
- cy.wait("@".concat(aliasName));
547
- cy.verifyToastIcon();
548
- requestCount > 1 && cy.waitForMultipleRequest("@".concat(aliasName), requestCount - 1);
549
- });
550
- Cypress.Commands.add("verifyAttribute", function (_ref5) {
551
- var selector = _ref5.selector,
552
- attr = _ref5.attr,
553
- value = _ref5.value;
554
- cy.get(selector).should("have.attr", attr).and("include", value);
555
- });
556
- Cypress.Commands.add("verifyUnsavedAlertModal", function (cancelButton) {
557
- cy.get(cancelButton).click();
558
- cy.get(commonSelectors.alertTitle).should("have.text", commonTexts.unsavedChangesAlertTitle);
559
- cy.get(commonSelectors.alertMessage).should("have.text", commonTexts.unsavedChangesAlertMessage);
560
- });
561
- Cypress.Commands.add("verifyTooltip", function (selector, text) {
562
- cy.get(selector).realHover();
563
- cy.document().its("body").find(commonSelectors.tooltip).should("have.text", text);
564
- cy.document().find("body").click("topRight", {
565
- force: true
566
- });
567
- cy.document().its("body").find(commonSelectors.tooltip).should("not.exist");
568
- });
569
- Cypress.Commands.add("getEmailContent", function (props) {
570
- return cy.mailosaurGetMessage(Cypress.env("MAILOSAUR_SERVER_ID"), props);
571
- });
572
- };
573
-
574
- var loginSelectors = {
575
- appleAuthenticationButton: dataCy("apple-authentication-button"),
576
- emailTextField: dataCy("login-email-text-field"),
577
- googleAuthenticationButton: dataCy("google-authentication-button"),
578
- githubAuthenticationButton: dataCy("github-authentication-button"),
579
- loginViaEmailButton: dataCy("login-via-email-button"),
580
- otpField: dataCy("otpinput-otp-number"),
581
- passwordTextField: dataCy("login-password-text-field"),
582
- rememberMeCheckBox: dataCy("login-remember-me-check-box"),
583
- submitButton: dataCy("login-submit-button"),
584
- twitterAuthenticationButton: dataCy("twitter-authentication-button")
585
- };
586
-
587
- var memberSelectors = {
588
- membersTab: dataCy("members-nav-tab"),
589
- newButton: dataCy("ntm-add-member-button"),
590
- continueButton: dataCy("ntm-manage-member-continue-button"),
591
- submitButton: dataCy("ntm-manage-member-submit-button"),
592
- searchTextField: dataCy("ntm-search-members-input"),
593
- deactivatedAgentsButton: dataCy("ntm-members-menubar-deactivated-block"),
594
- activatedMembersButton: dataCy("ntm-members-menubar-active-block"),
595
- columnCheckBox: dataCy("neeto-ui-columns-checkbox"),
596
- roleLabel: function roleLabel(role) {
597
- return dataCy("".concat(joinHyphenCase(role), "-radio-label"));
598
- },
599
- dropDownIcon: dataCy("ntm-members-table-row-dropdown-button"),
600
- editButton: dataCy("ntm-edit-member-button"),
601
- menuBarHeading: dataCy("ntm-members-menubar-heading"),
602
- activateOrDeactivateMember: dataCy("ntm-deactivate-member-button"),
603
- columnsButton: dataCy("columns-dropdown-button"),
604
- columnsDropdownContainer: dataCy("columns-dropdown-container"),
605
- emailDropdownItemLabel: dataCy("email-checkbox-label"),
606
- roleDropdownItemLabel: dataCy("role-checkbox-label"),
607
- inviteStatusDropdownItemLabel: dataCy("invite-status-checkbox-label"),
608
- heading: dataCy("ntm-manage-members-pane-header"),
609
- activateButton: dataCy("ntm-activate-members-button"),
610
- deactivateButton: dataCy("ntm-deactivate-members-button"),
611
- rolesButton: function rolesButton(index) {
612
- return dataCy("ntm-manage-member-roles-button", ":eq(".concat(index, ")"));
613
- },
614
- statusTag: dataCy("ntm-member-status-tag")
615
- };
616
- var memberFormSelectors = {
617
- emailTextField: dataCy("email-select-input-field"),
618
- firstNameTextField: dataCy("ntm-edit-member-first-name-text-field"),
619
- lastNameTextField: dataCy("ntm-edit-member-last-name-text-field"),
620
- emailInput: dataCy("ntm-manage-member-email-input"),
621
- emailErrorField: dataCy("emails-input-error"),
622
- cancelButton: dataCy("ntm-manage-member-cancel-button")
623
- };
624
- var neetoFiltersSelectors = {
625
- emailSelectContainer: dataCy("email-select-container-wrapper"),
626
- filterPaneHeading: dataCy("neeto-filters-pane-header"),
627
- neetoFiltersEmailBlock: dataCy("neeto-filters-email-block"),
628
- neetoFiltersRoleBlock: dataCy("neeto-filters-role-block"),
629
- neetoFiltersBarClearButton: dataCy("neeto-filters-bar-clear-btn"),
630
- neetoFiltersNameFilterField: dataCy("neeto-filters-name-filter"),
631
- neetoFilterNameBlock: dataCy("neeto-filters-name-block"),
632
- roleSelectContainer: dataCy("role-select-container-wrapper"),
633
- filterButton: dataCy("neeto-filters-toggle-btn"),
634
- filtersClearButton: dataCy("neeto-filters-clear-btn"),
635
- filterDoneButton: dataCy("neeto-filters-done-btn"),
636
- filteredMembersCount: dataCy("ntm-filtered-members-count"),
637
- allMenubarBlock: dataCy("ntm-members-menubar-all-block"),
638
- filtersEmailFilter: dataCy("neeto-filters-email-filter"),
639
- paneModalCrossIcon: dataCy("neeto-filters-close-button")
640
- };
641
-
642
- var signUpSelectors = {
643
- emailTextField: dataCy("signup-email-text-field"),
644
- firstNameTextField: dataCy("signup-profile-first-name-text-field"),
645
- lastNameTextField: dataCy("signup-profile-last-name-text-field"),
646
- organizationNameTextField: dataCy("signup-organization-name-text-field"),
647
- organizationSubmitButton: dataCy("signup-organization-submit-button"),
648
- otpTextBox: dataCy("otpinput-otp-number"),
649
- profileSubmitButton: dataCy("signup-profile-submit-button"),
650
- signupViaEmailButton: dataCy("signup-via-email-button"),
651
- submitButton: dataCy("signup-email-submit-button"),
652
- subdomainNameTextField: dataCy("signup-organization-subdomain-text-field"),
653
- subdomainError: dataCy("subdomain-input-error"),
654
- tryFreeButton: dataCy("neeto-auth-signup-link")
655
- };
656
-
657
- var helpIconSelectors = {
658
- helpButton: dataCy("help-button"),
659
- documentationButton: dataCy("help-link-help-center-button"),
660
- keyboardShortcutButton: dataCy("help-link-keyboard-shortcut-button"),
661
- chatButton: dataCy("help-link-live-chat-button"),
662
- whatsNewButton: dataCy("help-link-changelog-button"),
663
- whatsNewWidgetInfo: "h1",
664
- whatsNewWidgetCloseButton: ".nc-widget-header__btn",
665
- keyboardShortcutPaneHeading: dataCy("keyboard-shortcuts-pane-title"),
666
- keyboardShortcutPaneCrossIcon: dataCy("keyboard-shortcuts-pane-close-button")
667
- };
668
- var chatWidgetSelectors = {
669
- chatWidgetHomeCard: dataCy("neeto-chat-widget-cta-title"),
670
- widgetSubmitButton: dataCy("neeto-chat-widget-pre-chat-submit-btn"),
671
- chatBubbleMessage: dataCy("neeto-chat-widget-chat-message-bubble"),
672
- chatCloseButton: ".neeto-chat-widget-icon--close",
673
- widgetIframe: "#neetochat-iframe"
674
- };
675
-
676
- var memberTexts = {
677
- addMember: "Add new member",
678
- admin: "Admin",
679
- agent: "Agent",
680
- agents: "Agents",
681
- activeMembersHeading: "Active members",
682
- accountActivatedToastMessage: function accountActivatedToastMessage(name) {
683
- return "".concat(name, "'s account has been activated.");
684
- },
685
- activateMember: "Activate member?",
686
- activateMemberAlertMessage: function activateMemberAlertMessage(email) {
687
- return "You are activating the member ".concat(email, ".");
688
- },
689
- addMemberToProducts: function addMemberToProducts(email) {
690
- return "Add ".concat(email, " to the following neeto products.");
691
- },
692
- deactivateAccountToastMessage: function deactivateAccountToastMessage(name) {
693
- return "".concat(name, "'s account has been deactivated.");
694
- },
695
- deactivateMember: "Deactivate member?",
696
- deactivateMemberAlertMessage: function deactivateMemberAlertMessage(email) {
697
- return "You are deactivating the member ".concat(email, ".");
698
- },
699
- editMember: "Edit member",
700
- inviteMessage: function inviteMessage(_ref) {
701
- var email = _ref.email,
702
- role = _ref.role,
703
- appName = _ref.appName;
704
- return "".concat(email, " will be invited to ").concat(appName, " with a role of ").concat(role, ".");
705
- },
706
- memberAddedMessage: "Added member successfully!",
707
- members: "Members",
708
- newHeading: "Add new member",
709
- updatedMemberRole: function updatedMemberRole(email, role) {
710
- return "Updated ".concat(email, "'s role to ").concat(role, ".");
711
- },
712
- searchMembers: "Search members",
713
- noDataTitle: "There are no members to show",
714
- editor: "Editor",
715
- changeRole: "Change role?",
716
- changeRoleAlertMsg: function changeRoleAlertMsg(member, role) {
717
- return "You are changing the role of ".concat(member, " to ").concat(role, ".");
718
- },
719
- collaborator: "Collaborator"
720
- };
721
- var memberTableTexts = {
722
- created: "Created",
723
- email: "Email",
724
- name: "Name",
725
- role: "Role",
726
- teams: "Teams",
727
- inviteStatus: "Invite status"
728
- };
729
- var memberFormErrorTexts = {
730
- emailRequired: "Please enter at least one email address.",
731
- emailInvalid: "Please ensure that all email addresses are valid.",
732
- removeInvalidEmail: "Click here to remove invalid emails."
733
- };
734
-
735
- var signUpTexts = {
736
- email: "Email",
737
- profile: "profile",
738
- tryItFree: "Try it FREE",
739
- loginCode: "login code"
740
- };
741
-
742
- var helpIconTexts = {
743
- documentation: "Documentation",
744
- welcome: "Welcome",
745
- keyboardShortcuts: "Keyboard shortcuts",
746
- liveChat: "Live chat",
747
- whatsNew: "What's new"
748
- };
749
- var profileTexts = {
750
- logout: "Log out",
751
- productSwitcher: "Product switcher",
752
- chooseYourNeetoProduct: "Choose your neeto product",
753
- myProfile: "My profile",
754
- profileSettings: "Profile settings",
755
- myOrganization: "My organization"
756
- };
757
-
758
- var fake = {};
759
- var email = function email() {
760
- return faker.internet.exampleEmail().toLowerCase();
761
- };
762
- var number = function number() {
763
- return faker.number["int"]({
764
- min: 3,
765
- max: 9
766
- });
767
- };
768
- var amount = function amount() {
769
- return faker.number["int"]({
770
- min: 1,
771
- max: 5
772
- });
773
- };
774
- var randomString = function randomString() {
775
- return faker.string.alphanumeric(10);
776
- };
777
- var quantity = function quantity() {
778
- return faker.number["int"]({
779
- min: 1,
780
- max: 3
781
- });
782
- };
783
- var randomDay = function randomDay() {
784
- return faker.number["int"]({
785
- min: 1,
786
- max: 27
787
- });
788
- };
789
- var percentage = function percentage() {
790
- return faker.number["int"]({
791
- min: 1,
792
- max: 2
793
- });
794
- };
795
- var uniqueName = function uniqueName() {
796
- return faker.person.firstName() + faker.number["int"]({
797
- min: 1,
798
- max: 100
799
- });
800
- };
801
- var uniqueDepartment = function uniqueDepartment() {
802
- return faker.commerce.department() + faker.number["int"]({
803
- min: 1,
804
- max: 100
805
- });
806
- };
807
- var phoneNumber = function phoneNumber() {
808
- var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "9#########";
809
- return faker.phone.number(format);
810
- };
811
- var secureUrl = function secureUrl() {
812
- return faker.internet.url().replace("http:", "https:");
813
- };
814
- var otp = function otp() {
815
- return faker.number["int"]({
816
- min: 100000,
817
- max: 999999
818
- });
819
- };
820
- var longNumber = function longNumber() {
821
- return faker.number["int"]({
822
- min: 1000,
823
- max: 9999
824
- });
825
- };
826
- var decimalNumber = function decimalNumber() {
827
- return faker.number["int"]({
828
- min: 1000,
829
- max: 9999
830
- }) + Math.random();
831
- };
832
- Object.defineProperty(fake, "firstName", {
833
- get: faker.person.firstName
834
- });
835
- Object.defineProperty(fake, "middleName", {
836
- get: faker.person.middleName
837
- });
838
- Object.defineProperty(fake, "lastName", {
839
- get: faker.person.lastName
840
- });
841
- Object.defineProperty(fake, "fullName", {
842
- get: faker.person.fullName
843
- });
844
- Object.defineProperty(fake, "companyName", {
845
- get: faker.company.name
846
- });
847
- Object.defineProperty(fake, "streetName", {
848
- get: faker.location.street
849
- });
850
- Object.defineProperty(fake, "city", {
851
- get: faker.location.city
852
- });
853
- Object.defineProperty(fake, "zipCode", {
854
- get: faker.location.zipCode
855
- });
856
- Object.defineProperty(fake, "country", {
857
- get: faker.location.country
858
- });
859
- Object.defineProperty(fake, "sentence", {
860
- get: faker.lorem.sentence
861
- });
862
- Object.defineProperty(fake, "email", {
863
- get: email
864
- });
865
- Object.defineProperty(fake, "number", {
866
- get: number
867
- });
868
- Object.defineProperty(fake, "amount", {
869
- get: amount
870
- });
871
- Object.defineProperty(fake, "projectName", {
872
- get: faker.commerce.productName
873
- });
874
- Object.defineProperty(fake, "department", {
875
- get: faker.commerce.department
876
- });
877
- Object.defineProperty(fake, "word", {
878
- get: faker.lorem.word
879
- });
880
- Object.defineProperty(fake, "words", {
881
- get: faker.lorem.words
882
- });
883
- Object.defineProperty(fake, "randomString", {
884
- get: randomString
885
- });
886
- Object.defineProperty(fake, "state", {
887
- get: faker.location.state
888
- });
889
- Object.defineProperty(fake, "quantity", {
890
- get: quantity
891
- });
892
- Object.defineProperty(fake, "randomDay", {
893
- get: randomDay
894
- });
895
- Object.defineProperty(fake, "percentage", {
896
- get: percentage
897
- });
898
- Object.defineProperty(fake, "uniqueName", {
899
- get: uniqueName
900
- });
901
- Object.defineProperty(fake, "uniqueDepartment", {
902
- get: uniqueDepartment
903
- });
904
- Object.defineProperty(fake, "url", {
905
- get: faker.internet.url
906
- });
907
- Object.defineProperty(fake, "secureUrl", {
908
- get: secureUrl
909
- });
910
- Object.defineProperty(fake, "domain", {
911
- get: faker.internet.domainName
912
- });
913
- Object.defineProperty(fake, "otp", {
914
- get: otp
915
- });
916
- Object.defineProperty(fake, "longNumber", {
917
- get: longNumber
918
- });
919
- Object.defineProperty(fake, "decimalNumber", {
920
- get: decimalNumber
921
- });
922
- Object.defineProperty(fake, "streetAddress", {
923
- get: faker.location.streetAddress
924
- });
925
- fake.phoneNumber = phoneNumber;
926
-
927
- /* eslint-disable xss/no-location-href-assign */
928
- var verifyTabMenu = function verifyTabMenu(_ref) {
929
- var tabSelector = _ref.tabSelector,
930
- _ref$alias = _ref.alias,
931
- alias = _ref$alias === void 0 ? "fetchData" : _ref$alias,
932
- _ref$requestCount = _ref.requestCount,
933
- requestCount = _ref$requestCount === void 0 ? 1 : _ref$requestCount;
934
- requestCount && cy.interceptApi(alias, requestCount);
935
- cy.get(tabSelector).click();
936
- requestCount && cy.waitForMultipleRequest("@".concat(alias), requestCount);
937
- cy.verifyAttribute({
938
- selector: tabSelector,
939
- attr: "class",
940
- value: "active"
941
- });
942
- };
943
- var clickOnHelpSubTab = function clickOnHelpSubTab(tabSelector, tabText) {
944
- openProfileOrHelpCenter({
945
- tabSelector: helpIconSelectors.helpButton,
946
- subTabLink: helpIconSelectors.whatsNewButton,
947
- count: 5
948
- });
949
- cy.get(tabSelector).should("have.text", tabText).invoke("click");
950
- };
951
- var verifyHelpDocumentationLink = function verifyHelpDocumentationLink(_ref2) {
952
- var articleTitle = _ref2.articleTitle,
953
- alias = _ref2.alias,
954
- _ref2$requestCount = _ref2.requestCount,
955
- requestCount = _ref2$requestCount === void 0 ? 3 : _ref2$requestCount;
956
- openProfileOrHelpCenter({
957
- tabSelector: helpIconSelectors.helpButton,
958
- subTabLink: helpIconSelectors.whatsNewButton,
959
- count: 5
960
- });
961
- cy.clickByRemoveTargetAttr(helpIconSelectors.documentationButton);
962
- cy.get(commonSelectors.articlePageTitle, {
963
- timeout: 10000
964
- }).should("have.text", articleTitle);
965
- cy.interceptApi(alias, requestCount);
966
- cy.go("back");
967
- cy.waitForMultipleRequest("@".concat(alias), requestCount);
968
- };
969
- var verifyKeyboardShortcutsPane = function verifyKeyboardShortcutsPane() {
970
- clickOnHelpSubTab(helpIconSelectors.keyboardShortcutButton, helpIconTexts.keyboardShortcuts);
971
- cy.get(helpIconSelectors.keyboardShortcutPaneHeading).should("have.text", helpIconTexts.keyboardShortcuts);
972
- cy.get(helpIconSelectors.keyboardShortcutPaneCrossIcon).click();
973
- };
974
- var verifyWhatsNewTab = function verifyWhatsNewTab(whatsNewHeading) {
975
- openProfileOrHelpCenter({
976
- tabSelector: helpIconSelectors.helpButton,
977
- subTabLink: helpIconSelectors.whatsNewButton,
978
- count: 5
979
- });
980
- cy.get(helpIconSelectors.whatsNewButton).should("contain.text", helpIconTexts.whatsNew);
981
- openWhatsNewPane();
982
- cy.get(helpIconSelectors.whatsNewWidgetInfo).should("have.text", whatsNewHeading);
983
- cy.get(helpIconSelectors.whatsNewWidgetCloseButton).last().click();
984
- cy.get(helpIconSelectors.whatsNewWidgetInfo).should("not.exist");
985
- };
986
- var waitForChatWidget = function waitForChatWidget() {
987
- var timeOut = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
988
- var defaultWait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
989
- if (timeOut === 0) return;
990
- cy.ifNotExist(chatWidgetSelectors.widgetIframe, function () {
991
- // eslint-disable-next-line cypress/no-unnecessary-waiting
992
- cy.wait(defaultWait);
993
- navigationUtils.clickOnHelpSubTab(helpIconSelectors.chatButton, helpIconTexts.liveChat);
994
- cy.ifNotExist(chatWidgetSelectors.widgetIframe, function () {
995
- waitForChatWidget(timeOut - 1);
996
- });
997
- });
998
- };
999
- var verifyChatWithUsTab = function verifyChatWithUsTab(_ref3) {
1000
- var alias = _ref3.alias,
1001
- _ref3$requestCount = _ref3.requestCount,
1002
- requestCount = _ref3$requestCount === void 0 ? 3 : _ref3$requestCount;
1003
- requestCount && cy.interceptNonVersionedApi({
1004
- url: requestApis.allChatPath,
1005
- alias: alias,
1006
- times: requestCount
1007
- });
1008
- clickOnHelpSubTab(helpIconSelectors.chatButton, helpIconTexts.liveChat);
1009
- requestCount && cy.waitForMultipleRequest("@".concat(alias), requestCount);
1010
- waitForChatWidget();
1011
- cy.withinIframe(chatWidgetSelectors.widgetIframe, function () {
1012
- requestCount && cy.interceptNonVersionedApi({
1013
- url: requestApis.allChatPath,
1014
- alias: alias,
1015
- times: requestCount
1016
- });
1017
- cy.get(chatWidgetSelectors.chatWidgetHomeCard, {
1018
- timeout: 10000
1019
- }).click({
1020
- force: true
1021
- });
1022
- requestCount && cy.wait("@".concat(alias), requestCount);
1023
- requestCount && cy.interceptNonVersionedApi({
1024
- url: requestApis.allChatPath,
1025
- alias: alias,
1026
- times: requestCount
1027
- });
1028
- cy.get(chatWidgetSelectors.widgetSubmitButton).click();
1029
- requestCount && cy.waitForMultipleRequest("@".concat(alias), requestCount);
1030
- cy.get(chatWidgetSelectors.chatBubbleMessage).should("be.visible");
1031
- });
1032
- cy.get(chatWidgetSelectors.chatCloseButton).click();
1033
- cy.get(chatWidgetSelectors.widgetIframe).should("not.exist");
1034
- };
1035
- var verifyMyProfileTab = function verifyMyProfileTab(_ref4) {
1036
- var alias = _ref4.alias,
1037
- _ref4$requestCount = _ref4.requestCount,
1038
- requestCount = _ref4$requestCount === void 0 ? 2 : _ref4$requestCount;
1039
- openProfileOrHelpCenter({
1040
- tabSelector: profileSelectors.tab,
1041
- subTabLink: profileSelectors.logoutLink,
1042
- count: 5
1043
- });
1044
- cy.get(profileSelectors.myProfileButton).should("have.text", profileTexts.myProfile);
1045
- cy.globalState("subdomainName").then(function (subdomainName) {
1046
- cy.window().then(function (win) {
1047
- cy.stub(win, "open").as(alias).callsFake(function (newUrl) {
1048
- return win.location.href = newUrl;
1049
- });
1050
- });
1051
- cy.get(profileSelectors.myProfileButton).invoke("click");
1052
- cy.get("@".concat(alias)).should("be.called");
1053
- cy.url().should("include", requestApis.myProfilePath(subdomainName));
1054
- });
1055
- cy.get(commonSelectors.heading).should("have.text", profileTexts.profileSettings);
1056
- cy.globalState("subdomainName").then(function (subdomainName) {
1057
- return cy.url().should("include", requestApis.myProfilePath(subdomainName));
1058
- });
1059
- cy.interceptApi(alias, requestCount);
1060
- cy.go("back");
1061
- cy.waitForMultipleRequest("@".concat(alias), requestCount);
1062
- };
1063
- var verifyOrganizationTab = function verifyOrganizationTab() {
1064
- openProfileOrHelpCenter({
1065
- tabSelector: profileSelectors.tab,
1066
- subTabLink: profileSelectors.logoutLink,
1067
- count: 5
1068
- });
1069
- cy.get(profileSelectors.organizationSettingsButton).should("have.text", profileTexts.myOrganization);
1070
- cy.globalState("subdomainName").then(function (subdomainName) {
1071
- cy.window().then(function (win) {
1072
- cy.stub(win, "open").as("navigateToSettings").callsFake(function (newUrl) {
1073
- return win.location.href = newUrl;
1074
- });
1075
- });
1076
- cy.get(profileSelectors.organizationSettingsButton).invoke("click");
1077
- cy.get("@navigateToSettings").should("be.called");
1078
- cy.url().should("include", requestApis.settingsPath(subdomainName));
1079
- });
1080
- cy.get(commonSelectors.heading).should("have.text", commonTexts.settings);
1081
- cy.globalState("subdomainName").then(function (subdomainName) {
1082
- return cy.url().should("include", requestApis.settingsPath(subdomainName));
1083
- });
1084
- };
1085
- var openProfileOrHelpCenter = function openProfileOrHelpCenter(_ref5) {
1086
- var tabSelector = _ref5.tabSelector,
1087
- subTabLink = _ref5.subTabLink,
1088
- _ref5$count = _ref5.count,
1089
- count = _ref5$count === void 0 ? 1 : _ref5$count,
1090
- _ref5$timeout = _ref5.timeout,
1091
- timeout = _ref5$timeout === void 0 ? 2000 : _ref5$timeout;
1092
- if (count === 0) return;
1093
- cy.get(tabSelector).click();
1094
- cy.ifNotExist(subTabLink, function () {
1095
- cy.wait(timeout); // eslint-disable-line cypress/no-unnecessary-waiting
1096
- openProfileOrHelpCenter(count - 1);
1097
- });
1098
- };
1099
- var openWhatsNewPane = function openWhatsNewPane() {
1100
- var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 7;
1101
- var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
1102
- if (count === 0) return;
1103
- cy.get(helpIconSelectors.whatsNewButton).invoke("click");
1104
- cy.ifNotExist(helpIconSelectors.whatsNewWidgetInfo, function () {
1105
- cy.wait(timeout); // eslint-disable-line cypress/no-unnecessary-waiting
1106
- openWhatsNewPane(count - 1);
1107
- });
1108
- };
1109
- var navigationUtils = {
1110
- verifyTabMenu: verifyTabMenu,
1111
- clickOnHelpSubTab: clickOnHelpSubTab,
1112
- verifyHelpDocumentationLink: verifyHelpDocumentationLink,
1113
- verifyKeyboardShortcutsPane: verifyKeyboardShortcutsPane,
1114
- verifyWhatsNewTab: verifyWhatsNewTab,
1115
- verifyChatWithUsTab: verifyChatWithUsTab,
1116
- verifyMyProfileTab: verifyMyProfileTab,
1117
- verifyOrganizationTab: verifyOrganizationTab,
1118
- openProfileOrHelpCenter: openProfileOrHelpCenter,
1119
- openWhatsNewPane: openWhatsNewPane
1120
- };
1121
-
1122
- var verifySSOLoginPage = function verifySSOLoginPage() {
1123
- cy.log("verify Login Page");
1124
- cy.get(loginSelectors.githubAuthenticationButton).should("be.visible");
1125
- cy.get(loginSelectors.twitterAuthenticationButton).should("be.visible");
1126
- cy.get(loginSelectors.appleAuthenticationButton).should("be.visible");
1127
- cy.get(loginSelectors.googleAuthenticationButton).should("be.visible");
1128
- cy.log("verify Cross Site scripting");
1129
- cy.clearAndType(loginSelectors.emailTextField, commonTexts.crossSiteScript);
1130
- cy.get(loginSelectors.submitButton).click();
1131
- cy.get(commonSelectors.windowAlert).should("not.exist");
1132
- cy.log("verify email login");
1133
- cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
1134
- cy.get(loginSelectors.emailTextField).clear();
1135
- cy.get(loginSelectors.submitButton).click();
1136
- cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
1137
- };
1138
- var logout = function logout(homeUrl) {
1139
- cy.get(profileSelectors.loader).should("not.exist");
1140
- navigationUtils.openProfileOrHelpCenter({
1141
- tabSelector: profileSelectors.tab,
1142
- subTabLink: profileSelectors.logoutLink,
1143
- count: 5
1144
- });
1145
- cy.get(profileSelectors.tab).click();
1146
- cy.get(profileSelectors.logoutLink).should("have.text", commonTexts.logout).invoke("click");
1147
- cy.url({
1148
- timeout: 15000
1149
- }).should("not.include", homeUrl);
1150
- };
1151
- var authUtils = {
1152
- verifySSOLoginPage: verifySSOLoginPage,
1153
- logout: logout
1154
- };
1155
-
1156
- var currentDate = function currentDate() {
1157
- return dayjs().format("YYYY-MM-DD");
1158
- };
1159
- var futureDate = function futureDate() {
1160
- var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
1161
- var date = dayjs().add(numberOfDays, "day").format("YYYY-MM-DD");
1162
- return date;
1163
- };
1164
- var pastDate = function pastDate() {
1165
- var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
1166
- var date = dayjs().subtract(numberOfDays, "day").format("YYYY-MM-DD");
1167
- return date;
1168
- };
1169
- var dateUtils = {
1170
- currentDate: currentDate,
1171
- futureDate: futureDate,
1172
- pastDate: pastDate
1173
- };
1174
-
1175
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1176
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1177
- var interceptMemberApi = function interceptMemberApi(alias) {
1178
- var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1179
- return cy.intercept({
1180
- url: requestApis.teamMembers.all,
1181
- times: times
1182
- }).as(alias);
1183
- };
1184
- var navigateToMembersPage = function navigateToMembersPage() {
1185
- var waitForRequest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
1186
- waitForRequest && interceptMemberApi("fetchMembers", 2);
1187
- cy.get(memberSelectors.membersTab).click();
1188
- cy.url().should("include", urlPaths.members);
1189
- waitForRequest && cy.waitForMultipleRequest("@fetchMembers", 2);
1190
- cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
1191
- };
1192
- var addMemberViaUI = function addMemberViaUI(_ref) {
1193
- var email = _ref.email,
1194
- _ref$role = _ref.role,
1195
- role = _ref$role === void 0 ? memberTexts.agent : _ref$role,
1196
- appName = _ref.appName;
1197
- var invalidEmail = "Invalid email";
1198
- cy.get(memberSelectors.newButton).should("have.text", memberTexts.addMember).click();
1199
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
1200
- cy.get(memberFormSelectors.emailTextField).should("be.focused");
1201
- cy.get(memberFormSelectors.cancelButton).click();
1202
- cy.get(commonSelectors.paneHeader).should("not.exist");
1203
-
1204
- // form validation
1205
- cy.get(memberSelectors.newButton).should("be.visible").click();
1206
- cy.get(memberSelectors.continueButton).should("be.disabled");
1207
- cy.get(memberSelectors.roleLabel(role)).click();
1208
- cy.get(memberSelectors.continueButton).click();
1209
- cy.get(memberFormSelectors.emailErrorField).should("contain.text", memberFormErrorTexts.emailRequired);
1210
- cy.typeAndEnter(memberFormSelectors.emailTextField, invalidEmail);
1211
- cy.get(memberFormSelectors.emailErrorField).should("contains.text", memberFormErrorTexts.emailInvalid);
1212
- cy.get(memberFormSelectors.emailErrorField).should("contain.text", memberFormErrorTexts.removeInvalidEmail);
1213
- cy.get(commonSelectors.paneModalCrossIcon).click();
1214
- cy.get(commonSelectors.paneHeader).should("not.exist");
1215
-
1216
- // form submission
1217
- cy.get(memberSelectors.newButton).click();
1218
- cy.typeAndEnter(memberFormSelectors.emailTextField, email);
1219
- cy.get(memberSelectors.roleLabel(role)).click();
1220
- cy.get(memberSelectors.continueButton).click();
1221
- if (isStagingEnv) {
1222
- cy.get(commonSelectors.checkboxLabel).should("have.text", memberTexts.addMemberToProducts(email));
1223
- cy.get(commonSelectors.paneBody).within(function () {
1224
- return cy.get(commonSelectors.checkbox).uncheck();
1225
- });
1226
- cy.get(memberSelectors.continueButton).click();
1227
- }
1228
- cy.get(commonSelectors.paneBody).should("contain.text", memberTexts.inviteMessage({
1229
- email: email,
1230
- role: role,
1231
- appName: appName
1232
- }));
1233
- interceptMemberApi("createAndFetchMember", 2);
1234
- cy.get(memberSelectors.submitButton).click();
1235
- cy.wait("@createAndFetchMember");
1236
- cy.verifyToastIcon();
1237
- cy.wait("@createAndFetchMember");
1238
- verifyMemberDetails({
1239
- email: email,
1240
- role: role,
1241
- skipSearchRequest: false
1242
- });
1243
- };
1244
- var editMemberViaUI = function editMemberViaUI(_ref2) {
1245
- var email = _ref2.email,
1246
- newRole = _ref2.newRole,
1247
- firstName = _ref2.firstName,
1248
- lastName = _ref2.lastName,
1249
- skipSearchRequest = _ref2.skipSearchRequest,
1250
- _ref2$updateCount = _ref2.updateCount,
1251
- updateCount = _ref2$updateCount === void 0 ? 2 : _ref2$updateCount;
1252
- var name = firstName && lastName ? [firstName, lastName].join(" ") : null;
1253
- verifyMemberDetails({
1254
- email: email,
1255
- skipSearchRequest: skipSearchRequest
1256
- }).within(function () {
1257
- cy.get(memberSelectors.dropDownIcon).click();
1258
- });
1259
- cy.get(memberSelectors.editButton).should("have.text", commonTexts.edit).click();
1260
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.editMember);
1261
- cy.get(memberFormSelectors.firstNameTextField).should("be.focused");
1262
- cy.get(memberSelectors.roleLabel(newRole)).click();
1263
- cy.get(memberFormSelectors.emailInput).should("be.disabled").should("have.value", email);
1264
- firstName && cy.clearAndType(memberFormSelectors.firstNameTextField, firstName);
1265
- lastName && cy.clearAndType(memberFormSelectors.lastNameTextField, lastName);
1266
- interceptMemberApi("updateAndFetchMember", updateCount);
1267
- cy.get(memberSelectors.submitButton).click();
1268
- cy.wait("@updateAndFetchMember");
1269
- cy.verifyToastIcon();
1270
- cy.waitForMultipleRequest("@updateAndFetchMember", updateCount - 1);
1271
- verifyMemberDetails({
1272
- email: email,
1273
- role: newRole,
1274
- name: name,
1275
- skipSearchRequest: true
1276
- });
1277
- };
1278
- var verifyMemberDetails = function verifyMemberDetails(_ref3) {
1279
- var email = _ref3.email,
1280
- role = _ref3.role,
1281
- name = _ref3.name,
1282
- statusTag = _ref3.statusTag,
1283
- _ref3$skipSearchReque = _ref3.skipSearchRequest,
1284
- skipSearchRequest = _ref3$skipSearchReque === void 0 ? true : _ref3$skipSearchReque;
1285
- !skipSearchRequest && interceptMemberApi("searchMember");
1286
- cy.typeOnSearchField({
1287
- selector: memberSelectors.searchTextField,
1288
- value: email
1289
- });
1290
- !skipSearchRequest && cy.wait("@searchMember");
1291
- return cy.contains(tableSelectors.tableRow, email).within(function () {
1292
- cy.get(tableSelectors.nthColumn(3)).should("have.text", email);
1293
- cy.get(tableSelectors.nthColumn(2)).within(function () {
1294
- name && cy.get("p").should("have.text", name);
1295
- });
1296
- role && cy.get(tableSelectors.nthColumn(4)).should("have.text", role);
1297
- statusTag && cy.get(memberSelectors.statusTag).should("have.text", statusTag);
1298
- });
1299
- };
1300
- var updateMemberRole = function updateMemberRole(_ref4) {
1301
- var email = _ref4.email,
1302
- role = _ref4.role,
1303
- skipSearchRequest = _ref4.skipSearchRequest;
1304
- verifyMemberDetails({
1305
- email: email,
1306
- skipSearchRequest: skipSearchRequest
1307
- }).within(function () {
1308
- return cy.clickDropdownOption(commonTexts.edit);
1309
- });
1310
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.updateMemberRole);
1311
- cy.get(memberSelectors.roleLabel(role)).click();
1312
- interceptMemberApi("updateAndFetchMember", 2);
1313
- cy.get(memberSelectors.submitButton).click();
1314
- cy.wait("@updateAndFetchMember");
1315
- cy.verifyToastIcon();
1316
- cy.wait("@updateAndFetchMember");
1317
- verifyMemberDetails({
1318
- email: email,
1319
- role: role
1320
- });
1321
- };
1322
- var verifyActivatedMember = function verifyActivatedMember(_ref5) {
1323
- var email = _ref5.email,
1324
- _ref5$skipFetchReques = _ref5.skipFetchRequest,
1325
- skipFetchRequest = _ref5$skipFetchReques === void 0 ? false : _ref5$skipFetchReques,
1326
- _ref5$skipSearchReque = _ref5.skipSearchRequest,
1327
- skipSearchRequest = _ref5$skipSearchReque === void 0 ? true : _ref5$skipSearchReque;
1328
- cy.get(commonSelectors.toggleButton).click();
1329
- cy.get(memberSelectors.menuBarHeading).should("have.text", memberTexts.members);
1330
- !skipFetchRequest && interceptMemberApi("fetchActivatedMembers");
1331
- cy.get(memberSelectors.activatedMembersButton).click();
1332
- !skipFetchRequest && cy.wait("@fetchActivatedMembers");
1333
- verifyMemberDetails({
1334
- email: email,
1335
- skipSearchRequest: skipSearchRequest
1336
- });
1337
- cy.get(commonSelectors.toggleButton).click();
1338
- };
1339
- var verifyDeactivatedMember = function verifyDeactivatedMember(_ref6) {
1340
- var email = _ref6.email,
1341
- _ref6$skipFetchReques = _ref6.skipFetchRequest,
1342
- skipFetchRequest = _ref6$skipFetchReques === void 0 ? false : _ref6$skipFetchReques,
1343
- _ref6$skipSearchReque = _ref6.skipSearchRequest,
1344
- skipSearchRequest = _ref6$skipSearchReque === void 0 ? true : _ref6$skipSearchReque;
1345
- cy.get(commonSelectors.toggleButton).click();
1346
- cy.get(memberSelectors.menuBarHeading).should("have.text", memberTexts.members);
1347
- !skipFetchRequest && interceptMemberApi("fetchDeactivatedMembers");
1348
- cy.get(memberSelectors.deactivatedAgentsButton).click();
1349
- !skipFetchRequest && cy.wait("@fetchDeactivatedMembers");
1350
- verifyMemberDetails({
1351
- email: email,
1352
- skipSearchRequest: skipSearchRequest
1353
- });
1354
- cy.get(commonSelectors.toggleButton).click();
1355
- };
1356
- var activateMember = function activateMember(_ref7) {
1357
- var email = _ref7.email,
1358
- name = _ref7.name,
1359
- _ref7$skipSearchReque = _ref7.skipSearchRequest,
1360
- skipSearchRequest = _ref7$skipSearchReque === void 0 ? true : _ref7$skipSearchReque;
1361
- verifyMemberDetails({
1362
- email: email,
1363
- skipSearchRequest: skipSearchRequest
1364
- }).within(function () {
1365
- cy.get(memberSelectors.dropDownIcon).click();
1366
- });
1367
- cy.get(memberSelectors.activateOrDeactivateMember).should("have.text", commonTexts.activate).click();
1368
- cy.get(commonSelectors.alertTitle).should("have.text", memberTexts.activateMember);
1369
- cy.get(commonSelectors.alertModalMessage).should("have.text", memberTexts.activateMemberAlertMessage(name || email));
1370
- interceptMemberApi("activateAndFetchMember", 2);
1371
- cy.get(commonSelectors.alertModalSubmitButton).click();
1372
- cy.wait("@activateAndFetchMember");
1373
- cy.verifyToastIcon();
1374
- cy.wait("@activateAndFetchMember");
1375
- verifyActivatedMember({
1376
- email: email
1377
- });
1378
- };
1379
- var deactivateMember = function deactivateMember(_ref8) {
1380
- var email = _ref8.email,
1381
- name = _ref8.name,
1382
- _ref8$skipSearchReque = _ref8.skipSearchRequest,
1383
- skipSearchRequest = _ref8$skipSearchReque === void 0 ? true : _ref8$skipSearchReque;
1384
- verifyMemberDetails({
1385
- email: email,
1386
- skipSearchRequest: skipSearchRequest
1387
- }).within(function () {
1388
- cy.get(memberSelectors.dropDownIcon).click();
1389
- });
1390
- cy.get(memberSelectors.activateOrDeactivateMember).should("have.text", commonTexts.deactivate).click();
1391
- cy.get(commonSelectors.alertTitle).should("have.text", memberTexts.deactivateMember);
1392
- cy.get(commonSelectors.alertModalMessage).should("have.text", memberTexts.deactivateMemberAlertMessage(name || email));
1393
- interceptMemberApi("deactivateAndFetchMember", 2);
1394
- cy.get(commonSelectors.alertModalSubmitButton).click();
1395
- cy.wait("@deactivateAndFetchMember");
1396
- cy.verifyToastIcon();
1397
- cy.wait("@deactivateAndFetchMember");
1398
- verifyDeactivatedMember({
1399
- email: email
1400
- });
1401
- };
1402
- var unCheckColumnAndVerifyTableHeader = function unCheckColumnAndVerifyTableHeader(fieldSelector, columnText) {
1403
- clickOnColumnIcon();
1404
- cy.get(fieldSelector).parent().within(function () {
1405
- cy.get(memberSelectors.columnCheckBox).should("be.checked").uncheck().should("not.be.checked");
1406
- });
1407
- memberUtils.clickOnColumnIcon();
1408
- cy.get(memberSelectors.columnsDropdownContainer).should("not.exist");
1409
- cy.contains(tableSelectors.tableHeader, columnText).should("not.exist");
1410
- };
1411
- var checkColumnAndVerifyTableHeader = function checkColumnAndVerifyTableHeader(fieldSelector, columnText) {
1412
- clickOnColumnIcon();
1413
- cy.get(fieldSelector).parent().within(function () {
1414
- cy.get(memberSelectors.columnCheckBox).should("not.be.checked").check().should("be.checked");
1415
- });
1416
- memberUtils.clickOnColumnIcon();
1417
- cy.get(memberSelectors.columnsDropdownContainer).should("not.exist");
1418
- cy.contains(tableSelectors.tableHeader, columnText).should("be.visible");
1419
- };
1420
- var addMemberViaRequest = function addMemberViaRequest(_ref9) {
1421
- var email = _ref9.email,
1422
- _ref9$role = _ref9.role,
1423
- role = _ref9$role === void 0 ? memberTexts.agent : _ref9$role,
1424
- _ref9$requestCount = _ref9.requestCount,
1425
- requestCount = _ref9$requestCount === void 0 ? 0 : _ref9$requestCount,
1426
- appName = _ref9.appName;
1427
- cy.apiRequest({
1428
- method: "POST",
1429
- url: requestApis.teamMembers.index,
1430
- body: {
1431
- user: {
1432
- emails: [email],
1433
- organization_role: role,
1434
- app_roles: [{
1435
- app_name: appName,
1436
- active_role: role,
1437
- is_enabled: true
1438
- }]
1439
- }
1440
- }
1441
- });
1442
- cy.reloadAndWait(requestCount);
1443
- };
1444
- var editMemberViaRequest = function editMemberViaRequest(_ref10) {
1445
- var email = _ref10.email,
1446
- firstName = _ref10.firstName,
1447
- lastName = _ref10.lastName,
1448
- newRole = _ref10.newRole,
1449
- _ref10$requestCount = _ref10.requestCount,
1450
- requestCount = _ref10$requestCount === void 0 ? 0 : _ref10$requestCount;
1451
- cy.apiRequest({
1452
- method: "GET",
1453
- url: requestApis.teamMembers.index,
1454
- qs: {
1455
- search: email
1456
- }
1457
- }).then(function (_ref11) {
1458
- var body = _ref11.body;
1459
- var memberDetails = body.members[0];
1460
- cy.apiRequest({
1461
- method: "PUT",
1462
- url: requestApis.teamMembers.show(memberDetails.id),
1463
- body: {
1464
- team: _objectSpread({
1465
- active: true,
1466
- first_name: firstName,
1467
- last_name: lastName
1468
- }, newRole && {
1469
- organization_role: newRole
1470
- })
1471
- }
1472
- });
1473
- });
1474
- cy.reloadAndWait(requestCount);
1475
- };
1476
- var deactivateMemberViaRequest = function deactivateMemberViaRequest(email) {
1477
- var requestCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
1478
- cy.apiRequest({
1479
- method: "PATCH",
1480
- url: requestApis.teamMembers.bulkUpdate,
1481
- body: {
1482
- users: {
1483
- active: false,
1484
- emails: [email]
1485
- }
1486
- }
1487
- });
1488
- cy.reloadAndWait(requestCount);
1489
- };
1490
- var clickOnColumnIcon = function clickOnColumnIcon() {
1491
- cy.get(commonSelectors.subheader).should("exist").within(function () {
1492
- cy.get(memberSelectors.columnsButton).click();
1493
- });
1494
- };
1495
- var memberUtils = {
1496
- addMemberViaRequest: addMemberViaRequest,
1497
- addMemberViaUI: addMemberViaUI,
1498
- activateMember: activateMember,
1499
- checkColumnAndVerifyTableHeader: checkColumnAndVerifyTableHeader,
1500
- deactivateMember: deactivateMember,
1501
- deactivateMemberViaRequest: deactivateMemberViaRequest,
1502
- editMemberViaUI: editMemberViaUI,
1503
- editMemberViaRequest: editMemberViaRequest,
1504
- updateMemberRole: updateMemberRole,
1505
- interceptMemberApi: interceptMemberApi,
1506
- navigateToMembersPage: navigateToMembersPage,
1507
- unCheckColumnAndVerifyTableHeader: unCheckColumnAndVerifyTableHeader,
1508
- verifyMemberDetails: verifyMemberDetails,
1509
- clickOnColumnIcon: clickOnColumnIcon
1510
- };
1511
-
1512
- var extractSubdomainFromError = function extractSubdomainFromError(inputString) {
1513
- var regex = /cypresstest[a-zA-Z0-9-]+/g;
1514
- var matches = inputString.match(regex);
1515
- return matches[1];
1516
- };
1517
- var updateSubdomainIfExists = function updateSubdomainIfExists(appName) {
1518
- cy.ifExist(signUpSelectors.subdomainError, function () {
1519
- cy.get(signUpSelectors.subdomainError).invoke("text").then(function (text) {
1520
- cy.intercept({
1521
- url: requestApis.subdomainAvailability,
1522
- times: 1
1523
- }).as("subdomainRequest");
1524
- var newOrganizationName = extractSubdomainFromError(text);
1525
- cy.clearAndType(signUpSelectors.subdomainNameTextField, newOrganizationName);
1526
- cy.wait("@subdomainRequest");
1527
- cy.ifNotExist(signUpSelectors.subdomainError, function () {
1528
- cy.task("updateGlobalState", {
1529
- key: "subdomainName",
1530
- value: newOrganizationName
1531
- });
1532
- cy.task("updateGlobalState", {
1533
- key: "businessName",
1534
- value: newOrganizationName
1535
- });
1536
- var newBaseUrl = "https://".concat(newOrganizationName, ".").concat(appName, ".").concat(env.tld);
1537
- Cypress.config("baseUrl", newBaseUrl);
1538
- cy.clearAndType(signUpSelectors.organizationNameTextField, newOrganizationName);
1539
- });
1540
- });
1541
- cy.ifExist(signUpSelectors.subdomainError, function () {
1542
- return updateSubdomainIfExists(appName);
1543
- });
1544
- });
1545
- };
1546
- var createOrganization = function createOrganization(_ref) {
1547
- var email = _ref.email,
1548
- businessName = _ref.businessName,
1549
- subdomainName = _ref.subdomainName,
1550
- firstName = _ref.firstName,
1551
- lastName = _ref.lastName,
1552
- appName = _ref.appName;
1553
- var isMailosaurEmail = email.includes("mailosaur");
1554
- var defaultOtp = "123456";
1555
- var appNameInLowerCase = appName.toLowerCase();
1556
- var isNeetoAuth = appNameInLowerCase === "neetoauth";
1557
- var authUrl = "https://app.neetoauth.".concat(env.tld, "/signups/new");
1558
- isNeetoAuth ? cy.visit(authUrl) : cy.visit("".concat(authUrl, "?redirect_uri=").concat(appNameInLowerCase, ".").concat(env.tld));
1559
- cy.clearAndType(signUpSelectors.emailTextField, email);
1560
- cy.intercept({
1561
- url: requestApis.signUp,
1562
- times: 2
1563
- }).as("signupRequest");
1564
- cy.get(signUpSelectors.submitButton).click();
1565
- cy.wait("@signupRequest");
1566
- if (isMailosaurEmail) {
1567
- cy.getEmailContent({
1568
- sentTo: email,
1569
- subject: signUpTexts.loginCode
1570
- }).then(function (emailBody) {
1571
- var otp = emailBody.html.codes[0].value;
1572
- cy.get(signUpSelectors.otpTextBox).type(otp);
1573
- });
1574
- } else cy.get(signUpSelectors.otpTextBox).type(defaultOtp);
1575
- cy.wait("@signupRequest");
1576
- cy.intercept({
1577
- url: requestApis.subdomainAvailability,
1578
- times: 1
1579
- }).as("subdomainRequest");
1580
- cy.clearAndType(signUpSelectors.organizationNameTextField, businessName);
1581
- cy.clearAndType(signUpSelectors.subdomainNameTextField, subdomainName);
1582
- cy.wait("@subdomainRequest");
1583
- updateSubdomainIfExists(appNameInLowerCase);
1584
- cy.intercept({
1585
- url: requestApis.signUp,
1586
- times: 1
1587
- }).as("signupRequest");
1588
- cy.intercept({
1589
- url: requestApis.countries,
1590
- times: 1
1591
- }).as("fetchCountries");
1592
- cy.get(signUpSelectors.organizationSubmitButton).click();
1593
- cy.wait("@signupRequest");
1594
- cy.url({
1595
- timeout: 15000
1596
- }).should("include", signUpTexts.profile);
1597
- cy.wait("@fetchCountries");
1598
- cy.clearAndType(signUpSelectors.firstNameTextField, firstName);
1599
- cy.clearAndType(signUpSelectors.lastNameTextField, lastName);
1600
- cy.get(commonSelectors.checkbox).click();
1601
- cy.intercept({
1602
- url: requestApis.signUp,
1603
- times: 1
1604
- }).as("setupProfile");
1605
- cy.get(signUpSelectors.profileSubmitButton).click();
1606
- cy.wait("@setupProfile");
1607
- };
1608
-
1609
- var verifyCrossSiteScript = function verifyCrossSiteScript(inputSelector, submitSelector) {
1610
- cy.interceptApi("searchRequest");
1611
- cy.clearAndType(inputSelector, commonTexts.crossSiteScript);
1612
- submitSelector && cy.get(submitSelector).click();
1613
- cy.wait("@searchRequest");
1614
- cy.get(commonSelectors.windowAlert).should("not.exist");
1615
- };
1616
-
1617
- var hostname = "api.fastmail.com";
1618
- var username = Cypress.env("FASTMAIL_USERNAME") || "cypress@mixarrow.com";
1619
- var token = Cypress.env("FASTMAIL_TOKEN");
1620
- var authUrl = "https://".concat(hostname, "/.well-known/jmap");
1621
- var headers = {
1622
- "Content-Type": "application/json",
1623
- Authorization: "Bearer ".concat(token)
1624
- };
1625
- var getSession = function getSession() {
1626
- return cy.request({
1627
- url: authUrl,
1628
- method: "GET",
1629
- headers: headers
1630
- });
1631
- };
1632
- var getDraftId = function getDraftId(_ref) {
1633
- var apiUrl = _ref.apiUrl,
1634
- accountId = _ref.accountId;
1635
- cy.request({
1636
- url: apiUrl,
1637
- method: "POST",
1638
- headers: headers,
1639
- body: JSON.stringify({
1640
- using: ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
1641
- methodCalls: [["Mailbox/query", {
1642
- accountId: accountId,
1643
- filter: {
1644
- name: "Drafts"
1645
- }
1646
- }, "a"]]
1647
- })
1648
- }).then(function (_ref2) {
1649
- var data = _ref2.body;
1650
- return cy.wrap(data["methodResponses"][0][1].ids[0]).as("draftId");
1651
- });
1652
- };
1653
- var getIdentityId = function getIdentityId(_ref3) {
1654
- var apiUrl = _ref3.apiUrl,
1655
- accountId = _ref3.accountId;
1656
- cy.request({
1657
- url: apiUrl,
1658
- method: "POST",
1659
- headers: headers,
1660
- body: JSON.stringify({
1661
- using: ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail", "urn:ietf:params:jmap:submission"],
1662
- methodCalls: [["Identity/get", {
1663
- accountId: accountId,
1664
- ids: null
1665
- }, "a"]]
1666
- })
1667
- }).then(function (_ref4) {
1668
- var data = _ref4.body;
1669
- var identities = data["methodResponses"][0][1].list;
1670
- var identityId = identities.find(function (_ref5) {
1671
- var email = _ref5.email;
1672
- return email === username;
1673
- }).id;
1674
- cy.wrap(identityId).as("identityId");
1675
- });
1676
- };
1677
- var composeEmail = function composeEmail(_ref6) {
1678
- var apiUrl = _ref6.apiUrl,
1679
- accountId = _ref6.accountId,
1680
- draftId = _ref6.draftId,
1681
- identityId = _ref6.identityId,
1682
- emailDetails = _ref6.emailDetails;
1683
- var subject = emailDetails.subject,
1684
- body = emailDetails.body,
1685
- to = emailDetails.to,
1686
- senderName = emailDetails.senderName;
1687
- var draftObject = {
1688
- from: [{
1689
- email: username,
1690
- name: senderName
1691
- }],
1692
- to: [{
1693
- email: to
1694
- }],
1695
- subject: subject,
1696
- keywords: {
1697
- $draft: true
1698
- },
1699
- mailboxIds: _defineProperty({}, draftId, true),
1700
- bodyValues: {
1701
- body: {
1702
- value: body,
1703
- charset: "utf-8"
1704
- }
1705
- },
1706
- textBody: [{
1707
- partId: "body",
1708
- type: "text/plain"
1709
- }]
1710
- };
1711
- cy.request({
1712
- url: apiUrl,
1713
- method: "POST",
1714
- headers: headers,
1715
- body: JSON.stringify({
1716
- using: ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail", "urn:ietf:params:jmap:submission"],
1717
- methodCalls: [["Email/set", {
1718
- accountId: accountId,
1719
- create: {
1720
- draft: draftObject
1721
- }
1722
- }, "a"], ["EmailSubmission/set", {
1723
- accountId: accountId,
1724
- onSuccessDestroyEmail: ["#sendIt"],
1725
- create: {
1726
- sendIt: {
1727
- emailId: "#draft",
1728
- identityId: identityId
1729
- }
1730
- }
1731
- }, "b"]]
1732
- })
1733
- });
1734
- };
1735
- var checkForEnvs = function checkForEnvs() {
1736
- if (!username || !token) {
1737
- throw new Error("Please provide CYPRESS_FASTMAIL_USERNAME and CYPRESS_FASTMAIL_TOKEN as environment variables");
1738
- }
1739
- };
1740
- var sendEmail = function sendEmail(emailDetails) {
1741
- checkForEnvs();
1742
- getSession().then(function (_ref7) {
1743
- var session = _ref7.body;
1744
- var apiUrl = session.apiUrl,
1745
- primaryAccounts = session.primaryAccounts;
1746
- var accountId = primaryAccounts["urn:ietf:params:jmap:mail"];
1747
- getDraftId({
1748
- apiUrl: apiUrl,
1749
- accountId: accountId
1750
- });
1751
- getIdentityId({
1752
- apiUrl: apiUrl,
1753
- accountId: accountId
1754
- });
1755
- cy.get("@draftId").then(function (draftId) {
1756
- cy.get("@identityId").then(function (identityId) {
1757
- return composeEmail({
1758
- apiUrl: apiUrl,
1759
- accountId: accountId,
1760
- draftId: draftId,
1761
- identityId: identityId,
1762
- emailDetails: emailDetails
1763
- });
1764
- });
1765
- });
1766
- });
1767
- };
1768
- var emailUtils = {
1769
- sendEmail: sendEmail
1770
- };
1771
-
1772
- export { authUtils, chatWidgetSelectors, commonSelectors, commonTexts, createOrganization, dataCy, dataTestId, dateUtils, emailUtils, env, environment, fake, getTestTitle, getUrl, helpIconSelectors, helpIconTexts, hyphenize, initCustomCommands, initializeCredentials, isStagingEnv, joinHyphenCase, loginSelectors, memberFormErrorTexts, memberFormSelectors, memberSelectors, memberTableTexts, memberTexts, memberUtils, navigationUtils, neetoFiltersSelectors, profileSelectors, profileTexts, sendEmail, setListCount, signUpSelectors, signUpTexts, tableSelectors, verifyCrossSiteScript, verifyListCount };
1773
- //# sourceMappingURL=cypress-utils.js.map