@wise/dynamic-flow-client 5.9.1 → 5.9.2-exp-ext-renderer-5899c9c

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 (400) hide show
  1. package/package.json +11 -10
  2. package/build/DynamicFlowCore.js +0 -5
  3. package/build/common/errorBoundary/ErrorBoundary.js +0 -26
  4. package/build/common/errorBoundary/ErrorBoundary.test.js +0 -29
  5. package/build/common/errorBoundary/ErrorBoundaryAlert.js +0 -11
  6. package/build/common/makeHttpClient/api-utils.js +0 -3
  7. package/build/common/makeHttpClient/index.js +0 -1
  8. package/build/common/makeHttpClient/makeHttpClient.js +0 -10
  9. package/build/common/makeHttpClient/makeHttpClient.test.js +0 -186
  10. package/build/common/messages/external-confirmation.messages.js +0 -23
  11. package/build/common/messages/file-upload.messages.js +0 -13
  12. package/build/common/messages/generic-error.messages.js +0 -18
  13. package/build/common/messages/help.messages.js +0 -8
  14. package/build/common/messages/multi-file-upload.messages.js +0 -18
  15. package/build/common/messages/multi-select.messages.js +0 -8
  16. package/build/common/messages/paragraph.messages.js +0 -13
  17. package/build/common/messages/repeatable.messages.js +0 -23
  18. package/build/common/messages/search.messages.js +0 -8
  19. package/build/common/messages/validation.array.messages.js +0 -13
  20. package/build/common/messages/validation.messages.js +0 -53
  21. package/build/controller/FlowController.js +0 -368
  22. package/build/controller/executePoll.js +0 -49
  23. package/build/controller/executeRefresh.js +0 -39
  24. package/build/controller/executeRequest.js +0 -77
  25. package/build/controller/executeSubmission.js +0 -69
  26. package/build/controller/getErrorMessage.js +0 -7
  27. package/build/controller/getRequestAbortController.js +0 -13
  28. package/build/controller/getResponseType.js +0 -35
  29. package/build/controller/getSafeHttpClient.js +0 -8
  30. package/build/controller/getStepCounter.js +0 -16
  31. package/build/controller/handleErrorResponse.js +0 -26
  32. package/build/controller/makeSafeHttpClient.js +0 -8
  33. package/build/controller/response-utils.js +0 -72
  34. package/build/domain/components/AlertComponent.js +0 -1
  35. package/build/domain/components/AllOfComponent.js +0 -40
  36. package/build/domain/components/BooleanInputComponent.js +0 -50
  37. package/build/domain/components/BoxComponent.js +0 -3
  38. package/build/domain/components/ButtonComponent.js +0 -1
  39. package/build/domain/components/ColumnsComponent.js +0 -3
  40. package/build/domain/components/ConstComponent.js +0 -18
  41. package/build/domain/components/ContainerComponent.js +0 -3
  42. package/build/domain/components/DateInputComponent.js +0 -75
  43. package/build/domain/components/DecisionComponent.js +0 -1
  44. package/build/domain/components/DividerComponent.js +0 -1
  45. package/build/domain/components/FormComponent.js +0 -3
  46. package/build/domain/components/FormattedValueComponent.js +0 -44
  47. package/build/domain/components/HeadingComponent.js +0 -1
  48. package/build/domain/components/ImageComponent.js +0 -1
  49. package/build/domain/components/InstructionsComponent.js +0 -1
  50. package/build/domain/components/IntegerInputComponent.js +0 -74
  51. package/build/domain/components/ListComponent.js +0 -1
  52. package/build/domain/components/LoadingIndicatorComponent.js +0 -1
  53. package/build/domain/components/MarkdownComponent.js +0 -1
  54. package/build/domain/components/MediaComponent.js +0 -1
  55. package/build/domain/components/ModalComponent.js +0 -16
  56. package/build/domain/components/ModalLayoutComponent.js +0 -3
  57. package/build/domain/components/MoneyInputComponent.js +0 -57
  58. package/build/domain/components/MultiSelectInputComponent.js +0 -81
  59. package/build/domain/components/MultiUploadInputComponent.js +0 -88
  60. package/build/domain/components/NumberInputComponent.js +0 -73
  61. package/build/domain/components/ObjectComponent.js +0 -45
  62. package/build/domain/components/ParagraphComponent.js +0 -1
  63. package/build/domain/components/PersistAsyncComponent.js +0 -92
  64. package/build/domain/components/ProgressComponent.js +0 -1
  65. package/build/domain/components/RepeatableComponent.js +0 -103
  66. package/build/domain/components/ReviewComponent.js +0 -1
  67. package/build/domain/components/RootDomainComponent.js +0 -173
  68. package/build/domain/components/SectionComponent.js +0 -5
  69. package/build/domain/components/SelectInputComponent.js +0 -88
  70. package/build/domain/components/StatusListComponent.js +0 -1
  71. package/build/domain/components/SubflowDomainComponent.js +0 -9
  72. package/build/domain/components/TabsComponent.js +0 -1
  73. package/build/domain/components/TextInputComponent.js +0 -76
  74. package/build/domain/components/TupleComponent.js +0 -41
  75. package/build/domain/components/UploadInputComponent.js +0 -83
  76. package/build/domain/components/UpsellComponent.js +0 -25
  77. package/build/domain/components/searchComponent/SearchComponent.js +0 -92
  78. package/build/domain/components/searchComponent/SearchComponent.test.js +0 -190
  79. package/build/domain/components/step/ExternalConfirmationComponent.js +0 -28
  80. package/build/domain/components/step/StepDomainComponent.js +0 -78
  81. package/build/domain/components/step/ToolbarComponent.js +0 -1
  82. package/build/domain/components/utils/WithUpdate.js +0 -1
  83. package/build/domain/components/utils/component-utils.js +0 -12
  84. package/build/domain/components/utils/debounce.js +0 -34
  85. package/build/domain/components/utils/debounce.test.js +0 -67
  86. package/build/domain/components/utils/file-utils.js +0 -21
  87. package/build/domain/components/utils/file-utils.test.js +0 -27
  88. package/build/domain/components/utils/getRandomId.js +0 -1
  89. package/build/domain/components/utils/isExactLocalValueMatch.js +0 -14
  90. package/build/domain/components/utils/isOrWasValid.js +0 -5
  91. package/build/domain/components/utils/isPartialModelMatch.js +0 -18
  92. package/build/domain/components/utils/isPartialModelMatch.test.js +0 -74
  93. package/build/domain/features/eventNames.js +0 -24
  94. package/build/domain/features/events.js +0 -1
  95. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +0 -50
  96. package/build/domain/features/persistAsync/getInitialPersistedState.js +0 -7
  97. package/build/domain/features/persistAsync/getPerformPersistAsync.js +0 -43
  98. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +0 -139
  99. package/build/domain/features/polling/getStepPolling.js +0 -43
  100. package/build/domain/features/polling/getStepPolling.test.js +0 -90
  101. package/build/domain/features/prefetch/getStepPrefetch.js +0 -43
  102. package/build/domain/features/prefetch/request-cache.js +0 -49
  103. package/build/domain/features/prefetch/request-cache.test.js +0 -70
  104. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +0 -24
  105. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +0 -40
  106. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +0 -50
  107. package/build/domain/features/schema-on-change/getSchemaOnChange.js +0 -34
  108. package/build/domain/features/search/getPerformSearchFunction.js +0 -75
  109. package/build/domain/features/search/getPerformSearchFunction.test.js +0 -301
  110. package/build/domain/features/summary/summary-utils.js +0 -40
  111. package/build/domain/features/summary/summary-utils.test.js +0 -125
  112. package/build/domain/features/utils/http-utils.js +0 -21
  113. package/build/domain/features/utils/response-utils.js +0 -9
  114. package/build/domain/features/validation/spec-utils.js +0 -19
  115. package/build/domain/features/validation/validateStringPattern.js +0 -24
  116. package/build/domain/features/validation/validation-functions.js +0 -6
  117. package/build/domain/features/validation/validation-functions.test.js +0 -108
  118. package/build/domain/features/validation/value-checks.js +0 -125
  119. package/build/domain/features/validation/value-checks.test.js +0 -262
  120. package/build/domain/features/validationAsync/getComponentValidationAsync.js +0 -53
  121. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +0 -67
  122. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +0 -5
  123. package/build/domain/features/validationAsync/getPerformValidationAsync.js +0 -45
  124. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +0 -143
  125. package/build/domain/mappers/layout/alertLayoutToComponent.js +0 -16
  126. package/build/domain/mappers/layout/boxLayoutToComponent.js +0 -13
  127. package/build/domain/mappers/layout/buttonLayoutToComponent.js +0 -77
  128. package/build/domain/mappers/layout/columnsLayoutToComponent.js +0 -13
  129. package/build/domain/mappers/layout/decisionLayoutToComponent.js +0 -22
  130. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +0 -30
  131. package/build/domain/mappers/layout/dividerLayoutToComponent.js +0 -2
  132. package/build/domain/mappers/layout/formLayoutToComponent.js +0 -19
  133. package/build/domain/mappers/layout/headingLayoutToComponent.js +0 -12
  134. package/build/domain/mappers/layout/imageLayoutToComponent.js +0 -20
  135. package/build/domain/mappers/layout/infoLayoutToComponent.js +0 -12
  136. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +0 -12
  137. package/build/domain/mappers/layout/listLayoutToComponent.js +0 -39
  138. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +0 -9
  139. package/build/domain/mappers/layout/markdownLayoutToComponent.js +0 -12
  140. package/build/domain/mappers/layout/mediaLayoutToComponent.js +0 -12
  141. package/build/domain/mappers/layout/modalLayoutToComponent.js +0 -17
  142. package/build/domain/mappers/layout/modalToComponent.js +0 -8
  143. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +0 -12
  144. package/build/domain/mappers/layout/progressLayoutToComponent.js +0 -15
  145. package/build/domain/mappers/layout/reviewLayoutToComponent.js +0 -48
  146. package/build/domain/mappers/layout/searchLayoutToComponent.js +0 -44
  147. package/build/domain/mappers/layout/sectionLayoutToComponent.js +0 -15
  148. package/build/domain/mappers/layout/statusListLayoutToComponent.js +0 -15
  149. package/build/domain/mappers/layout/tabsLayoutToComponent.js +0 -16
  150. package/build/domain/mappers/layout/upsellLayoutToComponent.js +0 -25
  151. package/build/domain/mappers/mapLayoutToComponent.js +0 -81
  152. package/build/domain/mappers/mapSchemaToComponent.js +0 -61
  153. package/build/domain/mappers/mapSchemaToComponent.test.js +0 -112
  154. package/build/domain/mappers/mapStepSchemas.js +0 -15
  155. package/build/domain/mappers/mapStepToComponent.js +0 -133
  156. package/build/domain/mappers/mapStepToComponent.test.js +0 -221
  157. package/build/domain/mappers/mapToolbarToComponent.js +0 -15
  158. package/build/domain/mappers/schema/allOfSchemaToComponent.js +0 -16
  159. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +0 -26
  160. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +0 -55
  161. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +0 -67
  162. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +0 -57
  163. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +0 -20
  164. package/build/domain/mappers/schema/blobSchemaToComponent.js +0 -15
  165. package/build/domain/mappers/schema/booleanSchemaToComponent.js +0 -29
  166. package/build/domain/mappers/schema/constSchemaToComponent.js +0 -23
  167. package/build/domain/mappers/schema/integerSchemaToComponent.js +0 -28
  168. package/build/domain/mappers/schema/numberSchemaToComponent.js +0 -26
  169. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +0 -23
  170. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +0 -9
  171. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +0 -119
  172. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +0 -96
  173. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +0 -31
  174. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +0 -99
  175. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +0 -66
  176. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +0 -225
  177. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +0 -29
  178. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +0 -18
  179. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +0 -133
  180. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToDateInputComponent.js +0 -48
  181. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +0 -37
  182. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +0 -28
  183. package/build/domain/mappers/schema/tests/test-utils.js +0 -16
  184. package/build/domain/mappers/schema/types.js +0 -1
  185. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +0 -19
  186. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +0 -23
  187. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +0 -16
  188. package/build/domain/mappers/types.js +0 -1
  189. package/build/domain/mappers/utils/FeatureFlags.js +0 -22
  190. package/build/domain/mappers/utils/behavior-utils.js +0 -44
  191. package/build/domain/mappers/utils/call-to-action-utils.js +0 -21
  192. package/build/domain/mappers/utils/getAutocompleteString.js +0 -76
  193. package/build/domain/mappers/utils/getAutocompleteString.test.js +0 -21
  194. package/build/domain/mappers/utils/groupLayoutByPinned.js +0 -38
  195. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +0 -166
  196. package/build/domain/mappers/utils/image.js +0 -9
  197. package/build/domain/mappers/utils/layout-utils.js +0 -11
  198. package/build/domain/mappers/utils/legacy-utils.js +0 -49
  199. package/build/domain/mappers/utils/media-utils.js +0 -14
  200. package/build/domain/mappers/utils/suggestions-utils.js +0 -26
  201. package/build/domain/mappers/utils/suggestions-utils.test.js +0 -36
  202. package/build/domain/mappers/utils/tags-utils.js +0 -1
  203. package/build/domain/mappers/utils/utils.js +0 -35
  204. package/build/domain/types.js +0 -1
  205. package/build/getSubflowCallbacks.js +0 -38
  206. package/build/i18n/index.js +0 -40
  207. package/build/index.js +0 -8
  208. package/build/renderers/CoreContainerRenderer.js +0 -5
  209. package/build/renderers/CoreRootRenderer.js +0 -12
  210. package/build/renderers/EmptyLoadingStateRenderer.js +0 -5
  211. package/build/renderers/getRenderFunction.js +0 -24
  212. package/build/renderers/getSchemaErrorMessageFunction.js +0 -97
  213. package/build/renderers/mappers/alertComponentToProps.js +0 -2
  214. package/build/renderers/mappers/allOfComponentToProps.js +0 -6
  215. package/build/renderers/mappers/booleanInputComponentToProps.js +0 -5
  216. package/build/renderers/mappers/boxComponentToProps.js +0 -13
  217. package/build/renderers/mappers/buttonComponentToProps.js +0 -4
  218. package/build/renderers/mappers/columnsComponentToProps.js +0 -11
  219. package/build/renderers/mappers/componentToRendererProps.js +0 -164
  220. package/build/renderers/mappers/constComponentToProps.js +0 -5
  221. package/build/renderers/mappers/containerComponentToProps.js +0 -7
  222. package/build/renderers/mappers/dateInputComponentToProps.js +0 -2
  223. package/build/renderers/mappers/decisionComponentToProps.js +0 -16
  224. package/build/renderers/mappers/dividerComponentToProps.js +0 -2
  225. package/build/renderers/mappers/externalComponentToProps.js +0 -3
  226. package/build/renderers/mappers/formComponentToProps.js +0 -12
  227. package/build/renderers/mappers/formattedValueComponentToProps.js +0 -5
  228. package/build/renderers/mappers/headingComponentToProps.js +0 -2
  229. package/build/renderers/mappers/hiddenComponentToProps.js +0 -4
  230. package/build/renderers/mappers/imageComponentToProps.js +0 -2
  231. package/build/renderers/mappers/instructionsComponentToProps.js +0 -2
  232. package/build/renderers/mappers/integerInputComponentToProps.js +0 -2
  233. package/build/renderers/mappers/listComponentToProps.js +0 -2
  234. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +0 -2
  235. package/build/renderers/mappers/markdownComponentToProps.js +0 -2
  236. package/build/renderers/mappers/mediaComponentToProps.js +0 -2
  237. package/build/renderers/mappers/modalComponentToProps.js +0 -11
  238. package/build/renderers/mappers/modalLayoutComponentToProps.js +0 -16
  239. package/build/renderers/mappers/moneyInputComponentToProps.js +0 -36
  240. package/build/renderers/mappers/multiSelectComponentToProps.js +0 -23
  241. package/build/renderers/mappers/multiUploadInputComponentToProps.js +0 -12
  242. package/build/renderers/mappers/numberInputComponentToProps.js +0 -2
  243. package/build/renderers/mappers/objectComponentToProps.js +0 -8
  244. package/build/renderers/mappers/paragraphComponentToProps.js +0 -2
  245. package/build/renderers/mappers/persistAsyncComponentToProps.js +0 -8
  246. package/build/renderers/mappers/progressComponentToProps.js +0 -2
  247. package/build/renderers/mappers/repeatableComponentToProps.js +0 -30
  248. package/build/renderers/mappers/reviewComponentToProps.js +0 -2
  249. package/build/renderers/mappers/rootComponentToProps.js +0 -21
  250. package/build/renderers/mappers/searchComponentToProps.js +0 -57
  251. package/build/renderers/mappers/sectionComponentToProps.js +0 -6
  252. package/build/renderers/mappers/selectInputComponentToProps.js +0 -34
  253. package/build/renderers/mappers/statusListComponentToProps.js +0 -2
  254. package/build/renderers/mappers/subflowComponentToRendererProps.js +0 -4
  255. package/build/renderers/mappers/tabsComponentToProps.js +0 -14
  256. package/build/renderers/mappers/textInputComponentToProps.js +0 -2
  257. package/build/renderers/mappers/tupleComponentToProps.js +0 -8
  258. package/build/renderers/mappers/uploadInputComponentToProps.js +0 -8
  259. package/build/renderers/mappers/upsellComponentToProps.js +0 -2
  260. package/build/renderers/mappers/utils/getValidationState.js +0 -12
  261. package/build/renderers/mappers/utils/inputComponentToProps.js +0 -26
  262. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +0 -9
  263. package/build/renderers/mappers/utils/pick.js +0 -8
  264. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +0 -11
  265. package/build/renderers/stepComponentToProps.js +0 -32
  266. package/build/renderers/utils.js +0 -69
  267. package/build/renderers/utils.test.js +0 -70
  268. package/build/stories/dev-tools/ContainerQueries.story.js +0 -66
  269. package/build/stories/dev-tools/Debugger.story.js +0 -38
  270. package/build/stories/dev-tools/FixtureSelect.story.js +0 -23
  271. package/build/stories/dev-tools/TestServer.story.js +0 -32
  272. package/build/stories/examples/NativeFlow.story.js +0 -80
  273. package/build/stories/examples/Recipients.story.js +0 -568
  274. package/build/stories/spec/behavior/Copy.story.js +0 -59
  275. package/build/stories/spec/behavior/Modal.story.js +0 -76
  276. package/build/stories/spec/behavior/Subflow.story.js +0 -267
  277. package/build/stories/spec/layouts/Decision.story.js +0 -241
  278. package/build/stories/spec/layouts/Image.story.js +0 -42
  279. package/build/stories/spec/layouts/Modal.story.js +0 -81
  280. package/build/stories/spec/layouts/Search.story.js +0 -325
  281. package/build/stories/spec/layouts/Upsell.story.js +0 -55
  282. package/build/stories/spec/layouts/button/Button.story.js +0 -100
  283. package/build/stories/spec/layouts/button/PinnedButton.story.js +0 -81
  284. package/build/stories/spec/response/ActionResponse.story.js +0 -66
  285. package/build/stories/spec/schemas/MultiSelect.story.js +0 -148
  286. package/build/stories/spec/schemas/Upload.story.js +0 -168
  287. package/build/stories/spec/schemas/const/ConstLayout.story.js +0 -159
  288. package/build/stories/spec/schemas/const/ObjectConst.story.js +0 -94
  289. package/build/stories/spec/schemas/features/PersistAsync.story.js +0 -211
  290. package/build/stories/spec/schemas/features/ValidationAsync.story.js +0 -103
  291. package/build/stories/spec/schemas/object/FormattedValue.story.js +0 -92
  292. package/build/stories/spec/schemas/object/MoneyInput.story.js +0 -240
  293. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +0 -55
  294. package/build/stories/spec/schemas/oneOf/OneOfWithSingleOption.story.js +0 -114
  295. package/build/stories/spec/step/Controls.story.js +0 -109
  296. package/build/stories/spec/step/DFModal.story.js +0 -58
  297. package/build/stories/spec/step/Footer.story.js +0 -70
  298. package/build/stories/spec/step/Navigation.story.js +0 -20
  299. package/build/stories/spec/step/Tags.story.js +0 -39
  300. package/build/stories/spec/step/ToolBar.story.js +0 -60
  301. package/build/stories/spec/step/features/ErrorHandling.story.js +0 -92
  302. package/build/stories/spec/step/features/External.story.js +0 -44
  303. package/build/stories/spec/step/features/Polling.story.js +0 -108
  304. package/build/stories/spec/step/features/RefreshAfter.story.js +0 -92
  305. package/build/stories/spec/step/features/refresh/Refresh.story.js +0 -258
  306. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +0 -958
  307. package/build/stories/types.js +0 -1
  308. package/build/stories/utils/fixtureHttpClient.js +0 -70
  309. package/build/stories/utils/getBasicStep.js +0 -223
  310. package/build/stories/utils/mockSearchHandler.js +0 -71
  311. package/build/stories/utils/render-utils.js +0 -41
  312. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +0 -17
  313. package/build/test-utils/DynamicFlowWise.js +0 -32
  314. package/build/test-utils/DynamicFlowWiseModal.js +0 -34
  315. package/build/test-utils/NeptuneProviders.js +0 -11
  316. package/build/test-utils/component-utils.js +0 -5
  317. package/build/test-utils/fetch-utils.js +0 -45
  318. package/build/test-utils/getMergedTestRenderers.js +0 -34
  319. package/build/test-utils/getRandomId.js +0 -1
  320. package/build/test-utils/index.js +0 -3
  321. package/build/test-utils/rtl-utils.js +0 -7
  322. package/build/test-utils/step-utils.js +0 -6
  323. package/build/test-utils/wait.js +0 -3
  324. package/build/tests/AlertLayout.test.js +0 -78
  325. package/build/tests/ArrayTuple.test.js +0 -118
  326. package/build/tests/ButtonLayout.test.js +0 -308
  327. package/build/tests/ConstLayout.test.js +0 -95
  328. package/build/tests/DateInput.test.js +0 -163
  329. package/build/tests/DecisionLayout.test.js +0 -146
  330. package/build/tests/DynamicFlow.test.js +0 -147
  331. package/build/tests/External.test.js +0 -169
  332. package/build/tests/Flow.test.js +0 -328
  333. package/build/tests/FormLayout.test.js +0 -28
  334. package/build/tests/FormattedValue.test.js +0 -107
  335. package/build/tests/ImageRenderer.test.js +0 -78
  336. package/build/tests/InitialAction.test.js +0 -179
  337. package/build/tests/InitialStep.test.js +0 -168
  338. package/build/tests/InstructionsLayout.test.js +0 -45
  339. package/build/tests/ListLayout.test.js +0 -145
  340. package/build/tests/Logging.test.js +0 -53
  341. package/build/tests/ModalBehavior.test.js +0 -149
  342. package/build/tests/MoneyInput.test.js +0 -316
  343. package/build/tests/MultiUpload.test.js +0 -293
  344. package/build/tests/NativeBack.test.js +0 -267
  345. package/build/tests/OneOfInitialisation.test.js +0 -571
  346. package/build/tests/PersistAsync.test.js +0 -686
  347. package/build/tests/Polling.test.js +0 -617
  348. package/build/tests/Prefetching.test.js +0 -230
  349. package/build/tests/RefreshAfter.test.js +0 -63
  350. package/build/tests/RefreshOnChange.ResponseHandling.test.js +0 -205
  351. package/build/tests/RefreshOnChange.test.js +0 -233
  352. package/build/tests/RefreshOnChange.with.Segmented.test.js +0 -348
  353. package/build/tests/RefreshOnChange.with.Tabs.test.js +0 -358
  354. package/build/tests/RefreshOnChangePreserve.test.js +0 -224
  355. package/build/tests/RendererProps.test.js +0 -342
  356. package/build/tests/Repeatable.test.js +0 -107
  357. package/build/tests/Rerendering.test.js +0 -67
  358. package/build/tests/ReviewLayout.test.js +0 -274
  359. package/build/tests/SchemaOnChange.test.js +0 -133
  360. package/build/tests/SchemaReferences.test.js +0 -88
  361. package/build/tests/ScrollToError.test.js +0 -217
  362. package/build/tests/SegmentedControl.test.js +0 -49
  363. package/build/tests/SingleFileUpload.test.js +0 -88
  364. package/build/tests/StatusList.test.js +0 -85
  365. package/build/tests/Subflow.test.js +0 -710
  366. package/build/tests/Submission.ResponseHandling.test.js +0 -557
  367. package/build/tests/Submission.merging.test.js +0 -202
  368. package/build/tests/Submission.test.js +0 -603
  369. package/build/tests/Tags.test.js +0 -475
  370. package/build/tests/Upsell.test.js +0 -126
  371. package/build/tests/ValidationAsync.test.js +0 -295
  372. package/build/tests/legacy/Actions.test.js +0 -158
  373. package/build/tests/legacy/BackButton.test.js +0 -114
  374. package/build/tests/legacy/HiddenSchemas.test.js +0 -246
  375. package/build/tests/legacy/MultiSelect.test.js +0 -497
  376. package/build/tests/legacy/MultipleFileUploadSchema.test.js +0 -341
  377. package/build/tests/legacy/PersistAsync.blob-schema.test.js +0 -224
  378. package/build/tests/legacy/PersistAsync.string-schema.test.js +0 -211
  379. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +0 -209
  380. package/build/tests/legacy/RefreshStepOnChange.test.js +0 -424
  381. package/build/tests/legacy/Search.test.js +0 -437
  382. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +0 -58
  383. package/build/tests/renderers/SelectInputRendererProps.test.js +0 -43
  384. package/build/tests/renderers/TextInputRenderer.test.js +0 -51
  385. package/build/types.js +0 -1
  386. package/build/useDynamicFlow.js +0 -104
  387. package/build/useDynamicFlowModal.js +0 -58
  388. package/build/utils/analyse-step.js +0 -14
  389. package/build/utils/component-utils.js +0 -8
  390. package/build/utils/component-utils.test.js +0 -113
  391. package/build/utils/getScrollToTop.js +0 -12
  392. package/build/utils/normalise-flow-id.js +0 -1
  393. package/build/utils/normalise-flow-id.test.js +0 -24
  394. package/build/utils/openLinkInNewTab.js +0 -10
  395. package/build/utils/recursiveMerge.js +0 -40
  396. package/build/utils/recursiveMerge.test.js +0 -93
  397. package/build/utils/type-utils.js +0 -21
  398. package/build/utils/type-validators.js +0 -11
  399. package/build/utils/type-validators.test.js +0 -180
  400. 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
- });