@wise/dynamic-flow-client 5.9.1 → 5.9.2-logging-bf0bd22

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 (402) hide show
  1. package/build/main.js +7 -1
  2. package/build/main.mjs +7 -1
  3. package/package.json +9 -8
  4. package/build/DynamicFlowCore.js +0 -5
  5. package/build/common/errorBoundary/ErrorBoundary.js +0 -26
  6. package/build/common/errorBoundary/ErrorBoundary.test.js +0 -29
  7. package/build/common/errorBoundary/ErrorBoundaryAlert.js +0 -11
  8. package/build/common/makeHttpClient/api-utils.js +0 -3
  9. package/build/common/makeHttpClient/index.js +0 -1
  10. package/build/common/makeHttpClient/makeHttpClient.js +0 -10
  11. package/build/common/makeHttpClient/makeHttpClient.test.js +0 -186
  12. package/build/common/messages/external-confirmation.messages.js +0 -23
  13. package/build/common/messages/file-upload.messages.js +0 -13
  14. package/build/common/messages/generic-error.messages.js +0 -18
  15. package/build/common/messages/help.messages.js +0 -8
  16. package/build/common/messages/multi-file-upload.messages.js +0 -18
  17. package/build/common/messages/multi-select.messages.js +0 -8
  18. package/build/common/messages/paragraph.messages.js +0 -13
  19. package/build/common/messages/repeatable.messages.js +0 -23
  20. package/build/common/messages/search.messages.js +0 -8
  21. package/build/common/messages/validation.array.messages.js +0 -13
  22. package/build/common/messages/validation.messages.js +0 -53
  23. package/build/controller/FlowController.js +0 -368
  24. package/build/controller/executePoll.js +0 -49
  25. package/build/controller/executeRefresh.js +0 -39
  26. package/build/controller/executeRequest.js +0 -77
  27. package/build/controller/executeSubmission.js +0 -69
  28. package/build/controller/getErrorMessage.js +0 -7
  29. package/build/controller/getRequestAbortController.js +0 -13
  30. package/build/controller/getResponseType.js +0 -35
  31. package/build/controller/getSafeHttpClient.js +0 -8
  32. package/build/controller/getStepCounter.js +0 -16
  33. package/build/controller/handleErrorResponse.js +0 -26
  34. package/build/controller/makeSafeHttpClient.js +0 -8
  35. package/build/controller/response-utils.js +0 -72
  36. package/build/domain/components/AlertComponent.js +0 -1
  37. package/build/domain/components/AllOfComponent.js +0 -40
  38. package/build/domain/components/BooleanInputComponent.js +0 -50
  39. package/build/domain/components/BoxComponent.js +0 -3
  40. package/build/domain/components/ButtonComponent.js +0 -1
  41. package/build/domain/components/ColumnsComponent.js +0 -3
  42. package/build/domain/components/ConstComponent.js +0 -18
  43. package/build/domain/components/ContainerComponent.js +0 -3
  44. package/build/domain/components/DateInputComponent.js +0 -75
  45. package/build/domain/components/DecisionComponent.js +0 -1
  46. package/build/domain/components/DividerComponent.js +0 -1
  47. package/build/domain/components/FormComponent.js +0 -3
  48. package/build/domain/components/FormattedValueComponent.js +0 -44
  49. package/build/domain/components/HeadingComponent.js +0 -1
  50. package/build/domain/components/ImageComponent.js +0 -1
  51. package/build/domain/components/InstructionsComponent.js +0 -1
  52. package/build/domain/components/IntegerInputComponent.js +0 -74
  53. package/build/domain/components/ListComponent.js +0 -1
  54. package/build/domain/components/LoadingIndicatorComponent.js +0 -1
  55. package/build/domain/components/MarkdownComponent.js +0 -1
  56. package/build/domain/components/MediaComponent.js +0 -1
  57. package/build/domain/components/ModalComponent.js +0 -16
  58. package/build/domain/components/ModalLayoutComponent.js +0 -3
  59. package/build/domain/components/MoneyInputComponent.js +0 -57
  60. package/build/domain/components/MultiSelectInputComponent.js +0 -81
  61. package/build/domain/components/MultiUploadInputComponent.js +0 -88
  62. package/build/domain/components/NumberInputComponent.js +0 -73
  63. package/build/domain/components/ObjectComponent.js +0 -45
  64. package/build/domain/components/ParagraphComponent.js +0 -1
  65. package/build/domain/components/PersistAsyncComponent.js +0 -92
  66. package/build/domain/components/ProgressComponent.js +0 -1
  67. package/build/domain/components/RepeatableComponent.js +0 -103
  68. package/build/domain/components/ReviewComponent.js +0 -1
  69. package/build/domain/components/RootDomainComponent.js +0 -173
  70. package/build/domain/components/SectionComponent.js +0 -5
  71. package/build/domain/components/SelectInputComponent.js +0 -88
  72. package/build/domain/components/StatusListComponent.js +0 -1
  73. package/build/domain/components/SubflowDomainComponent.js +0 -9
  74. package/build/domain/components/TabsComponent.js +0 -1
  75. package/build/domain/components/TextInputComponent.js +0 -76
  76. package/build/domain/components/TupleComponent.js +0 -41
  77. package/build/domain/components/UploadInputComponent.js +0 -83
  78. package/build/domain/components/UpsellComponent.js +0 -25
  79. package/build/domain/components/searchComponent/SearchComponent.js +0 -92
  80. package/build/domain/components/searchComponent/SearchComponent.test.js +0 -190
  81. package/build/domain/components/step/ExternalConfirmationComponent.js +0 -28
  82. package/build/domain/components/step/StepDomainComponent.js +0 -78
  83. package/build/domain/components/step/ToolbarComponent.js +0 -1
  84. package/build/domain/components/utils/WithUpdate.js +0 -1
  85. package/build/domain/components/utils/component-utils.js +0 -12
  86. package/build/domain/components/utils/debounce.js +0 -34
  87. package/build/domain/components/utils/debounce.test.js +0 -67
  88. package/build/domain/components/utils/file-utils.js +0 -21
  89. package/build/domain/components/utils/file-utils.test.js +0 -27
  90. package/build/domain/components/utils/getRandomId.js +0 -1
  91. package/build/domain/components/utils/isExactLocalValueMatch.js +0 -14
  92. package/build/domain/components/utils/isOrWasValid.js +0 -5
  93. package/build/domain/components/utils/isPartialModelMatch.js +0 -18
  94. package/build/domain/components/utils/isPartialModelMatch.test.js +0 -74
  95. package/build/domain/features/eventNames.js +0 -24
  96. package/build/domain/features/events.js +0 -1
  97. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +0 -50
  98. package/build/domain/features/persistAsync/getInitialPersistedState.js +0 -7
  99. package/build/domain/features/persistAsync/getPerformPersistAsync.js +0 -43
  100. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +0 -139
  101. package/build/domain/features/polling/getStepPolling.js +0 -43
  102. package/build/domain/features/polling/getStepPolling.test.js +0 -90
  103. package/build/domain/features/prefetch/getStepPrefetch.js +0 -43
  104. package/build/domain/features/prefetch/request-cache.js +0 -49
  105. package/build/domain/features/prefetch/request-cache.test.js +0 -70
  106. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +0 -24
  107. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +0 -40
  108. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +0 -50
  109. package/build/domain/features/schema-on-change/getSchemaOnChange.js +0 -34
  110. package/build/domain/features/search/getPerformSearchFunction.js +0 -75
  111. package/build/domain/features/search/getPerformSearchFunction.test.js +0 -301
  112. package/build/domain/features/summary/summary-utils.js +0 -40
  113. package/build/domain/features/summary/summary-utils.test.js +0 -125
  114. package/build/domain/features/utils/http-utils.js +0 -21
  115. package/build/domain/features/utils/response-utils.js +0 -9
  116. package/build/domain/features/validation/spec-utils.js +0 -19
  117. package/build/domain/features/validation/validateStringPattern.js +0 -24
  118. package/build/domain/features/validation/validation-functions.js +0 -6
  119. package/build/domain/features/validation/validation-functions.test.js +0 -108
  120. package/build/domain/features/validation/value-checks.js +0 -125
  121. package/build/domain/features/validation/value-checks.test.js +0 -262
  122. package/build/domain/features/validationAsync/getComponentValidationAsync.js +0 -53
  123. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +0 -67
  124. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +0 -5
  125. package/build/domain/features/validationAsync/getPerformValidationAsync.js +0 -45
  126. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +0 -143
  127. package/build/domain/mappers/layout/alertLayoutToComponent.js +0 -16
  128. package/build/domain/mappers/layout/boxLayoutToComponent.js +0 -13
  129. package/build/domain/mappers/layout/buttonLayoutToComponent.js +0 -77
  130. package/build/domain/mappers/layout/columnsLayoutToComponent.js +0 -13
  131. package/build/domain/mappers/layout/decisionLayoutToComponent.js +0 -22
  132. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +0 -30
  133. package/build/domain/mappers/layout/dividerLayoutToComponent.js +0 -2
  134. package/build/domain/mappers/layout/formLayoutToComponent.js +0 -19
  135. package/build/domain/mappers/layout/headingLayoutToComponent.js +0 -12
  136. package/build/domain/mappers/layout/imageLayoutToComponent.js +0 -20
  137. package/build/domain/mappers/layout/infoLayoutToComponent.js +0 -12
  138. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +0 -12
  139. package/build/domain/mappers/layout/listLayoutToComponent.js +0 -39
  140. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +0 -9
  141. package/build/domain/mappers/layout/markdownLayoutToComponent.js +0 -12
  142. package/build/domain/mappers/layout/mediaLayoutToComponent.js +0 -12
  143. package/build/domain/mappers/layout/modalLayoutToComponent.js +0 -17
  144. package/build/domain/mappers/layout/modalToComponent.js +0 -8
  145. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +0 -12
  146. package/build/domain/mappers/layout/progressLayoutToComponent.js +0 -15
  147. package/build/domain/mappers/layout/reviewLayoutToComponent.js +0 -48
  148. package/build/domain/mappers/layout/searchLayoutToComponent.js +0 -44
  149. package/build/domain/mappers/layout/sectionLayoutToComponent.js +0 -15
  150. package/build/domain/mappers/layout/statusListLayoutToComponent.js +0 -15
  151. package/build/domain/mappers/layout/tabsLayoutToComponent.js +0 -16
  152. package/build/domain/mappers/layout/upsellLayoutToComponent.js +0 -25
  153. package/build/domain/mappers/mapLayoutToComponent.js +0 -81
  154. package/build/domain/mappers/mapSchemaToComponent.js +0 -61
  155. package/build/domain/mappers/mapSchemaToComponent.test.js +0 -112
  156. package/build/domain/mappers/mapStepSchemas.js +0 -15
  157. package/build/domain/mappers/mapStepToComponent.js +0 -133
  158. package/build/domain/mappers/mapStepToComponent.test.js +0 -221
  159. package/build/domain/mappers/mapToolbarToComponent.js +0 -15
  160. package/build/domain/mappers/schema/allOfSchemaToComponent.js +0 -16
  161. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +0 -26
  162. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +0 -55
  163. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +0 -67
  164. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +0 -57
  165. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +0 -20
  166. package/build/domain/mappers/schema/blobSchemaToComponent.js +0 -15
  167. package/build/domain/mappers/schema/booleanSchemaToComponent.js +0 -29
  168. package/build/domain/mappers/schema/constSchemaToComponent.js +0 -23
  169. package/build/domain/mappers/schema/integerSchemaToComponent.js +0 -28
  170. package/build/domain/mappers/schema/numberSchemaToComponent.js +0 -26
  171. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +0 -23
  172. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +0 -9
  173. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +0 -119
  174. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +0 -96
  175. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +0 -31
  176. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +0 -99
  177. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +0 -66
  178. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +0 -225
  179. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +0 -29
  180. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +0 -18
  181. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +0 -133
  182. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToDateInputComponent.js +0 -48
  183. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +0 -37
  184. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +0 -28
  185. package/build/domain/mappers/schema/tests/test-utils.js +0 -16
  186. package/build/domain/mappers/schema/types.js +0 -1
  187. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +0 -19
  188. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +0 -23
  189. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +0 -16
  190. package/build/domain/mappers/types.js +0 -1
  191. package/build/domain/mappers/utils/FeatureFlags.js +0 -22
  192. package/build/domain/mappers/utils/behavior-utils.js +0 -44
  193. package/build/domain/mappers/utils/call-to-action-utils.js +0 -21
  194. package/build/domain/mappers/utils/getAutocompleteString.js +0 -76
  195. package/build/domain/mappers/utils/getAutocompleteString.test.js +0 -21
  196. package/build/domain/mappers/utils/groupLayoutByPinned.js +0 -38
  197. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +0 -166
  198. package/build/domain/mappers/utils/image.js +0 -9
  199. package/build/domain/mappers/utils/layout-utils.js +0 -11
  200. package/build/domain/mappers/utils/legacy-utils.js +0 -49
  201. package/build/domain/mappers/utils/media-utils.js +0 -14
  202. package/build/domain/mappers/utils/suggestions-utils.js +0 -26
  203. package/build/domain/mappers/utils/suggestions-utils.test.js +0 -36
  204. package/build/domain/mappers/utils/tags-utils.js +0 -1
  205. package/build/domain/mappers/utils/utils.js +0 -35
  206. package/build/domain/types.js +0 -1
  207. package/build/getSubflowCallbacks.js +0 -38
  208. package/build/i18n/index.js +0 -40
  209. package/build/index.js +0 -8
  210. package/build/renderers/CoreContainerRenderer.js +0 -5
  211. package/build/renderers/CoreRootRenderer.js +0 -12
  212. package/build/renderers/EmptyLoadingStateRenderer.js +0 -5
  213. package/build/renderers/getRenderFunction.js +0 -24
  214. package/build/renderers/getSchemaErrorMessageFunction.js +0 -97
  215. package/build/renderers/mappers/alertComponentToProps.js +0 -2
  216. package/build/renderers/mappers/allOfComponentToProps.js +0 -6
  217. package/build/renderers/mappers/booleanInputComponentToProps.js +0 -5
  218. package/build/renderers/mappers/boxComponentToProps.js +0 -13
  219. package/build/renderers/mappers/buttonComponentToProps.js +0 -4
  220. package/build/renderers/mappers/columnsComponentToProps.js +0 -11
  221. package/build/renderers/mappers/componentToRendererProps.js +0 -164
  222. package/build/renderers/mappers/constComponentToProps.js +0 -5
  223. package/build/renderers/mappers/containerComponentToProps.js +0 -7
  224. package/build/renderers/mappers/dateInputComponentToProps.js +0 -2
  225. package/build/renderers/mappers/decisionComponentToProps.js +0 -16
  226. package/build/renderers/mappers/dividerComponentToProps.js +0 -2
  227. package/build/renderers/mappers/externalComponentToProps.js +0 -3
  228. package/build/renderers/mappers/formComponentToProps.js +0 -12
  229. package/build/renderers/mappers/formattedValueComponentToProps.js +0 -5
  230. package/build/renderers/mappers/headingComponentToProps.js +0 -2
  231. package/build/renderers/mappers/hiddenComponentToProps.js +0 -4
  232. package/build/renderers/mappers/imageComponentToProps.js +0 -2
  233. package/build/renderers/mappers/instructionsComponentToProps.js +0 -2
  234. package/build/renderers/mappers/integerInputComponentToProps.js +0 -2
  235. package/build/renderers/mappers/listComponentToProps.js +0 -2
  236. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +0 -2
  237. package/build/renderers/mappers/markdownComponentToProps.js +0 -2
  238. package/build/renderers/mappers/mediaComponentToProps.js +0 -2
  239. package/build/renderers/mappers/modalComponentToProps.js +0 -11
  240. package/build/renderers/mappers/modalLayoutComponentToProps.js +0 -16
  241. package/build/renderers/mappers/moneyInputComponentToProps.js +0 -36
  242. package/build/renderers/mappers/multiSelectComponentToProps.js +0 -23
  243. package/build/renderers/mappers/multiUploadInputComponentToProps.js +0 -12
  244. package/build/renderers/mappers/numberInputComponentToProps.js +0 -2
  245. package/build/renderers/mappers/objectComponentToProps.js +0 -8
  246. package/build/renderers/mappers/paragraphComponentToProps.js +0 -2
  247. package/build/renderers/mappers/persistAsyncComponentToProps.js +0 -8
  248. package/build/renderers/mappers/progressComponentToProps.js +0 -2
  249. package/build/renderers/mappers/repeatableComponentToProps.js +0 -30
  250. package/build/renderers/mappers/reviewComponentToProps.js +0 -2
  251. package/build/renderers/mappers/rootComponentToProps.js +0 -21
  252. package/build/renderers/mappers/searchComponentToProps.js +0 -57
  253. package/build/renderers/mappers/sectionComponentToProps.js +0 -6
  254. package/build/renderers/mappers/selectInputComponentToProps.js +0 -34
  255. package/build/renderers/mappers/statusListComponentToProps.js +0 -2
  256. package/build/renderers/mappers/subflowComponentToRendererProps.js +0 -4
  257. package/build/renderers/mappers/tabsComponentToProps.js +0 -14
  258. package/build/renderers/mappers/textInputComponentToProps.js +0 -2
  259. package/build/renderers/mappers/tupleComponentToProps.js +0 -8
  260. package/build/renderers/mappers/uploadInputComponentToProps.js +0 -8
  261. package/build/renderers/mappers/upsellComponentToProps.js +0 -2
  262. package/build/renderers/mappers/utils/getValidationState.js +0 -12
  263. package/build/renderers/mappers/utils/inputComponentToProps.js +0 -26
  264. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +0 -9
  265. package/build/renderers/mappers/utils/pick.js +0 -8
  266. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +0 -11
  267. package/build/renderers/stepComponentToProps.js +0 -32
  268. package/build/renderers/utils.js +0 -69
  269. package/build/renderers/utils.test.js +0 -70
  270. package/build/stories/dev-tools/ContainerQueries.story.js +0 -66
  271. package/build/stories/dev-tools/Debugger.story.js +0 -38
  272. package/build/stories/dev-tools/FixtureSelect.story.js +0 -23
  273. package/build/stories/dev-tools/TestServer.story.js +0 -32
  274. package/build/stories/examples/NativeFlow.story.js +0 -80
  275. package/build/stories/examples/Recipients.story.js +0 -568
  276. package/build/stories/spec/behavior/Copy.story.js +0 -59
  277. package/build/stories/spec/behavior/Modal.story.js +0 -76
  278. package/build/stories/spec/behavior/Subflow.story.js +0 -267
  279. package/build/stories/spec/layouts/Decision.story.js +0 -241
  280. package/build/stories/spec/layouts/Image.story.js +0 -42
  281. package/build/stories/spec/layouts/Modal.story.js +0 -81
  282. package/build/stories/spec/layouts/Search.story.js +0 -325
  283. package/build/stories/spec/layouts/Upsell.story.js +0 -55
  284. package/build/stories/spec/layouts/button/Button.story.js +0 -100
  285. package/build/stories/spec/layouts/button/PinnedButton.story.js +0 -81
  286. package/build/stories/spec/response/ActionResponse.story.js +0 -66
  287. package/build/stories/spec/schemas/MultiSelect.story.js +0 -148
  288. package/build/stories/spec/schemas/Upload.story.js +0 -168
  289. package/build/stories/spec/schemas/const/ConstLayout.story.js +0 -159
  290. package/build/stories/spec/schemas/const/ObjectConst.story.js +0 -94
  291. package/build/stories/spec/schemas/features/PersistAsync.story.js +0 -211
  292. package/build/stories/spec/schemas/features/ValidationAsync.story.js +0 -103
  293. package/build/stories/spec/schemas/object/FormattedValue.story.js +0 -92
  294. package/build/stories/spec/schemas/object/MoneyInput.story.js +0 -240
  295. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +0 -55
  296. package/build/stories/spec/schemas/oneOf/OneOfWithSingleOption.story.js +0 -114
  297. package/build/stories/spec/step/Controls.story.js +0 -109
  298. package/build/stories/spec/step/DFModal.story.js +0 -58
  299. package/build/stories/spec/step/Footer.story.js +0 -70
  300. package/build/stories/spec/step/Navigation.story.js +0 -20
  301. package/build/stories/spec/step/Tags.story.js +0 -39
  302. package/build/stories/spec/step/ToolBar.story.js +0 -60
  303. package/build/stories/spec/step/features/ErrorHandling.story.js +0 -92
  304. package/build/stories/spec/step/features/External.story.js +0 -44
  305. package/build/stories/spec/step/features/Polling.story.js +0 -108
  306. package/build/stories/spec/step/features/RefreshAfter.story.js +0 -92
  307. package/build/stories/spec/step/features/refresh/Refresh.story.js +0 -258
  308. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +0 -958
  309. package/build/stories/types.js +0 -1
  310. package/build/stories/utils/fixtureHttpClient.js +0 -70
  311. package/build/stories/utils/getBasicStep.js +0 -223
  312. package/build/stories/utils/mockSearchHandler.js +0 -71
  313. package/build/stories/utils/render-utils.js +0 -41
  314. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +0 -17
  315. package/build/test-utils/DynamicFlowWise.js +0 -32
  316. package/build/test-utils/DynamicFlowWiseModal.js +0 -34
  317. package/build/test-utils/NeptuneProviders.js +0 -11
  318. package/build/test-utils/component-utils.js +0 -5
  319. package/build/test-utils/fetch-utils.js +0 -45
  320. package/build/test-utils/getMergedTestRenderers.js +0 -34
  321. package/build/test-utils/getRandomId.js +0 -1
  322. package/build/test-utils/index.js +0 -3
  323. package/build/test-utils/rtl-utils.js +0 -7
  324. package/build/test-utils/step-utils.js +0 -6
  325. package/build/test-utils/wait.js +0 -3
  326. package/build/tests/AlertLayout.test.js +0 -78
  327. package/build/tests/ArrayTuple.test.js +0 -118
  328. package/build/tests/ButtonLayout.test.js +0 -308
  329. package/build/tests/ConstLayout.test.js +0 -95
  330. package/build/tests/DateInput.test.js +0 -163
  331. package/build/tests/DecisionLayout.test.js +0 -146
  332. package/build/tests/DynamicFlow.test.js +0 -147
  333. package/build/tests/External.test.js +0 -169
  334. package/build/tests/Flow.test.js +0 -328
  335. package/build/tests/FormLayout.test.js +0 -28
  336. package/build/tests/FormattedValue.test.js +0 -107
  337. package/build/tests/ImageRenderer.test.js +0 -78
  338. package/build/tests/InitialAction.test.js +0 -179
  339. package/build/tests/InitialStep.test.js +0 -168
  340. package/build/tests/InstructionsLayout.test.js +0 -45
  341. package/build/tests/ListLayout.test.js +0 -145
  342. package/build/tests/Logging.test.js +0 -53
  343. package/build/tests/ModalBehavior.test.js +0 -149
  344. package/build/tests/MoneyInput.test.js +0 -316
  345. package/build/tests/MultiUpload.test.js +0 -293
  346. package/build/tests/NativeBack.test.js +0 -267
  347. package/build/tests/OneOfInitialisation.test.js +0 -571
  348. package/build/tests/PersistAsync.test.js +0 -686
  349. package/build/tests/Polling.test.js +0 -617
  350. package/build/tests/Prefetching.test.js +0 -230
  351. package/build/tests/RefreshAfter.test.js +0 -63
  352. package/build/tests/RefreshOnChange.ResponseHandling.test.js +0 -205
  353. package/build/tests/RefreshOnChange.test.js +0 -233
  354. package/build/tests/RefreshOnChange.with.Segmented.test.js +0 -348
  355. package/build/tests/RefreshOnChange.with.Tabs.test.js +0 -358
  356. package/build/tests/RefreshOnChangePreserve.test.js +0 -224
  357. package/build/tests/RendererProps.test.js +0 -342
  358. package/build/tests/Repeatable.test.js +0 -107
  359. package/build/tests/Rerendering.test.js +0 -67
  360. package/build/tests/ReviewLayout.test.js +0 -274
  361. package/build/tests/SchemaOnChange.test.js +0 -133
  362. package/build/tests/SchemaReferences.test.js +0 -88
  363. package/build/tests/ScrollToError.test.js +0 -217
  364. package/build/tests/SegmentedControl.test.js +0 -49
  365. package/build/tests/SingleFileUpload.test.js +0 -88
  366. package/build/tests/StatusList.test.js +0 -85
  367. package/build/tests/Subflow.test.js +0 -710
  368. package/build/tests/Submission.ResponseHandling.test.js +0 -557
  369. package/build/tests/Submission.merging.test.js +0 -202
  370. package/build/tests/Submission.test.js +0 -603
  371. package/build/tests/Tags.test.js +0 -475
  372. package/build/tests/Upsell.test.js +0 -126
  373. package/build/tests/ValidationAsync.test.js +0 -295
  374. package/build/tests/legacy/Actions.test.js +0 -158
  375. package/build/tests/legacy/BackButton.test.js +0 -114
  376. package/build/tests/legacy/HiddenSchemas.test.js +0 -246
  377. package/build/tests/legacy/MultiSelect.test.js +0 -497
  378. package/build/tests/legacy/MultipleFileUploadSchema.test.js +0 -341
  379. package/build/tests/legacy/PersistAsync.blob-schema.test.js +0 -224
  380. package/build/tests/legacy/PersistAsync.string-schema.test.js +0 -211
  381. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +0 -209
  382. package/build/tests/legacy/RefreshStepOnChange.test.js +0 -424
  383. package/build/tests/legacy/Search.test.js +0 -437
  384. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +0 -58
  385. package/build/tests/renderers/SelectInputRendererProps.test.js +0 -43
  386. package/build/tests/renderers/TextInputRenderer.test.js +0 -51
  387. package/build/types.js +0 -1
  388. package/build/useDynamicFlow.js +0 -104
  389. package/build/useDynamicFlowModal.js +0 -58
  390. package/build/utils/analyse-step.js +0 -14
  391. package/build/utils/component-utils.js +0 -8
  392. package/build/utils/component-utils.test.js +0 -113
  393. package/build/utils/getScrollToTop.js +0 -12
  394. package/build/utils/normalise-flow-id.js +0 -1
  395. package/build/utils/normalise-flow-id.test.js +0 -24
  396. package/build/utils/openLinkInNewTab.js +0 -10
  397. package/build/utils/recursiveMerge.js +0 -40
  398. package/build/utils/recursiveMerge.test.js +0 -93
  399. package/build/utils/type-utils.js +0 -21
  400. package/build/utils/type-validators.js +0 -11
  401. package/build/utils/type-validators.test.js +0 -180
  402. package/build/utils/useStableCallback.js +0 -15
