@elliemae/loan-field-renderers 26.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/cjs/ARCHITECTURE.md +434 -0
  2. package/dist/cjs/OVERVIEW.md +229 -0
  3. package/dist/cjs/bll/constants.js +86 -0
  4. package/dist/cjs/bll/formatters/booleanFormatter.js +51 -0
  5. package/dist/cjs/bll/formatters/dateFormatter.js +78 -0
  6. package/dist/cjs/bll/formatters/dropdownFormatter.js +34 -0
  7. package/dist/cjs/bll/formatters/factory/index.js +115 -0
  8. package/dist/cjs/bll/formatters/index.js +24 -0
  9. package/dist/cjs/bll/formatters/numberFormatter.js +70 -0
  10. package/dist/cjs/bll/formatters/phoneFormatter.js +57 -0
  11. package/dist/cjs/bll/formatters/regexFormatter.js +52 -0
  12. package/dist/cjs/bll/formatters/ssnFormatter.js +50 -0
  13. package/dist/cjs/bll/formatters/textFormatter.js +43 -0
  14. package/dist/cjs/bll/formatters/zipFormatter.js +48 -0
  15. package/dist/cjs/bll/index.js +62 -0
  16. package/dist/cjs/bll/ssf/index.js +48 -0
  17. package/dist/cjs/bll/ssf/loan.js +81 -0
  18. package/dist/cjs/bll/ssf/loconnect.js +70 -0
  19. package/dist/cjs/bll/ssf/ssfBase.js +97 -0
  20. package/dist/cjs/bll/ssf/types.js +16 -0
  21. package/dist/cjs/bll/types.js +16 -0
  22. package/dist/cjs/bll/validators/dateValidator.js +60 -0
  23. package/dist/cjs/bll/validators/emailValidator.js +47 -0
  24. package/dist/cjs/bll/validators/factory/index.js +81 -0
  25. package/dist/cjs/bll/validators/index.js +24 -0
  26. package/dist/cjs/bll/validators/maxCharValidator.js +49 -0
  27. package/dist/cjs/bll/validators/requiredValidator.js +44 -0
  28. package/dist/cjs/bll/validators/zipValidator.js +53 -0
  29. package/dist/cjs/core/index.js +52 -0
  30. package/dist/cjs/demo/config.js +391 -0
  31. package/dist/cjs/demo/index.js +31 -0
  32. package/dist/cjs/package.json +7 -0
  33. package/dist/cjs/renderer/FieldRenderer.js +45 -0
  34. package/dist/cjs/renderer/base/hooks/fieldDescription.js +39 -0
  35. package/dist/cjs/renderer/base/hooks/fieldDisabled.js +53 -0
  36. package/dist/cjs/renderer/base/hooks/fieldGoTo.js +50 -0
  37. package/dist/cjs/renderer/base/hooks/fieldLocked.js +42 -0
  38. package/dist/cjs/renderer/base/hooks/fieldMeta.js +150 -0
  39. package/dist/cjs/renderer/base/hooks/fieldSubscribers.js +66 -0
  40. package/dist/cjs/renderer/base/hooks/fieldValidation.js +45 -0
  41. package/dist/cjs/renderer/base/hooks/fieldValue.js +215 -0
  42. package/dist/cjs/renderer/base/hooks/hookBase.js +29 -0
  43. package/dist/cjs/renderer/base/hooks/index.js +139 -0
  44. package/dist/cjs/renderer/base/renderer.js +198 -0
  45. package/dist/cjs/renderer/base/rendererValidator.js +97 -0
  46. package/dist/cjs/renderer/factory/index.js +58 -0
  47. package/dist/cjs/renderer/field-renderers/AddonRenderer.js +75 -0
  48. package/dist/cjs/renderer/field-renderers/CheckboxRenderer.js +123 -0
  49. package/dist/cjs/renderer/field-renderers/DateRenderer.js +206 -0
  50. package/dist/cjs/renderer/field-renderers/DropdownRenderer/hook.js +99 -0
  51. package/dist/cjs/renderer/field-renderers/DropdownRenderer/index.js +216 -0
  52. package/dist/cjs/renderer/field-renderers/LargeTextRenderer.js +209 -0
  53. package/dist/cjs/renderer/field-renderers/NumberRenderer.js +216 -0
  54. package/dist/cjs/renderer/field-renderers/RadioGroupRenderer.js +128 -0
  55. package/dist/cjs/renderer/field-renderers/RadioRenderer.js +121 -0
  56. package/dist/cjs/renderer/field-renderers/TextRenderer.js +223 -0
  57. package/dist/cjs/renderer/field-renderers/ToggleRenderer.js +121 -0
  58. package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/helper.js +132 -0
  59. package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/hook.js +128 -0
  60. package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/index.js +273 -0
  61. package/dist/cjs/renderer/index.js +24 -0
  62. package/dist/cjs/renderer/styles.js +51 -0
  63. package/dist/cjs/renderer/types.js +16 -0
  64. package/dist/cjs/tests/base/flowBase.js +125 -0
  65. package/dist/cjs/tests/base/index.js +52 -0
  66. package/dist/cjs/tests/flows/checkboxRendererFlows.js +85 -0
  67. package/dist/cjs/tests/flows/dateRendererFlows.js +870 -0
  68. package/dist/cjs/tests/flows/dropdownRendererFlows.js +591 -0
  69. package/dist/cjs/tests/flows/largeTextRendererFlows.js +99 -0
  70. package/dist/cjs/tests/flows/numberRendererFlows.js +175 -0
  71. package/dist/cjs/tests/flows/radioRendererFlows.js +115 -0
  72. package/dist/cjs/tests/flows/textRendererFlows.js +349 -0
  73. package/dist/cjs/tests/flows/toggleRendererFlows.js +106 -0
  74. package/dist/cjs/tests/flows/zipCodeRendererFlows.js +1163 -0
  75. package/dist/cjs/utils/dateHelper.js +65 -0
  76. package/dist/esm/ARCHITECTURE.md +434 -0
  77. package/dist/esm/OVERVIEW.md +229 -0
  78. package/dist/esm/bll/constants.js +66 -0
  79. package/dist/esm/bll/formatters/booleanFormatter.js +33 -0
  80. package/dist/esm/bll/formatters/dateFormatter.js +48 -0
  81. package/dist/esm/bll/formatters/dropdownFormatter.js +14 -0
  82. package/dist/esm/bll/formatters/factory/index.js +97 -0
  83. package/dist/esm/bll/formatters/index.js +4 -0
  84. package/dist/esm/bll/formatters/numberFormatter.js +54 -0
  85. package/dist/esm/bll/formatters/phoneFormatter.js +41 -0
  86. package/dist/esm/bll/formatters/regexFormatter.js +34 -0
  87. package/dist/esm/bll/formatters/ssnFormatter.js +32 -0
  88. package/dist/esm/bll/formatters/textFormatter.js +25 -0
  89. package/dist/esm/bll/formatters/zipFormatter.js +30 -0
  90. package/dist/esm/bll/index.js +44 -0
  91. package/dist/esm/bll/ssf/index.js +30 -0
  92. package/dist/esm/bll/ssf/loan.js +63 -0
  93. package/dist/esm/bll/ssf/loconnect.js +52 -0
  94. package/dist/esm/bll/ssf/ssfBase.js +67 -0
  95. package/dist/esm/bll/ssf/types.js +0 -0
  96. package/dist/esm/bll/types.js +0 -0
  97. package/dist/esm/bll/validators/dateValidator.js +30 -0
  98. package/dist/esm/bll/validators/emailValidator.js +29 -0
  99. package/dist/esm/bll/validators/factory/index.js +63 -0
  100. package/dist/esm/bll/validators/index.js +4 -0
  101. package/dist/esm/bll/validators/maxCharValidator.js +31 -0
  102. package/dist/esm/bll/validators/requiredValidator.js +26 -0
  103. package/dist/esm/bll/validators/zipValidator.js +35 -0
  104. package/dist/esm/core/index.js +34 -0
  105. package/dist/esm/demo/config.js +371 -0
  106. package/dist/esm/demo/index.js +11 -0
  107. package/dist/esm/package.json +7 -0
  108. package/dist/esm/renderer/FieldRenderer.js +15 -0
  109. package/dist/esm/renderer/base/hooks/fieldDescription.js +19 -0
  110. package/dist/esm/renderer/base/hooks/fieldDisabled.js +33 -0
  111. package/dist/esm/renderer/base/hooks/fieldGoTo.js +30 -0
  112. package/dist/esm/renderer/base/hooks/fieldLocked.js +22 -0
  113. package/dist/esm/renderer/base/hooks/fieldMeta.js +132 -0
  114. package/dist/esm/renderer/base/hooks/fieldSubscribers.js +36 -0
  115. package/dist/esm/renderer/base/hooks/fieldValidation.js +25 -0
  116. package/dist/esm/renderer/base/hooks/fieldValue.js +195 -0
  117. package/dist/esm/renderer/base/hooks/hookBase.js +9 -0
  118. package/dist/esm/renderer/base/hooks/index.js +121 -0
  119. package/dist/esm/renderer/base/renderer.js +178 -0
  120. package/dist/esm/renderer/base/rendererValidator.js +77 -0
  121. package/dist/esm/renderer/factory/index.js +38 -0
  122. package/dist/esm/renderer/field-renderers/AddonRenderer.js +55 -0
  123. package/dist/esm/renderer/field-renderers/CheckboxRenderer.js +93 -0
  124. package/dist/esm/renderer/field-renderers/DateRenderer.js +176 -0
  125. package/dist/esm/renderer/field-renderers/DropdownRenderer/hook.js +79 -0
  126. package/dist/esm/renderer/field-renderers/DropdownRenderer/index.js +186 -0
  127. package/dist/esm/renderer/field-renderers/LargeTextRenderer.js +179 -0
  128. package/dist/esm/renderer/field-renderers/NumberRenderer.js +188 -0
  129. package/dist/esm/renderer/field-renderers/RadioGroupRenderer.js +108 -0
  130. package/dist/esm/renderer/field-renderers/RadioRenderer.js +91 -0
  131. package/dist/esm/renderer/field-renderers/TextRenderer.js +197 -0
  132. package/dist/esm/renderer/field-renderers/ToggleRenderer.js +91 -0
  133. package/dist/esm/renderer/field-renderers/ZipCodeRenderer/helper.js +112 -0
  134. package/dist/esm/renderer/field-renderers/ZipCodeRenderer/hook.js +108 -0
  135. package/dist/esm/renderer/field-renderers/ZipCodeRenderer/index.js +247 -0
  136. package/dist/esm/renderer/index.js +4 -0
  137. package/dist/esm/renderer/styles.js +21 -0
  138. package/dist/esm/renderer/types.js +0 -0
  139. package/dist/esm/tests/base/flowBase.js +105 -0
  140. package/dist/esm/tests/base/index.js +22 -0
  141. package/dist/esm/tests/flows/checkboxRendererFlows.js +65 -0
  142. package/dist/esm/tests/flows/dateRendererFlows.js +850 -0
  143. package/dist/esm/tests/flows/dropdownRendererFlows.js +571 -0
  144. package/dist/esm/tests/flows/largeTextRendererFlows.js +79 -0
  145. package/dist/esm/tests/flows/numberRendererFlows.js +155 -0
  146. package/dist/esm/tests/flows/radioRendererFlows.js +95 -0
  147. package/dist/esm/tests/flows/textRendererFlows.js +329 -0
  148. package/dist/esm/tests/flows/toggleRendererFlows.js +86 -0
  149. package/dist/esm/tests/flows/zipCodeRendererFlows.js +1143 -0
  150. package/dist/esm/utils/dateHelper.js +35 -0
  151. package/dist/types/lib/bll/constants.d.ts +9 -0
  152. package/dist/types/lib/bll/formatters/booleanFormatter.d.ts +5 -0
  153. package/dist/types/lib/bll/formatters/dateFormatter.d.ts +28 -0
  154. package/dist/types/lib/bll/formatters/dropdownFormatter.d.ts +6 -0
  155. package/dist/types/lib/bll/formatters/factory/index.d.ts +71 -0
  156. package/dist/types/lib/bll/formatters/index.d.ts +2 -0
  157. package/dist/types/lib/bll/formatters/numberFormatter.d.ts +6 -0
  158. package/dist/types/lib/bll/formatters/phoneFormatter.d.ts +7 -0
  159. package/dist/types/lib/bll/formatters/regexFormatter.d.ts +5 -0
  160. package/dist/types/lib/bll/formatters/ssnFormatter.d.ts +5 -0
  161. package/dist/types/lib/bll/formatters/textFormatter.d.ts +6 -0
  162. package/dist/types/lib/bll/formatters/zipFormatter.d.ts +5 -0
  163. package/dist/types/lib/bll/index.d.ts +20 -0
  164. package/dist/types/lib/bll/ssf/index.d.ts +25 -0
  165. package/dist/types/lib/bll/ssf/loan.d.ts +16 -0
  166. package/dist/types/lib/bll/ssf/loconnect.d.ts +15 -0
  167. package/dist/types/lib/bll/ssf/ssfBase.d.ts +23 -0
  168. package/dist/types/lib/bll/ssf/types.d.ts +99 -0
  169. package/dist/types/lib/bll/types.d.ts +47 -0
  170. package/dist/types/lib/bll/validators/dateValidator.d.ts +16 -0
  171. package/dist/types/lib/bll/validators/emailValidator.d.ts +4 -0
  172. package/dist/types/lib/bll/validators/factory/index.d.ts +15 -0
  173. package/dist/types/lib/bll/validators/index.d.ts +2 -0
  174. package/dist/types/lib/bll/validators/maxCharValidator.d.ts +4 -0
  175. package/dist/types/lib/bll/validators/requiredValidator.d.ts +4 -0
  176. package/dist/types/lib/bll/validators/zipValidator.d.ts +5 -0
  177. package/dist/types/lib/core/index.d.ts +29 -0
  178. package/dist/types/lib/demo/config.d.ts +11 -0
  179. package/dist/types/lib/demo/index.d.ts +1 -0
  180. package/dist/types/lib/renderer/FieldRenderer.d.ts +5 -0
  181. package/dist/types/lib/renderer/base/hooks/fieldDescription.d.ts +5 -0
  182. package/dist/types/lib/renderer/base/hooks/fieldDisabled.d.ts +10 -0
  183. package/dist/types/lib/renderer/base/hooks/fieldGoTo.d.ts +4 -0
  184. package/dist/types/lib/renderer/base/hooks/fieldLocked.d.ts +4 -0
  185. package/dist/types/lib/renderer/base/hooks/fieldMeta.d.ts +10 -0
  186. package/dist/types/lib/renderer/base/hooks/fieldSubscribers.d.ts +6 -0
  187. package/dist/types/lib/renderer/base/hooks/fieldValidation.d.ts +9 -0
  188. package/dist/types/lib/renderer/base/hooks/fieldValue.d.ts +31 -0
  189. package/dist/types/lib/renderer/base/hooks/hookBase.d.ts +9 -0
  190. package/dist/types/lib/renderer/base/hooks/index.d.ts +19 -0
  191. package/dist/types/lib/renderer/base/renderer.d.ts +43 -0
  192. package/dist/types/lib/renderer/base/rendererValidator.d.ts +15 -0
  193. package/dist/types/lib/renderer/factory/index.d.ts +5 -0
  194. package/dist/types/lib/renderer/field-renderers/AddonRenderer.d.ts +12 -0
  195. package/dist/types/lib/renderer/field-renderers/CheckboxRenderer.d.ts +7 -0
  196. package/dist/types/lib/renderer/field-renderers/DateRenderer.d.ts +13 -0
  197. package/dist/types/lib/renderer/field-renderers/DropdownRenderer/hook.d.ts +23 -0
  198. package/dist/types/lib/renderer/field-renderers/DropdownRenderer/index.d.ts +12 -0
  199. package/dist/types/lib/renderer/field-renderers/LargeTextRenderer.d.ts +17 -0
  200. package/dist/types/lib/renderer/field-renderers/NumberRenderer.d.ts +12 -0
  201. package/dist/types/lib/renderer/field-renderers/RadioGroupRenderer.d.ts +8 -0
  202. package/dist/types/lib/renderer/field-renderers/RadioRenderer.d.ts +8 -0
  203. package/dist/types/lib/renderer/field-renderers/TextRenderer.d.ts +8 -0
  204. package/dist/types/lib/renderer/field-renderers/ToggleRenderer.d.ts +24 -0
  205. package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/helper.d.ts +48 -0
  206. package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/hook.d.ts +17 -0
  207. package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/index.d.ts +9 -0
  208. package/dist/types/lib/renderer/index.d.ts +2 -0
  209. package/dist/types/lib/renderer/styles.d.ts +7 -0
  210. package/dist/types/lib/renderer/types.d.ts +325 -0
  211. package/dist/types/lib/tests/base/flowBase.d.ts +13 -0
  212. package/dist/types/lib/tests/base/index.d.ts +6 -0
  213. package/dist/types/lib/tests/flows/checkboxRendererFlows.d.ts +9 -0
  214. package/dist/types/lib/tests/flows/dateRendererFlows.d.ts +120 -0
  215. package/dist/types/lib/tests/flows/dropdownRendererFlows.d.ts +92 -0
  216. package/dist/types/lib/tests/flows/largeTextRendererFlows.d.ts +9 -0
  217. package/dist/types/lib/tests/flows/numberRendererFlows.d.ts +11 -0
  218. package/dist/types/lib/tests/flows/radioRendererFlows.d.ts +10 -0
  219. package/dist/types/lib/tests/flows/textRendererFlows.d.ts +16 -0
  220. package/dist/types/lib/tests/flows/toggleRendererFlows.d.ts +10 -0
  221. package/dist/types/lib/tests/flows/zipCodeRendererFlows.d.ts +169 -0
  222. package/dist/types/lib/tests/loan-field-renderer-flows.test.d.ts +1 -0
  223. package/dist/types/lib/utils/dateHelper.d.ts +8 -0
  224. package/dist/types/tsconfig.tsbuildinfo +1 -0
  225. package/package.json +103 -0
@@ -0,0 +1,155 @@
1
+ import { TTriggerActions } from "@elliemae/flow-driven-testing";
2
+ import { FlowBase } from "../base/flowBase";
3
+ class NumberRendererFlows extends FlowBase {
4
+ constructor(flowParams) {
5
+ super(flowParams);
6
+ this.flowParams = flowParams;
7
+ }
8
+ flowParams;
9
+ CheckIntegerValue() {
10
+ return {
11
+ [`${this.flowParams.inboundFlow}`]: {
12
+ name: this.getFlowName("NumberRenderer", "check with integer value"),
13
+ startFlow: [
14
+ {
15
+ selector: '[data-testid="4"]',
16
+ value: "360",
17
+ action: TTriggerActions.BLUR
18
+ }
19
+ ],
20
+ asserts: [
21
+ {
22
+ ssfFunctionsCalled: ["setFields"]
23
+ },
24
+ {
25
+ assertFn: () => {
26
+ const inputElement = document.querySelector(
27
+ '[data-testid="4"]'
28
+ );
29
+ return inputElement && inputElement.value === "360";
30
+ }
31
+ }
32
+ ],
33
+ transitions: [
34
+ {
35
+ to: "checkD2FormatValue"
36
+ }
37
+ ]
38
+ }
39
+ };
40
+ }
41
+ CheckD2FormatValue() {
42
+ return {
43
+ checkD2FormatValue: {
44
+ name: this.getFlowName("NumberRenderer", "check with D2 format value"),
45
+ startFlow: [
46
+ {
47
+ selector: '[data-testid="2"]',
48
+ value: "1234",
49
+ action: TTriggerActions.BLUR
50
+ }
51
+ ],
52
+ asserts: [
53
+ {
54
+ ssfFunctionsCalled: ["setFields"]
55
+ },
56
+ {
57
+ assertFn: () => {
58
+ const inputElement = document.querySelector(
59
+ '[data-testid="2"]'
60
+ );
61
+ return inputElement && inputElement.value === "$1,234.00";
62
+ }
63
+ }
64
+ ],
65
+ transitions: [
66
+ {
67
+ to: "checkLockNumberField"
68
+ }
69
+ ]
70
+ }
71
+ };
72
+ }
73
+ CheckLockNumberField() {
74
+ return {
75
+ checkLockNumberField: {
76
+ name: this.getFlowName("NumberRenderer", "check lock number field"),
77
+ startFlow: [
78
+ {
79
+ selector: '[data-testid="unlock-LE2.X1"]',
80
+ action: TTriggerActions.CLICK
81
+ },
82
+ {
83
+ selector: '[data-testid="LE2.X1"]',
84
+ value: "5000",
85
+ action: TTriggerActions.BLUR
86
+ }
87
+ ],
88
+ asserts: [
89
+ {
90
+ ssfFunctionsCalled: ["setFields", "callCalcForLock"]
91
+ },
92
+ {
93
+ assertFn: () => {
94
+ const inputElement = document.querySelector(
95
+ '[data-testid="LE2.X1"]'
96
+ );
97
+ return inputElement && inputElement.value === "5,000.00";
98
+ }
99
+ }
100
+ ],
101
+ transitions: [
102
+ {
103
+ to: "checkMaxLength"
104
+ }
105
+ ]
106
+ }
107
+ };
108
+ }
109
+ CheckMaxLength() {
110
+ const transitions = this.flowParams.outboundFlow ? [{ to: this.flowParams.outboundFlow }] : [];
111
+ return {
112
+ checkMaxLength: {
113
+ name: this.getFlowName(
114
+ "NumberRenderer",
115
+ "check max length enforcement"
116
+ ),
117
+ startFlow: [
118
+ {
119
+ selector: '[data-testid="3422"]',
120
+ value: "9999999999999999",
121
+ // Exceeding typical max length
122
+ action: TTriggerActions.BLUR
123
+ }
124
+ ],
125
+ asserts: [
126
+ {
127
+ ssfFunctionsCalled: ["setFields"]
128
+ },
129
+ {
130
+ assertFn: () => {
131
+ const inputElement = document.querySelector(
132
+ '[data-testid="3422"]'
133
+ );
134
+ const inputVal = inputElement ? inputElement.value : "";
135
+ const lengthBeforeDecimal = inputVal.split(".")[0].replace(/,/g, "").length;
136
+ return lengthBeforeDecimal - 6 === 14;
137
+ }
138
+ }
139
+ ],
140
+ ...transitions.length > 0 && { transitions }
141
+ }
142
+ };
143
+ }
144
+ get Flows() {
145
+ return {
146
+ ...this.CheckIntegerValue(),
147
+ ...this.CheckD2FormatValue(),
148
+ ...this.CheckLockNumberField(),
149
+ ...this.CheckMaxLength()
150
+ };
151
+ }
152
+ }
153
+ export {
154
+ NumberRendererFlows
155
+ };
@@ -0,0 +1,95 @@
1
+ import { TTriggerActions } from "@elliemae/flow-driven-testing";
2
+ import { FlowBase } from "../base/flowBase";
3
+ class RadioRendererFlows extends FlowBase {
4
+ constructor(flowParams) {
5
+ super(flowParams);
6
+ this.flowParams = flowParams;
7
+ }
8
+ flowParams;
9
+ SelectRadioOption() {
10
+ return {
11
+ [`${this.flowParams.inboundFlow}`]: {
12
+ name: this.getFlowName("RadioRenderer", "select radio option"),
13
+ startFlow: [
14
+ {
15
+ selector: '[data-testid="RESPA.X28"]',
16
+ action: TTriggerActions.CLICK
17
+ }
18
+ ],
19
+ asserts: [
20
+ {
21
+ ssfFunctionsCalled: ["setFields"]
22
+ }
23
+ ],
24
+ transitions: [
25
+ {
26
+ to: "checkRadioGroupOptions"
27
+ }
28
+ ]
29
+ }
30
+ };
31
+ }
32
+ CheckRadioGroupOptions() {
33
+ return {
34
+ checkRadioGroupOptions: {
35
+ name: this.getFlowName("RadioRenderer", "check radio group options"),
36
+ startFlow: [
37
+ {
38
+ selector: '[data-testid="LE3.X11"]',
39
+ action: TTriggerActions.CLICK
40
+ }
41
+ ],
42
+ asserts: [
43
+ {
44
+ assertFn: () => {
45
+ const elements = document.querySelectorAll(
46
+ '[data-testid="LE3.X11"]'
47
+ );
48
+ return elements.length === 2;
49
+ }
50
+ }
51
+ ],
52
+ transitions: [
53
+ {
54
+ to: "checkDisabledRadioGroupOptions"
55
+ }
56
+ ]
57
+ }
58
+ };
59
+ }
60
+ CheckDisabledRadioGroupOptions() {
61
+ const transitions = this.flowParams.outboundFlow ? [{ to: this.flowParams.outboundFlow }] : [];
62
+ return {
63
+ checkDisabledRadioGroupOptions: {
64
+ name: this.getFlowName(
65
+ "RadioRenderer",
66
+ "check disabled radio group options"
67
+ ),
68
+ asserts: [
69
+ {
70
+ assertFn: () => {
71
+ const elements = document.querySelectorAll(
72
+ '[data-testid="LE3.X12"]'
73
+ );
74
+ return Array.from(elements).every((element) => {
75
+ const isDisabled = element.getAttribute("aria-disabled") === "true";
76
+ return isDisabled;
77
+ });
78
+ }
79
+ }
80
+ ],
81
+ ...transitions.length > 0 && { transitions }
82
+ }
83
+ };
84
+ }
85
+ get Flows() {
86
+ return {
87
+ ...this.SelectRadioOption(),
88
+ ...this.CheckRadioGroupOptions(),
89
+ ...this.CheckDisabledRadioGroupOptions()
90
+ };
91
+ }
92
+ }
93
+ export {
94
+ RadioRendererFlows
95
+ };
@@ -0,0 +1,329 @@
1
+ import { TTriggerActions } from "@elliemae/flow-driven-testing";
2
+ import { FlowBase } from "../base/flowBase";
3
+ class TextRendererFlows extends FlowBase {
4
+ constructor(flowParams) {
5
+ super(flowParams);
6
+ this.flowParams = flowParams;
7
+ }
8
+ flowParams;
9
+ CheckTextValue() {
10
+ return {
11
+ [`${this.flowParams.inboundFlow}`]: {
12
+ name: this.getFlowName("TextRenderer", "check with text value"),
13
+ startFlow: [
14
+ {
15
+ selector: '[data-testid="4003"]',
16
+ value: "Test Text",
17
+ action: TTriggerActions.BLUR
18
+ }
19
+ ],
20
+ asserts: [
21
+ {
22
+ ssfFunctionsCalled: ["setFields"]
23
+ },
24
+ {
25
+ assertFn: () => {
26
+ const inputElement = document.querySelector(
27
+ '[data-testid="4003"]'
28
+ );
29
+ return inputElement && inputElement.value === "Test Text";
30
+ }
31
+ }
32
+ ],
33
+ transitions: [
34
+ {
35
+ to: "checkCorrectEmailValue"
36
+ }
37
+ ]
38
+ }
39
+ };
40
+ }
41
+ CheckCorrectEmailValue() {
42
+ return {
43
+ checkCorrectEmailValue: {
44
+ name: this.getFlowName(
45
+ "TextRenderer",
46
+ "check with correct email value"
47
+ ),
48
+ startFlow: [
49
+ {
50
+ selector: '[data-testid="1178"]',
51
+ value: "mdesai@ice.com",
52
+ action: TTriggerActions.BLUR
53
+ }
54
+ ],
55
+ asserts: [
56
+ {
57
+ ssfFunctionsCalled: ["setFields"]
58
+ },
59
+ {
60
+ assertFn: () => {
61
+ const inputElement = document.querySelector(
62
+ '[data-testid="1178"]'
63
+ );
64
+ return inputElement && inputElement.value === "mdesai@ice.com";
65
+ }
66
+ },
67
+ {
68
+ selector: '[id="1178_error_message"] span',
69
+ isExists: false
70
+ }
71
+ ],
72
+ transitions: [
73
+ {
74
+ to: "checkIncorrectEmailValue"
75
+ }
76
+ ]
77
+ }
78
+ };
79
+ }
80
+ CheckIncorrectEmailValue() {
81
+ return {
82
+ checkIncorrectEmailValue: {
83
+ name: this.getFlowName(
84
+ "TextRenderer",
85
+ "check with incorrect email value"
86
+ ),
87
+ startFlow: [
88
+ {
89
+ selector: '[data-testid="1178"]',
90
+ value: "mdesai-ice",
91
+ action: TTriggerActions.BLUR
92
+ }
93
+ ],
94
+ asserts: [
95
+ {
96
+ ssfFunctionsCalled: ["setFields"]
97
+ },
98
+ {
99
+ assertFn: () => {
100
+ const inputElement = document.querySelector(
101
+ '[data-testid="1178"]'
102
+ );
103
+ return inputElement && inputElement.value === "mdesai-ice";
104
+ }
105
+ },
106
+ {
107
+ selector: '[id="1178_error_message"] span',
108
+ isExists: true
109
+ }
110
+ ],
111
+ transitions: [
112
+ {
113
+ to: "checkTextPadLock"
114
+ }
115
+ ]
116
+ }
117
+ };
118
+ }
119
+ CheckTextPadLock() {
120
+ return {
121
+ checkTextPadLock: {
122
+ name: this.getFlowName("TextRenderer", "check text padlock"),
123
+ startFlow: [
124
+ {
125
+ selector: '[data-testid="unlock-LE1.X5"]',
126
+ action: TTriggerActions.CLICK
127
+ },
128
+ {
129
+ selector: '[data-testid="LE1.X5"]',
130
+ value: "test padlock",
131
+ action: TTriggerActions.BLUR
132
+ }
133
+ ],
134
+ asserts: [
135
+ {
136
+ ssfFunctionsCalled: ["setFields"]
137
+ }
138
+ ],
139
+ transitions: [
140
+ {
141
+ to: "checkPhoneValue"
142
+ }
143
+ ]
144
+ }
145
+ };
146
+ }
147
+ CheckPhoneValue() {
148
+ return {
149
+ checkPhoneValue: {
150
+ name: this.getFlowName("TextRenderer", "check phone value"),
151
+ startFlow: [
152
+ {
153
+ selector: '[data-testid="USDA.X103"]',
154
+ value: "23232323232323",
155
+ action: TTriggerActions.BLUR
156
+ }
157
+ ],
158
+ asserts: [
159
+ {
160
+ ssfFunctionsCalled: ["setFields"]
161
+ },
162
+ {
163
+ assertFn: () => {
164
+ const inputElement = document.querySelector(
165
+ '[data-testid="USDA.X103"]'
166
+ );
167
+ return inputElement && inputElement.value === "232-323-2323 2323";
168
+ }
169
+ }
170
+ ],
171
+ transitions: [
172
+ {
173
+ to: "checkTextMaxLength"
174
+ }
175
+ ]
176
+ }
177
+ };
178
+ }
179
+ CheckTextMaxLength() {
180
+ return {
181
+ checkTextMaxLength: {
182
+ name: this.getFlowName("TextRenderer", "check text max length"),
183
+ startFlow: [
184
+ {
185
+ selector: '[data-testid="4003"]',
186
+ value: "232323232323232323232323232323",
187
+ action: TTriggerActions.BLUR
188
+ }
189
+ ],
190
+ asserts: [
191
+ {
192
+ ssfFunctionsCalled: ["setFields"]
193
+ },
194
+ {
195
+ assertFn: () => {
196
+ const inputElement = document.querySelector(
197
+ '[data-testid="4003"]'
198
+ );
199
+ return inputElement && inputElement.value === "232-323-2323 2323";
200
+ }
201
+ }
202
+ ],
203
+ transitions: [
204
+ {
205
+ to: "checkSSNValue"
206
+ }
207
+ ]
208
+ }
209
+ };
210
+ }
211
+ CheckSSNValue() {
212
+ return {
213
+ checkSSNValue: {
214
+ name: this.getFlowName("TextRenderer", "check SSN value"),
215
+ startFlow: [
216
+ {
217
+ selector: '[data-testid="65"]',
218
+ value: "232323232",
219
+ action: TTriggerActions.BLUR
220
+ }
221
+ ],
222
+ asserts: [
223
+ {
224
+ ssfFunctionsCalled: ["setFields"]
225
+ },
226
+ {
227
+ assertFn: () => {
228
+ const inputElement = document.querySelector(
229
+ '[data-testid="65"]'
230
+ );
231
+ return inputElement && inputElement.value === "232-32-3232";
232
+ }
233
+ }
234
+ ],
235
+ transitions: [
236
+ {
237
+ to: "checkFormatFnUppercase"
238
+ }
239
+ ]
240
+ }
241
+ };
242
+ }
243
+ CheckFormatFnUppercase() {
244
+ return {
245
+ checkFormatFnUppercase: {
246
+ name: this.getFlowName(
247
+ "TextRenderer",
248
+ "check formatFn transforms value to uppercase"
249
+ ),
250
+ startFlow: [
251
+ {
252
+ selector: '[data-testid="LE1.X6"]',
253
+ value: "hello world",
254
+ action: TTriggerActions.BLUR
255
+ }
256
+ ],
257
+ asserts: [
258
+ {
259
+ ssfFunctionsCalled: ["setFields"]
260
+ },
261
+ {
262
+ assertFn: () => {
263
+ const inputElement = document.querySelector(
264
+ '[data-testid="LE1.X6"]'
265
+ );
266
+ return inputElement && inputElement.value === "HELLO WORLD";
267
+ }
268
+ }
269
+ ],
270
+ transitions: [
271
+ {
272
+ to: "checkParseFnLowercase"
273
+ }
274
+ ]
275
+ }
276
+ };
277
+ }
278
+ CheckParseFnLowercase() {
279
+ return {
280
+ checkParseFnLowercase: {
281
+ name: this.getFlowName(
282
+ "TextRenderer",
283
+ "check parseFn transforms value to lowercase for API"
284
+ ),
285
+ startFlow: [
286
+ {
287
+ selector: '[data-testid="LE1.X6"]',
288
+ value: "TEST VALUE",
289
+ action: TTriggerActions.BLUR
290
+ }
291
+ ],
292
+ asserts: [
293
+ {
294
+ ssfFunctionsCalled: ["setFields"]
295
+ },
296
+ {
297
+ assertFn: () => {
298
+ const inputElement = document.querySelector(
299
+ '[data-testid="LE1.X6"]'
300
+ );
301
+ return inputElement && inputElement.value === "TEST VALUE";
302
+ }
303
+ }
304
+ ],
305
+ transitions: [
306
+ {
307
+ to: this.flowParams.outboundFlow || ""
308
+ }
309
+ ]
310
+ }
311
+ };
312
+ }
313
+ get Flows() {
314
+ return {
315
+ ...this.CheckTextValue(),
316
+ ...this.CheckCorrectEmailValue(),
317
+ ...this.CheckIncorrectEmailValue(),
318
+ ...this.CheckTextPadLock(),
319
+ ...this.CheckPhoneValue(),
320
+ ...this.CheckTextMaxLength(),
321
+ ...this.CheckSSNValue(),
322
+ ...this.CheckFormatFnUppercase(),
323
+ ...this.CheckParseFnLowercase()
324
+ };
325
+ }
326
+ }
327
+ export {
328
+ TextRendererFlows
329
+ };
@@ -0,0 +1,86 @@
1
+ import { TTriggerActions } from "@elliemae/flow-driven-testing";
2
+ import { FlowBase } from "../base/flowBase";
3
+ class ToggleRendererFlows extends FlowBase {
4
+ constructor(flowParams) {
5
+ super(flowParams);
6
+ this.flowParams = flowParams;
7
+ }
8
+ flowParams;
9
+ ToggleOnState() {
10
+ return {
11
+ [`${this.flowParams.inboundFlow}`]: {
12
+ name: this.getFlowName("ToggleRenderer", "toggle from off to on"),
13
+ startFlow: [
14
+ {
15
+ selector: '[data-testid="LE1.X80"]',
16
+ action: TTriggerActions.CLICK
17
+ }
18
+ ],
19
+ asserts: [
20
+ {
21
+ ssfFunctionsCalled: ["setFields"]
22
+ }
23
+ ],
24
+ transitions: [
25
+ {
26
+ to: "toggleOffState"
27
+ }
28
+ ]
29
+ }
30
+ };
31
+ }
32
+ ToggleOffState() {
33
+ return {
34
+ toggleOffState: {
35
+ name: this.getFlowName("ToggleRenderer", "toggle from on to off"),
36
+ startFlow: [
37
+ {
38
+ selector: '[data-testid="LE1.X80"]',
39
+ action: TTriggerActions.CLICK
40
+ }
41
+ ],
42
+ asserts: [
43
+ {
44
+ ssfFunctionsCalled: ["setFields"]
45
+ }
46
+ ],
47
+ transitions: [
48
+ {
49
+ to: "checkToggleDisabled"
50
+ }
51
+ ]
52
+ }
53
+ };
54
+ }
55
+ CheckToggleDisabled() {
56
+ const transitions = this.flowParams.outboundFlow ? [{ to: this.flowParams.outboundFlow }] : [];
57
+ return {
58
+ checkToggleDisabled: {
59
+ name: this.getFlowName("ToggleRenderer", "check toggle disabled state"),
60
+ asserts: [
61
+ {
62
+ assertFn: () => {
63
+ const toggleElement = document.querySelector(
64
+ '[data-testid="LE1.X81"]'
65
+ );
66
+ if (!toggleElement) return false;
67
+ const isDisabled = toggleElement.getAttribute("aria-disabled") === "true";
68
+ return isDisabled;
69
+ }
70
+ }
71
+ ],
72
+ ...transitions.length > 0 && { transitions }
73
+ }
74
+ };
75
+ }
76
+ get Flows() {
77
+ return {
78
+ ...this.ToggleOnState(),
79
+ ...this.ToggleOffState(),
80
+ ...this.CheckToggleDisabled()
81
+ };
82
+ }
83
+ }
84
+ export {
85
+ ToggleRendererFlows
86
+ };