@@ -1,497 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { screen, waitFor } from '@testing-library/react';
3
- import { userEvent } from '@testing-library/user-event';
4
- import { renderWithProviders } from '../../test-utils';
5
- import DynamicFlowWise from '../../test-utils/DynamicFlowWise';
6
- import { vi } from 'vitest';
7
- const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime });
8
- const currencySelectSchema = (arraySchemaControl) => ({
9
- $id: '#schema',
10
- type: 'object',
11
- displayOrder: ['currencies'],
12
- required: [],
13
- properties: {
14
- currencies: {
15
- type: 'array',
16
- title: 'Select your currencies',
17
- minItems: 2,
18
- maxItems: 2,
19
- description: 'This is an example of an array schema with const options.',
20
- addItemTitle: '',
21
- editItemTitle: '',
22
- control: arraySchemaControl,
23
- items: {
24
- oneOf: [
25
- {
26
- title: 'EUR',
27
- description: 'Euro',
28
- icon: { name: 'flag-eur' },
29
- const: 'EUR',
30
- },
31
- {
32
- title: 'GBP',
33
- description: 'British pound',
34
- icon: { name: 'flag-gbp' },
35
- const: 'GBP',
36
- },
37
- {
38
- title: 'USD',
39
- description: 'US dollar',
40
- icon: { name: 'flag-usd' },
41
- const: 'USD',
42
- },
43
- ],
44
- },
45
- },
46
- },
47
- });
48
- const basicStep = (arraySchemaControl) => ({
49
- id: 'MultiSelect',
50
- title: '',
51
- schemas: [currencySelectSchema(arraySchemaControl)],
52
- layout: [
53
- {
54
- type: 'form',
55
- schemaId: '#schema',
56
- },
57
- {
58
- type: 'button',
59
- title: 'Submit',
60
- action: { url: '/submit', method: 'POST' },
61
- },
62
- ],
63
- });
64
- const mockHttpClient = vi.fn();
65
- const getProps = (overrides = {}) => (Object.assign({ flowId: 'repeatable-test-flow-id', initialStep: basicStep(undefined), httpClient: mockHttpClient, onCompletion: vi.fn(), onError: vi.fn(), onEvent: vi.fn(), onLog: vi.fn(), onLink: vi.fn() }, overrides));
66
- describe('Multi-Select', () => {
67
- it('renders the SelectInput component', () => {
68
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, getProps({}))));
69
- expect(screen.getByRole('combobox', { name: /select your currencies/i })).toBeInTheDocument();
70
- });
71
- describe('when a model is provided', () => {
72
- it('should initialise the component with pre-selected values from the model', async () => {
73
- const props = getProps({
74
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { model: { currencies: ['USD', 'GBP'] } }),
75
- });
76
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
77
- expect(screen.getByText(/USD and 1 more/)).toBeInTheDocument();
78
- await user.click(screen.getByRole('button', { name: /submit/i }));
79
- await waitFor(() => {
80
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.objectContaining({
81
- body: JSON.stringify({ currencies: ['USD', 'GBP'] }),
82
- }));
83
- });
84
- });
85
- it('should only initialise with values in the OneOf', async () => {
86
- const props = getProps({
87
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { model: { currencies: ['GBP', 'USD', 'AUD'] } }),
88
- });
89
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
90
- expect(screen.getByText(/GBP and 1 more/)).toBeInTheDocument();
91
- await user.click(screen.getByRole('button', { name: /submit/i }));
92
- await waitFor(() => {
93
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.objectContaining({
94
- body: JSON.stringify({ currencies: ['GBP', 'USD'] }),
95
- }));
96
- });
97
- });
98
- });
99
- describe('when validation errors are provided in the step', () => {
100
- const props = getProps({
101
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { model: null, errors: { validation: { currencies: 'You cannot select USD and EUR' } } }),
102
- });
103
- it('should display initial errors', () => {
104
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
105
- expect(screen.getByText(/you cannot select usd and eur/i)).toBeInTheDocument();
106
- });
107
- it('should hide them when the selection has changed', async () => {
108
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
109
- await user.click(screen.getByRole('combobox', { name: /Select your currencies/ }));
110
- await waitFor(() => {
111
- expect(screen.getByText(/gbp/i)).toBeInTheDocument();
112
- });
113
- await user.click(screen.getByText(/gbp/i));
114
- await user.keyboard('{Escape}');
115
- expect(screen.queryByText(/you cannot select usd and eur/i)).not.toBeInTheDocument();
116
- });
117
- });
118
- describe('when the user selects an item', () => {
119
- const props = getProps({
120
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { model: { currencies: ['USD'] } }),
121
- });
122
- it('should show in the input box', async () => {
123
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
124
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
125
- await user.click(screen.getByText('EUR'));
126
- expect(screen.getByText(/USD and 1 more/)).toBeInTheDocument();
127
- });
128
- it('should be added to the model', async () => {
129
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
130
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
131
- await user.click(screen.getByText('EUR'));
132
- await user.click(screen.getByRole('button', { name: /submit/i }));
133
- await waitFor(() => {
134
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.objectContaining({
135
- body: JSON.stringify({ currencies: ['USD', 'EUR'] }),
136
- }));
137
- });
138
- });
139
- });
140
- describe('when the user de-selects an item', () => {
141
- const props = getProps({
142
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { model: { currencies: ['USD', 'EUR', 'GBP'] } }),
143
- });
144
- it('should remove from the input box', async () => {
145
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
146
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
147
- await user.click(screen.getByText('EUR'));
148
- expect(screen.getByText(/USD and 1 more/)).toBeInTheDocument();
149
- });
150
- it('should be removed from the model', async () => {
151
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
152
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
153
- await user.click(screen.getByText('EUR'));
154
- await user.click(screen.getByRole('button', { name: /submit/i }));
155
- await waitFor(() => {
156
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.objectContaining({
157
- body: JSON.stringify({ currencies: ['USD', 'GBP'] }),
158
- }));
159
- });
160
- });
161
- });
162
- // modified
163
- describe('local validation', () => {
164
- describe('when minItems is provided', () => {
165
- it('should pass validation when no items are provided', async () => {
166
- mockHttpClient.mockReset();
167
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, getProps())));
168
- await user.click(screen.getByRole('button', { name: 'Submit' }));
169
- await waitFor(() => {
170
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.anything());
171
- });
172
- });
173
- it('should show an error message onClose when selected is greater than 0 but below minItems', async () => {
174
- mockHttpClient.mockReset();
175
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, getProps())));
176
- // open
177
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
178
- await user.click(screen.getByText('EUR'));
179
- // close
180
- await user.keyboard('{Escape}');
181
- await waitFor(() => {
182
- expect(screen.getByText(/please add at least 2/i)).toBeInTheDocument();
183
- });
184
- });
185
- });
186
- describe('when maxItems is provided', () => {
187
- it('should show an error message onClose', async () => {
188
- mockHttpClient.mockReset();
189
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, getProps())));
190
- // open
191
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
192
- await user.click(screen.getByText('EUR'));
193
- await user.click(screen.getByText('USD'));
194
- await user.click(screen.getByText('GBP'));
195
- // close
196
- await user.keyboard('{Escape}');
197
- await waitFor(() => {
198
- expect(screen.getByText(/please add 2 or fewer/i)).toBeInTheDocument();
199
- });
200
- });
201
- });
202
- describe('when required is provided', () => {
203
- const props = getProps({
204
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { schemas: [
205
- Object.assign(Object.assign({}, currencySelectSchema(undefined)), { required: ['currencies'] }),
206
- ] }),
207
- });
208
- it('should show an error message when submission is attempted and no values selected', async () => {
209
- mockHttpClient.mockReset();
210
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
211
- await user.click(screen.getByRole('button', { name: /submit/i }));
212
- expect(screen.getByText(/please fill out this field/i)).toBeInTheDocument();
213
- });
214
- it('should show onClose after deselecting all options', async () => {
215
- mockHttpClient.mockReset();
216
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
217
- // open
218
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
219
- await user.click(screen.getByRole('option', { name: 'EUR Euro' }));
220
- await user.click(screen.getByRole('option', { name: 'USD US dollar' }));
221
- // close
222
- await user.keyboard('{Escape}');
223
- // open
224
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
225
- await user.click(screen.getByRole('option', { name: 'EUR Euro' }));
226
- await user.click(screen.getByRole('option', { name: 'USD US dollar' }));
227
- // close
228
- await user.keyboard('{Escape}');
229
- expect(screen.getByText(/please fill out this field/i)).toBeInTheDocument();
230
- });
231
- });
232
- describe('when custom validation messages are provided', () => {
233
- const schemaWithCustomValidationMessages = {
234
- $id: '#schema',
235
- type: 'object',
236
- displayOrder: ['currencies'],
237
- required: ['currencies'],
238
- properties: {
239
- currencies: {
240
- type: 'array',
241
- title: 'Select your currencies',
242
- description: 'This is an example of an array schema with const options.',
243
- validationMessages: {
244
- required: 'custom required message',
245
- },
246
- addItemTitle: '',
247
- editItemTitle: '',
248
- items: {
249
- oneOf: [
250
- {
251
- title: 'EUR',
252
- description: 'Euro',
253
- icon: { name: 'flag-eur' },
254
- const: 'EUR',
255
- },
256
- {
257
- title: 'GBP',
258
- description: 'British pound',
259
- icon: { name: 'flag-gbp' },
260
- const: 'GBP',
261
- },
262
- {
263
- title: 'USD',
264
- description: 'US dollar',
265
- icon: { name: 'flag-usd' },
266
- const: 'USD',
267
- },
268
- ],
269
- },
270
- },
271
- },
272
- };
273
- const props = getProps({
274
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { schemas: [schemaWithCustomValidationMessages] }),
275
- });
276
- it('should use those when showing errors', async () => {
277
- mockHttpClient.mockReset();
278
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
279
- await user.click(screen.getByRole('button', { name: /submit/i }));
280
- await waitFor(() => {
281
- expect(screen.getByText(/custom required message/i)).toBeInTheDocument();
282
- });
283
- });
284
- });
285
- });
286
- // NEW IN REVAMP
287
- describe('async operations', () => {
288
- describe('validation async', () => {
289
- const currencySelectValidationAsyncSchema = {
290
- $id: '#schema',
291
- type: 'object',
292
- displayOrder: ['currencies'],
293
- required: [],
294
- properties: {
295
- currencies: {
296
- type: 'array',
297
- title: 'Select your currencies',
298
- description: 'This is an example of an array schema with const options.',
299
- addItemTitle: '',
300
- editItemTitle: '',
301
- validationAsync: {
302
- param: 'value',
303
- method: 'POST',
304
- url: '/validate',
305
- },
306
- items: {
307
- oneOf: [
308
- {
309
- title: 'EUR',
310
- description: 'Euro',
311
- icon: { name: 'flag-eur' },
312
- const: 'EUR',
313
- },
314
- {
315
- title: 'GBP',
316
- description: 'British pound',
317
- icon: { name: 'flag-gbp' },
318
- const: 'GBP',
319
- },
320
- {
321
- title: 'USD',
322
- description: 'US dollar',
323
- icon: { name: 'flag-usd' },
324
- const: 'USD',
325
- },
326
- ],
327
- },
328
- },
329
- },
330
- };
331
- const props = getProps({
332
- initialStep: Object.assign(Object.assign({}, basicStep(undefined)), { schemas: [currencySelectValidationAsyncSchema] }),
333
- });
334
- it('triggers validation async when the dropdown is closed', async () => {
335
- mockHttpClient.mockReset();
336
- const mockOnEvent = vi.fn();
337
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props, { onEvent: mockOnEvent })));
338
- // open
339
- await user.click(screen.getByRole('combobox', { name: 'Select your currencies' }));
340
- await user.click(screen.getByText('EUR'));
341
- // close
342
- await user.keyboard('{Escape}');
343
- await waitFor(() => {
344
- expect(mockHttpClient).toHaveBeenCalledWith('/validate', expect.anything());
345
- });
346
- });
347
- });
348
- });
349
- });
350
- describe('Inline Multi-Select', () => {
351
- it('renders the ListItem components', () => {
352
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, getProps({ initialStep: basicStep('inline') }))));
353
- expect(screen.getByRole('checkbox', { name: /EUR Euro/i })).toBeInTheDocument();
354
- expect(screen.getByRole('checkbox', { name: /GBP British pound/i })).toBeInTheDocument();
355
- expect(screen.getByRole('checkbox', { name: /USD US dollar/i })).toBeInTheDocument();
356
- });
357
- describe('when a model is provided', () => {
358
- it('should initialise each list item with pre-selected values from the model', async () => {
359
- const props = getProps({
360
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { model: { currencies: ['USD', 'GBP'] } }),
361
- });
362
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
363
- expect(screen.getByRole('checkbox', { name: /USD US dollar/i })).toBeChecked();
364
- expect(screen.getByRole('checkbox', { name: /GBP British pound/i })).toBeChecked();
365
- expect(screen.getByRole('checkbox', { name: /EUR Euro/i })).not.toBeChecked();
366
- });
367
- });
368
- describe('when validation errors are provided in the step', () => {
369
- const props = getProps({
370
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { model: null, errors: { validation: { currencies: 'You cannot select USD and EUR' } } }),
371
- });
372
- it('should display initial errors', () => {
373
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
374
- expect(screen.getByText(/you cannot select usd and eur/i)).toBeInTheDocument();
375
- });
376
- });
377
- describe('when the user selects an item', () => {
378
- const props = getProps({
379
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { model: { currencies: ['USD'] } }),
380
- });
381
- it('should show as checked', async () => {
382
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
383
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
384
- expect(screen.getByRole('checkbox', { name: /EUR Euro/i })).toBeChecked();
385
- });
386
- it('should be added to the model', async () => {
387
- mockHttpClient.mockReset();
388
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
389
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
390
- await user.click(screen.getByRole('button', { name: /submit/i }));
391
- await waitFor(() => {
392
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.objectContaining({
393
- body: JSON.stringify({ currencies: ['USD', 'EUR'] }),
394
- }));
395
- });
396
- });
397
- });
398
- describe('when the user de-selects an item', () => {
399
- const props = getProps({
400
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { model: { currencies: ['USD', 'EUR', 'GBP'] } }),
401
- });
402
- it('should show as unchecked', async () => {
403
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
404
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
405
- expect(screen.getByRole('checkbox', { name: /EUR Euro/i })).not.toBeChecked();
406
- });
407
- it('should be removed from the model', async () => {
408
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
409
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
410
- await user.click(screen.getByRole('button', { name: /submit/i }));
411
- await waitFor(() => {
412
- expect(mockHttpClient).toHaveBeenCalledWith('/submit', expect.objectContaining({
413
- body: JSON.stringify({ currencies: ['USD', 'GBP'] }),
414
- }));
415
- });
416
- });
417
- });
418
- describe('local validation', () => {
419
- describe('when minItems is provided', () => {
420
- it('should show an error message when selected is below minItems', async () => {
421
- const props = getProps({ initialStep: basicStep('inline') });
422
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
423
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
424
- await waitFor(() => {
425
- expect(screen.getByText(/please add at least 2/i)).toBeInTheDocument();
426
- });
427
- });
428
- });
429
- describe('when maxItems is provided', () => {
430
- it('should show an error message when selected is above maxItems', async () => {
431
- const props = getProps({
432
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { model: { currencies: ['USD'] } }),
433
- });
434
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
435
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
436
- await user.click(screen.getByRole('checkbox', { name: /GBP British pound/i }));
437
- await waitFor(() => {
438
- expect(screen.getByText(/please add 2 or fewer/i)).toBeInTheDocument();
439
- });
440
- });
441
- });
442
- describe('when required is provided', () => {
443
- const props = getProps({
444
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { schemas: [
445
- Object.assign(Object.assign({}, currencySelectSchema('inline')), { required: ['currencies'] }),
446
- ] }),
447
- });
448
- it('should show an error message when submission is attempted and no values selected', async () => {
449
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
450
- await user.click(screen.getByRole('button', { name: /submit/i }));
451
- expect(screen.getByText(/please fill out this field/i)).toBeInTheDocument();
452
- });
453
- });
454
- describe('when custom validation messages are provided', () => {
455
- //
456
- const schema = currencySelectSchema('inline');
457
- schema.required = ['currencies'];
458
- const arraySchema = schema.properties.currencies;
459
- arraySchema.validationMessages = {
460
- required: 'custom required message',
461
- };
462
- const props = getProps({
463
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { schemas: [schema] }),
464
- });
465
- it('should use those when showing errors', async () => {
466
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props)));
467
- await user.click(screen.getByRole('button', { name: /submit/i }));
468
- await waitFor(() => {
469
- expect(screen.getByText(/custom required message/i)).toBeInTheDocument();
470
- });
471
- });
472
- });
473
- });
474
- describe('async operations', () => {
475
- describe('validation async', () => {
476
- const schema = currencySelectSchema('inline');
477
- const arraySchema = schema.properties.currencies;
478
- arraySchema.validationAsync = {
479
- param: 'value',
480
- method: 'POST',
481
- url: '/validate',
482
- };
483
- const props = getProps({
484
- initialStep: Object.assign(Object.assign({}, basicStep('inline')), { schemas: [schema] }),
485
- });
486
- it('triggers validation async when an item is selected', async () => {
487
- mockHttpClient.mockReset();
488
- renderWithProviders(_jsx(DynamicFlowWise, Object.assign({}, props, { onEvent: vi.fn() })));
489
- await user.click(screen.getByRole('checkbox', { name: /EUR Euro/i }));
490
- await user.click(screen.getByRole('checkbox', { name: /USD US dollar/i }));
491
- await waitFor(() => {
492
- expect(mockHttpClient).toHaveBeenCalledWith('/validate', expect.anything());
493
- });
494
- });
495
- });
496
- });
497
- });