@sankhyalabs/core 0.0.0-bugfix-dev-KB-6165.0

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 (283) hide show
  1. package/.docs/.nojekyll +1 -0
  2. package/.docs/README.md +63 -0
  3. package/.docs/classes/ApplicationContext.md +90 -0
  4. package/.docs/classes/ArrayUtils.md +99 -0
  5. package/.docs/classes/AuthorizedServiceCaller.md +76 -0
  6. package/.docs/classes/Change.md +190 -0
  7. package/.docs/classes/DataUnit.md +2453 -0
  8. package/.docs/classes/DataUnitAction.md +96 -0
  9. package/.docs/classes/DataUnitStorage.md +116 -0
  10. package/.docs/classes/DateUtils.md +327 -0
  11. package/.docs/classes/ElementIDUtils.md +308 -0
  12. package/.docs/classes/ErrorException.md +214 -0
  13. package/.docs/classes/ErrorTracking.md +62 -0
  14. package/.docs/classes/FloatingManager.md +530 -0
  15. package/.docs/classes/HTMLBuilder.md +45 -0
  16. package/.docs/classes/HttpProvider.md +96 -0
  17. package/.docs/classes/JSUtils.md +115 -0
  18. package/.docs/classes/MaskFormatter-1.md +347 -0
  19. package/.docs/classes/NumberUtils.md +335 -0
  20. package/.docs/classes/ObjectUtils.md +160 -0
  21. package/.docs/classes/OnboardingUtils.md +126 -0
  22. package/.docs/classes/PromiseSync.md +91 -0
  23. package/.docs/classes/ReadyUtil.md +115 -0
  24. package/.docs/classes/RequestMetadata.md +84 -0
  25. package/.docs/classes/SelectionInfo.md +168 -0
  26. package/.docs/classes/SkwHttpProvider.md +109 -0
  27. package/.docs/classes/StringUtils.md +562 -0
  28. package/.docs/classes/TimeFormatter.md +98 -0
  29. package/.docs/classes/UserAgentUtils.md +58 -0
  30. package/.docs/classes/VersionUtils.md +42 -0
  31. package/.docs/classes/WaitingChangeException.md +200 -0
  32. package/.docs/classes/WarningException.md +214 -0
  33. package/.docs/enums/Action.md +294 -0
  34. package/.docs/enums/ChangeOperation.md +52 -0
  35. package/.docs/enums/DataType.md +63 -0
  36. package/.docs/enums/DependencyType.md +41 -0
  37. package/.docs/enums/SelectionMode.md +30 -0
  38. package/.docs/enums/SortMode.md +30 -0
  39. package/.docs/enums/UserInterface.md +195 -0
  40. package/.docs/interfaces/ChildDescriptor.md +41 -0
  41. package/.docs/interfaces/ChildLink.md +30 -0
  42. package/.docs/interfaces/DUActionInterceptor.md +29 -0
  43. package/.docs/interfaces/ExecutionContext.md +58 -0
  44. package/.docs/interfaces/FieldDescriptor.md +140 -0
  45. package/.docs/interfaces/Filter.md +41 -0
  46. package/.docs/interfaces/IElementIDInfo.md +30 -0
  47. package/.docs/interfaces/LoadDataRequest.md +101 -0
  48. package/.docs/interfaces/LoadDataResponse.md +36 -0
  49. package/.docs/interfaces/PageRequest.md +41 -0
  50. package/.docs/interfaces/PaginationInfo.md +75 -0
  51. package/.docs/interfaces/PromiseSyncCallback.md +39 -0
  52. package/.docs/interfaces/QuickFilter.md +41 -0
  53. package/.docs/interfaces/Record.md +62 -0
  54. package/.docs/interfaces/SavedRecord.md +85 -0
  55. package/.docs/interfaces/Sort.md +41 -0
  56. package/.docs/interfaces/SortingProvider.md +29 -0
  57. package/.docs/interfaces/UnitMetadata.md +52 -0
  58. package/.docs/interfaces/WaitingChange.md +41 -0
  59. package/.docs/modules/MaskFormatter.md +37 -0
  60. package/.docs/modules.md +74 -0
  61. package/.docs/package.json +15 -0
  62. package/.eslintignore +2 -0
  63. package/.eslintrc.cjs +35 -0
  64. package/.husky/commit-msg +4 -0
  65. package/.releaserc +58 -0
  66. package/README.md +62 -0
  67. package/commitlint.config.cjs +14 -0
  68. package/dist/async/PromiseSync.d.ts +29 -0
  69. package/dist/async/PromiseSync.js +31 -0
  70. package/dist/async/PromiseSync.js.map +1 -0
  71. package/dist/dataunit/DataUnit.d.ts +924 -0
  72. package/dist/dataunit/DataUnit.js +1621 -0
  73. package/dist/dataunit/DataUnit.js.map +1 -0
  74. package/dist/dataunit/DataUnitStorage.d.ts +24 -0
  75. package/dist/dataunit/DataUnitStorage.js +39 -0
  76. package/dist/dataunit/DataUnitStorage.js.map +1 -0
  77. package/dist/dataunit/formatting/PrettyFormatter.d.ts +2 -0
  78. package/dist/dataunit/formatting/PrettyFormatter.js +94 -0
  79. package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -0
  80. package/dist/dataunit/loading/LoadDataRequest.d.ts +19 -0
  81. package/dist/dataunit/loading/LoadDataRequest.js +2 -0
  82. package/dist/dataunit/loading/LoadDataRequest.js.map +1 -0
  83. package/dist/dataunit/loading/LoadDataResponse.d.ts +9 -0
  84. package/dist/dataunit/loading/LoadDataResponse.js +2 -0
  85. package/dist/dataunit/loading/LoadDataResponse.js.map +1 -0
  86. package/dist/dataunit/loading/PaginationInfo.d.ts +13 -0
  87. package/dist/dataunit/loading/PaginationInfo.js +2 -0
  88. package/dist/dataunit/loading/PaginationInfo.js.map +1 -0
  89. package/dist/dataunit/metadata/DataType.d.ts +54 -0
  90. package/dist/dataunit/metadata/DataType.js +124 -0
  91. package/dist/dataunit/metadata/DataType.js.map +1 -0
  92. package/dist/dataunit/metadata/UnitMetadata.d.ts +88 -0
  93. package/dist/dataunit/metadata/UnitMetadata.js +36 -0
  94. package/dist/dataunit/metadata/UnitMetadata.js.map +1 -0
  95. package/dist/dataunit/state/HistReducer.d.ts +10 -0
  96. package/dist/dataunit/state/HistReducer.js +28 -0
  97. package/dist/dataunit/state/HistReducer.js.map +1 -0
  98. package/dist/dataunit/state/StateManager.d.ts +57 -0
  99. package/dist/dataunit/state/StateManager.js +97 -0
  100. package/dist/dataunit/state/StateManager.js.map +1 -0
  101. package/dist/dataunit/state/action/DataUnitAction.d.ts +40 -0
  102. package/dist/dataunit/state/action/DataUnitAction.js +42 -0
  103. package/dist/dataunit/state/action/DataUnitAction.js.map +1 -0
  104. package/dist/dataunit/state/slice/AddedRecordsSlice.d.ts +12 -0
  105. package/dist/dataunit/state/slice/AddedRecordsSlice.js +30 -0
  106. package/dist/dataunit/state/slice/AddedRecordsSlice.js.map +1 -0
  107. package/dist/dataunit/state/slice/ChangesSlice.d.ts +13 -0
  108. package/dist/dataunit/state/slice/ChangesSlice.js +105 -0
  109. package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -0
  110. package/dist/dataunit/state/slice/InvalidFieldsSlice.d.ts +10 -0
  111. package/dist/dataunit/state/slice/InvalidFieldsSlice.js +66 -0
  112. package/dist/dataunit/state/slice/InvalidFieldsSlice.js.map +1 -0
  113. package/dist/dataunit/state/slice/LoadingControlSlice.d.ts +19 -0
  114. package/dist/dataunit/state/slice/LoadingControlSlice.js +45 -0
  115. package/dist/dataunit/state/slice/LoadingControlSlice.js.map +1 -0
  116. package/dist/dataunit/state/slice/RecordsSlice.d.ts +11 -0
  117. package/dist/dataunit/state/slice/RecordsSlice.js +62 -0
  118. package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -0
  119. package/dist/dataunit/state/slice/RemovedRecordsSlice.d.ts +9 -0
  120. package/dist/dataunit/state/slice/RemovedRecordsSlice.js +25 -0
  121. package/dist/dataunit/state/slice/RemovedRecordsSlice.js.map +1 -0
  122. package/dist/dataunit/state/slice/SelectionSlice.d.ts +19 -0
  123. package/dist/dataunit/state/slice/SelectionSlice.js +155 -0
  124. package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -0
  125. package/dist/dataunit/state/slice/SnapshotSlice.d.ts +19 -0
  126. package/dist/dataunit/state/slice/SnapshotSlice.js +106 -0
  127. package/dist/dataunit/state/slice/SnapshotSlice.js.map +1 -0
  128. package/dist/dataunit/state/slice/UnitMetadataSlice.d.ts +11 -0
  129. package/dist/dataunit/state/slice/UnitMetadataSlice.js +21 -0
  130. package/dist/dataunit/state/slice/UnitMetadataSlice.js.map +1 -0
  131. package/dist/dataunit/state/slice/WaitingChangesSlice.d.ts +12 -0
  132. package/dist/dataunit/state/slice/WaitingChangesSlice.js +56 -0
  133. package/dist/dataunit/state/slice/WaitingChangesSlice.js.map +1 -0
  134. package/dist/exceptions/ErrorException.d.ts +14 -0
  135. package/dist/exceptions/ErrorException.js +13 -0
  136. package/dist/exceptions/ErrorException.js.map +1 -0
  137. package/dist/exceptions/WaitingChangeException.d.ts +12 -0
  138. package/dist/exceptions/WaitingChangeException.js +12 -0
  139. package/dist/exceptions/WaitingChangeException.js.map +1 -0
  140. package/dist/exceptions/WarningException.d.ts +14 -0
  141. package/dist/exceptions/WarningException.js +13 -0
  142. package/dist/exceptions/WarningException.js.map +1 -0
  143. package/dist/html/HTMLBuilder.d.ts +3 -0
  144. package/dist/html/HTMLBuilder.js +9 -0
  145. package/dist/html/HTMLBuilder.js.map +1 -0
  146. package/dist/http/AuthorizedServiceCaller.d.ts +11 -0
  147. package/dist/http/AuthorizedServiceCaller.js +54 -0
  148. package/dist/http/AuthorizedServiceCaller.js.map +1 -0
  149. package/dist/http/HttpProvider.d.ts +25 -0
  150. package/dist/http/HttpProvider.js +74 -0
  151. package/dist/http/HttpProvider.js.map +1 -0
  152. package/dist/http/RequestMetadata.d.ts +30 -0
  153. package/dist/http/RequestMetadata.js +25 -0
  154. package/dist/http/RequestMetadata.js.map +1 -0
  155. package/dist/http/SkwHttpProvider.d.ts +9 -0
  156. package/dist/http/SkwHttpProvider.js +67 -0
  157. package/dist/http/SkwHttpProvider.js.map +1 -0
  158. package/dist/index.d.ts +34 -0
  159. package/dist/index.js +33 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/traking/ErrorTraking.d.ts +19 -0
  162. package/dist/traking/ErrorTraking.js +34 -0
  163. package/dist/traking/ErrorTraking.js.map +1 -0
  164. package/dist/ui/FloatingManager.d.ts +164 -0
  165. package/dist/ui/FloatingManager.js +358 -0
  166. package/dist/ui/FloatingManager.js.map +1 -0
  167. package/dist/utils/ApplicationContext.d.ts +26 -0
  168. package/dist/utils/ApplicationContext.js +38 -0
  169. package/dist/utils/ApplicationContext.js.map +1 -0
  170. package/dist/utils/ArrayUtils.d.ts +29 -0
  171. package/dist/utils/ArrayUtils.js +57 -0
  172. package/dist/utils/ArrayUtils.js.map +1 -0
  173. package/dist/utils/CriteriaModel.d.ts +107 -0
  174. package/dist/utils/CriteriaModel.js +172 -0
  175. package/dist/utils/CriteriaModel.js.map +1 -0
  176. package/dist/utils/CriteriaParameter.d.ts +69 -0
  177. package/dist/utils/CriteriaParameter.js +83 -0
  178. package/dist/utils/CriteriaParameter.js.map +1 -0
  179. package/dist/utils/DateUtils.d.ts +97 -0
  180. package/dist/utils/DateUtils.js +171 -0
  181. package/dist/utils/DateUtils.js.map +1 -0
  182. package/dist/utils/ElementIDUtils.d.ts +72 -0
  183. package/dist/utils/ElementIDUtils.js +161 -0
  184. package/dist/utils/ElementIDUtils.js.map +1 -0
  185. package/dist/utils/JSUtils.d.ts +36 -0
  186. package/dist/utils/JSUtils.js +66 -0
  187. package/dist/utils/JSUtils.js.map +1 -0
  188. package/dist/utils/MaskFormatter.d.ts +148 -0
  189. package/dist/utils/MaskFormatter.js +356 -0
  190. package/dist/utils/MaskFormatter.js.map +1 -0
  191. package/dist/utils/NumberUtils.d.ts +127 -0
  192. package/dist/utils/NumberUtils.js +245 -0
  193. package/dist/utils/NumberUtils.js.map +1 -0
  194. package/dist/utils/ObjectUtils.d.ts +47 -0
  195. package/dist/utils/ObjectUtils.js +68 -0
  196. package/dist/utils/ObjectUtils.js.map +1 -0
  197. package/dist/utils/OnboardingUtils.d.ts +17 -0
  198. package/dist/utils/OnboardingUtils.js +41 -0
  199. package/dist/utils/OnboardingUtils.js.map +1 -0
  200. package/dist/utils/ReadyUtil.d.ts +24 -0
  201. package/dist/utils/ReadyUtil.js +41 -0
  202. package/dist/utils/ReadyUtil.js.map +1 -0
  203. package/dist/utils/StringUtils.d.ts +167 -0
  204. package/dist/utils/StringUtils.js +328 -0
  205. package/dist/utils/StringUtils.js.map +1 -0
  206. package/dist/utils/TimeFormatter.d.ts +33 -0
  207. package/dist/utils/TimeFormatter.js +98 -0
  208. package/dist/utils/TimeFormatter.js.map +1 -0
  209. package/dist/utils/UserAgentUtils/index.d.ts +15 -0
  210. package/dist/utils/UserAgentUtils/index.js +48 -0
  211. package/dist/utils/UserAgentUtils/index.js.map +1 -0
  212. package/dist/utils/UserAgentUtils/navigatorAgentList.d.ts +17 -0
  213. package/dist/utils/UserAgentUtils/navigatorAgentList.js +40 -0
  214. package/dist/utils/UserAgentUtils/navigatorAgentList.js.map +1 -0
  215. package/dist/utils/VersionUtils.d.ts +7 -0
  216. package/dist/utils/VersionUtils.js +31 -0
  217. package/dist/utils/VersionUtils.js.map +1 -0
  218. package/jest.config.ts +17 -0
  219. package/mock/http/XMLHttpRequest-mock.js +26 -0
  220. package/package.json +52 -0
  221. package/scripts/runlink.bat +1 -0
  222. package/scripts/runlink.sh +1 -0
  223. package/src/async/PromiseSync.ts +49 -0
  224. package/src/dataunit/DataUnit.ts +1835 -0
  225. package/src/dataunit/DataUnitStorage.ts +43 -0
  226. package/src/dataunit/formatting/PrettyFormatter.ts +113 -0
  227. package/src/dataunit/loading/LoadDataRequest.ts +26 -0
  228. package/src/dataunit/loading/LoadDataResponse.ts +11 -0
  229. package/src/dataunit/loading/PaginationInfo.ts +18 -0
  230. package/src/dataunit/metadata/DataType.ts +127 -0
  231. package/src/dataunit/metadata/UnitMetadata.ts +102 -0
  232. package/src/dataunit/state/HistReducer.ts +34 -0
  233. package/src/dataunit/state/StateManager.ts +142 -0
  234. package/src/dataunit/state/action/DataUnitAction.ts +67 -0
  235. package/src/dataunit/state/slice/AddedRecordsSlice.ts +48 -0
  236. package/src/dataunit/state/slice/ChangesSlice.ts +125 -0
  237. package/src/dataunit/state/slice/InvalidFieldsSlice.ts +85 -0
  238. package/src/dataunit/state/slice/LoadingControlSlice.ts +60 -0
  239. package/src/dataunit/state/slice/RecordsSlice.ts +74 -0
  240. package/src/dataunit/state/slice/RemovedRecordsSlice.ts +30 -0
  241. package/src/dataunit/state/slice/SelectionSlice.ts +193 -0
  242. package/src/dataunit/state/slice/SnapshotSlice.ts +139 -0
  243. package/src/dataunit/state/slice/UnitMetadataSlice.ts +30 -0
  244. package/src/dataunit/state/slice/WaitingChangesSlice.ts +74 -0
  245. package/src/exceptions/ErrorException.ts +25 -0
  246. package/src/exceptions/WaitingChangeException.ts +21 -0
  247. package/src/exceptions/WarningException.ts +26 -0
  248. package/src/html/HTMLBuilder.ts +8 -0
  249. package/src/http/AuthorizedServiceCaller.ts +58 -0
  250. package/src/http/HttpProvider.ts +94 -0
  251. package/src/http/RequestMetadata.ts +42 -0
  252. package/src/http/SkwHttpProvider.ts +78 -0
  253. package/src/index.ts +93 -0
  254. package/src/traking/ErrorTraking.ts +37 -0
  255. package/src/ui/FloatingManager.ts +417 -0
  256. package/src/utils/ApplicationContext.ts +42 -0
  257. package/src/utils/ArrayUtils.ts +61 -0
  258. package/src/utils/CriteriaModel.ts +205 -0
  259. package/src/utils/CriteriaParameter.ts +108 -0
  260. package/src/utils/DateUtils.ts +195 -0
  261. package/src/utils/ElementIDUtils.ts +184 -0
  262. package/src/utils/JSUtils.ts +69 -0
  263. package/src/utils/MaskFormatter.ts +407 -0
  264. package/src/utils/NumberUtils.ts +283 -0
  265. package/src/utils/ObjectUtils.ts +76 -0
  266. package/src/utils/OnboardingUtils.ts +46 -0
  267. package/src/utils/ReadyUtil.ts +45 -0
  268. package/src/utils/StringUtils.ts +359 -0
  269. package/src/utils/TimeFormatter.ts +98 -0
  270. package/src/utils/UserAgentUtils/index.ts +62 -0
  271. package/src/utils/UserAgentUtils/navigatorAgentList.ts +39 -0
  272. package/src/utils/VersionUtils.ts +37 -0
  273. package/test/http/HttpProvider.spec.ts +35 -0
  274. package/test/http/SkwHttpProvider.ts.spec.ts +34 -0
  275. package/test/util/CriteriaModel.spec.ts +232 -0
  276. package/test/util/CriteriaParameter.spec.ts +52 -0
  277. package/test/util/DataUnitStorage.spec.ts +63 -0
  278. package/test/util/ElementIDUtils.spec.ts +272 -0
  279. package/test/util/MaskFormatter.spec.ts +138 -0
  280. package/test/util/NumberUtils.spec.ts +182 -0
  281. package/test/util/StringUtils.spec.ts +51 -0
  282. package/test/util/TimeFormatter.spec.ts +26 -0
  283. package/tsconfig.json +16 -0
@@ -0,0 +1,232 @@
1
+ import { Criteria } from '../../src/utils/CriteriaModel';
2
+ import { CriteriaParameter, CriteriaType } from '../../src/utils/CriteriaParameter';
3
+
4
+ describe('StringUtils', function () {
5
+
6
+
7
+ // => CRITERIA
8
+ // ----------------------------------------------------------------------------------------
9
+
10
+ it('it should return the undefined and [] to Criteria Props through new class with empty constructor', async () => {
11
+ const ct: Criteria = new Criteria();
12
+
13
+ const parameters: Array<CriteriaParameter> = ct.parameters;
14
+ const expression: string | undefined = ct.expression;
15
+
16
+ expect(parameters).toEqual([]);
17
+ expect(expression).toEqual(undefined);
18
+
19
+ });
20
+
21
+ it('it should modify "expressions" and "parameters" properties through Setters methods', async () => {
22
+ const ct: Criteria = new Criteria();
23
+
24
+ const parameters: Array<CriteriaParameter> = [new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE')];
25
+ const expression: string = 'Expression';
26
+
27
+ ct.parameters = parameters;
28
+ ct.expression = expression;
29
+
30
+ expect(ct.parameters).toEqual(parameters);
31
+ expect(ct.expression).toEqual(expression);
32
+
33
+ });
34
+
35
+
36
+ it('it should return "expression" and "parameters" setted through constructor method', async () => {
37
+
38
+ const parameters: Array<CriteriaParameter> = [new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE')];
39
+ const expression: string = 'Expression';
40
+
41
+ const ct: Criteria = new Criteria(expression, parameters);
42
+
43
+ expect(ct.parameters).toEqual(parameters);
44
+ expect(ct.expression).toEqual(expression);
45
+
46
+ });
47
+
48
+ it('it should return a Criteria class with "expression" and "parameters" as needed setted through "append" method', async () => {
49
+
50
+ const parameters: Array<CriteriaParameter> = [new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE')];
51
+ const expression: string = 'Expression';
52
+
53
+ const ct: Criteria = new Criteria();
54
+
55
+ ct.append(expression, parameters);
56
+
57
+ expect(ct.parameters).toEqual(parameters);
58
+ expect(ct.expression).toEqual(expression);
59
+ expect(ct).toBeInstanceOf(Criteria);
60
+
61
+ });
62
+
63
+
64
+ it('it should return a Criteria class with "Criteria class" and "parameters" concatenaded as needed setted through "append" method', async () => {
65
+
66
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
67
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
68
+ const expression: string = 'Expression';
69
+
70
+ const ct1: Criteria = new Criteria();
71
+
72
+ ct1.append(expression, parameters);
73
+
74
+ const ct2: Criteria = ct1.append(ct1, parameters);
75
+
76
+ expect(ct2.parameters).toEqual([criteriaParam, criteriaParam]);
77
+ expect(ct2.expression).toEqual(`${expression}(${expression})`);
78
+ expect(ct2).toBeInstanceOf(Criteria);
79
+
80
+ });
81
+
82
+ it('it should return undefined as "expression" and "[]" as parameters as we use an empty criteria as first entry in the constructor', async () => {
83
+
84
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
85
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
86
+ const expression: string = 'Expression';
87
+
88
+ const ct1: Criteria = new Criteria();
89
+
90
+ const ct2: Criteria = ct1.append(ct1, parameters);
91
+
92
+ expect(ct2.parameters).toEqual([]);
93
+ expect(ct2.expression).toEqual(undefined);
94
+ expect(ct2).toBeInstanceOf(Criteria);
95
+
96
+ });
97
+
98
+ it('it should return a Criteria class with "Expression" and "parameters" concatenaded as needed setted through "OR" method', async () => {
99
+
100
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
101
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
102
+ const expression: string = 'Expression';
103
+
104
+ const ct1: Criteria = new Criteria(expression, parameters);
105
+
106
+ const ct2: Criteria = ct1.or(expression, parameters);
107
+
108
+ expect(ct2.parameters).toEqual([criteriaParam, criteriaParam]);
109
+ expect(ct2.expression).toEqual(`${expression} OR ${expression}`);
110
+ expect(ct2).toBeInstanceOf(Criteria);
111
+
112
+ });
113
+
114
+
115
+ it('it should return a Criteria class with "Criteria class" and "parameters" concatenaded as needed setted through "OR" method', async () => {
116
+
117
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
118
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
119
+ const expression: string = 'Expression';
120
+
121
+ const ct1: Criteria = new Criteria(expression, parameters);
122
+
123
+ const ct2: Criteria = ct1.or(ct1, parameters);
124
+
125
+ expect(ct2.parameters).toEqual([criteriaParam, criteriaParam]);
126
+ expect(ct2.expression).toEqual(`${expression} OR (${expression} OR )`);
127
+ expect(ct2).toBeInstanceOf(Criteria);
128
+
129
+ });
130
+
131
+ it('it should return a Criteria class with "Criteria class" and "parameters" concatenaded as needed setted through "OR" method', async () => {
132
+
133
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
134
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
135
+ const expression: string = 'Expression';
136
+
137
+ const ct1: Criteria = new Criteria(expression, parameters);
138
+ const ct2: Criteria = new Criteria(expression, parameters);
139
+
140
+ const ct3: Criteria = ct1.or(ct2, parameters);
141
+
142
+ expect(ct3.parameters).toEqual([criteriaParam, criteriaParam]);
143
+ expect(ct3.expression).toEqual(`${expression} OR (${expression})`);
144
+ expect(ct3).toBeInstanceOf(Criteria);
145
+
146
+ });
147
+
148
+ it('it should return a Criteria class with "Expression" and "parameters" concatenaded as needed setted through "AND" method', async () => {
149
+
150
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
151
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
152
+ const expression: string = 'Expression';
153
+
154
+ const ct1: Criteria = new Criteria(expression, parameters);
155
+
156
+ const ct2: Criteria = ct1.and(expression, parameters);
157
+
158
+ expect(ct2.parameters).toEqual([criteriaParam, criteriaParam]);
159
+ expect(ct2.expression).toEqual(`${expression} AND ${expression}`);
160
+ expect(ct2).toBeInstanceOf(Criteria);
161
+
162
+ });
163
+
164
+
165
+ it('it should return a Criteria class with "Criteria class" and "parameters" concatenaded as needed setted through "AND" method', async () => {
166
+
167
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
168
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
169
+ const expression: string = 'Expression';
170
+
171
+ const ct1: Criteria = new Criteria(expression, parameters);
172
+
173
+ const ct2: Criteria = ct1.and(ct1, parameters);
174
+
175
+ expect(ct2.parameters).toEqual([criteriaParam, criteriaParam]);
176
+ expect(ct2.expression).toEqual(`${expression} AND (${expression} AND )`);
177
+ expect(ct2).toBeInstanceOf(Criteria);
178
+
179
+ });
180
+
181
+ it('it should return a Criteria class with "Criteria class" and "parameters" concatenaded as needed setted through "AND" method', async () => {
182
+
183
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
184
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
185
+ const expression: string = 'Expression';
186
+
187
+ const ct1: Criteria = new Criteria(expression, parameters);
188
+ const ct2: Criteria = new Criteria(expression, parameters);
189
+
190
+ const ct3: Criteria = ct1.and(ct2, parameters);
191
+
192
+ expect(ct3.parameters).toEqual([criteriaParam, criteriaParam]);
193
+ expect(ct3.expression).toEqual(`${expression} AND (${expression})`);
194
+ expect(ct3).toBeInstanceOf(Criteria);
195
+
196
+ });
197
+
198
+ it('it should return a toJSON object with "Criteria class" and "parameters" concatenaded as needed setted through "AND" method', async () => {
199
+
200
+ const criteriaParam: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, 'PARAM VALUE');
201
+ const parameters: Array<CriteriaParameter> = [criteriaParam];
202
+ const expression: string = 'Expression';
203
+
204
+ const ct1: Criteria = new Criteria(expression, parameters);
205
+ const ct2: Criteria = new Criteria(expression, parameters);
206
+
207
+ const ct3: Criteria = ct1.and(ct2, parameters);
208
+
209
+ expect(ct3.parameters).toEqual([criteriaParam, criteriaParam]);
210
+ expect(ct3.expression).toEqual(`${expression} AND (${expression})`);
211
+ expect(ct3.toJSON()).toEqual(
212
+ {
213
+ expression: "Expression AND (Expression)",
214
+ parameters: [
215
+ { type: "D", value: "PARAM VALUE" },
216
+ { type: "D", value: "PARAM VALUE" }
217
+ ]
218
+ }
219
+ );
220
+
221
+ });
222
+
223
+ it('it should return a toJSON object with through empty constructor', async () => {
224
+
225
+ const ct1: Criteria = new Criteria();
226
+
227
+ expect(ct1.toJSON()).toEqual(undefined);
228
+
229
+ });
230
+
231
+
232
+ });
@@ -0,0 +1,52 @@
1
+ import { CriteriaParameter, CriteriaType } from '../../src/utils/CriteriaParameter';
2
+
3
+ describe('StringUtils', function () {
4
+
5
+
6
+ // => CRITERIA PARAMETER
7
+ // ----------------------------------------------------------------------------------------
8
+
9
+ it('it should return the correct values of "value" and "type" through the getters methods initial setted by the constructor', async () => {
10
+
11
+ let paramsCriteria: string = 'A';
12
+ const ct: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, paramsCriteria);
13
+
14
+ const value = ct.value;
15
+ const type = ct.type;
16
+
17
+ expect(value).toEqual(paramsCriteria);
18
+ expect(type).toEqual(CriteriaType.TYPE_DATE);
19
+
20
+ });
21
+
22
+ it('it should return the correct values of "value" and "type" through the getters methods initial setted by the setters methods', async () => {
23
+
24
+ let paramsCriteria: string = 'A';
25
+ let paramsCriteriaNew: string = 'B';
26
+ const ct: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, paramsCriteria);
27
+
28
+ ct.value = paramsCriteriaNew;
29
+ ct.type = CriteriaType.TYPE_NUMBER;
30
+
31
+ const value = ct.value;
32
+ const type = ct.type;
33
+
34
+ expect(value).toEqual(paramsCriteriaNew);
35
+ expect(type).toEqual(CriteriaType.TYPE_NUMBER);
36
+
37
+ });
38
+
39
+
40
+ it('it should return the correct JSON/Object value through the buildParam method', async () => {
41
+
42
+ let paramsCriteria: string = 'A';
43
+ const ct: CriteriaParameter = new CriteriaParameter(CriteriaType.TYPE_DATE, paramsCriteria);
44
+
45
+ const criteriaParamResult = ct.buildParam();
46
+
47
+ expect(criteriaParamResult).toEqual({ "type": "D", "value": "A" });
48
+
49
+ });
50
+
51
+
52
+ });
@@ -0,0 +1,63 @@
1
+ import DataUnit from "../../src/dataunit/DataUnit.js";
2
+ import { DataUnitStorage } from "../../src/dataunit/DataUnitStorage.js";
3
+
4
+ describe("DataUnitStorage", () => {
5
+ let dataUnit1: DataUnit;
6
+ let dataUnit2: DataUnit;
7
+
8
+ beforeEach(() => {
9
+ dataUnit1 = new DataUnit("dataUnit1");
10
+ dataUnit2 = new DataUnit("dataUnit2");
11
+ });
12
+
13
+ afterEach(() => {
14
+ DataUnitStorage.remove(dataUnit1);
15
+ DataUnitStorage.remove(dataUnit2);
16
+ });
17
+
18
+ describe("put", () => {
19
+ test("should store a DataUnit instance in the DataUnitStorage", () => {
20
+ DataUnitStorage.put(dataUnit1);
21
+ expect(DataUnitStorage.get(dataUnit1.name)).toBe(dataUnit1);
22
+ });
23
+ });
24
+
25
+ describe("get", () => {
26
+ test("should return the stored DataUnit instance from the DataUnitStorage", () => {
27
+ DataUnitStorage.put(dataUnit1);
28
+ const retrievedDataUnit = DataUnitStorage.get(dataUnit1.name);
29
+ expect(retrievedDataUnit).toBe(dataUnit1);
30
+ });
31
+
32
+ test("should return undefined if the DataUnit instance is not found in the DataUnitStorage", () => {
33
+ const retrievedDataUnit = DataUnitStorage.get("nonExistentDataUnit");
34
+ expect(retrievedDataUnit).toBeUndefined();
35
+ });
36
+ });
37
+
38
+ describe("remove", () => {
39
+ test("should remove the specified DataUnit instance from the DataUnitStorage", () => {
40
+ DataUnitStorage.put(dataUnit1);
41
+ DataUnitStorage.remove(dataUnit1);
42
+ const retrievedDataUnit = DataUnitStorage.get(dataUnit1.name);
43
+ expect(retrievedDataUnit).toBeUndefined();
44
+ });
45
+
46
+ test("should remove the DataUnit instance with the specified name from the DataUnitStorage", () => {
47
+ DataUnitStorage.put(dataUnit1);
48
+ DataUnitStorage.remove(dataUnit1.name);
49
+ const retrievedDataUnit = DataUnitStorage.get(dataUnit1.name);
50
+ expect(retrievedDataUnit).toBeUndefined();
51
+ });
52
+
53
+ test("should not remove any DataUnit instance if the specified DataUnit instance or name is not found in the DataUnitStorage", () => {
54
+ DataUnitStorage.put(dataUnit1);
55
+ DataUnitStorage.remove(dataUnit2);
56
+ DataUnitStorage.remove("nonExistentDataUnit");
57
+ const retrievedDataUnit1 = DataUnitStorage.get(dataUnit1.name);
58
+ const retrievedDataUnit2 = DataUnitStorage.get(dataUnit2.name);
59
+ expect(retrievedDataUnit1).toBe(dataUnit1);
60
+ expect(retrievedDataUnit2).toBeUndefined();
61
+ });
62
+ });
63
+ });
@@ -0,0 +1,272 @@
1
+ import { ElementIDUtils, IElementIDInfo } from '../../src/utils/ElementIDUtils';
2
+ import { describe, expect, beforeEach, test } from '@jest/globals';
3
+ import DataUnit from '../../src/dataunit/DataUnit'
4
+ import { DataType } from '../../src/dataunit/metadata/DataType';
5
+ import { UserInterface } from '../../src/dataunit/metadata/UnitMetadata';
6
+ import { StringUtils } from '../../src/utils/StringUtils';
7
+
8
+ type IDInfo = {
9
+ id?: string,
10
+ dataUnit?: DataUnit
11
+ };
12
+
13
+ type AssertElementIdNameProps = {
14
+ result: string,
15
+ iDInfo?: IDInfo,
16
+ suffix?: string,
17
+ dataElementIdAttributeName?: string
18
+ }
19
+
20
+ describe('addIDInfo', () => {
21
+
22
+ let element: HTMLElement;
23
+ const dataUnit = new DataUnit("dataunit-financeiro");
24
+
25
+ beforeEach(() => {
26
+ element = document.createElement('snk-application');
27
+
28
+ dataUnit.metadata = {
29
+ name: "dd://br.com.sankhya.fin.cad.movimentacaoFinanceira/Financeiro",
30
+ label: "Parceiro",
31
+ fields: [
32
+ {
33
+ name: "CODPARC",
34
+ label: "Parceiro",
35
+ dataType: DataType.NUMBER,
36
+ userInterface: UserInterface.SEARCH,
37
+ required: true,
38
+ properties: { ENTITYNAME: "Parceiro" }
39
+ }
40
+ ]
41
+ };
42
+ });
43
+
44
+ const assertElementIdName = ({ result, iDInfo, suffix, dataElementIdAttributeName = "" }: AssertElementIdNameProps) => {
45
+ const formattedResult = StringUtils.replaceAccentuatedChars(result || "", true).toLowerCase();
46
+ const formattedDataElementIdAttributeName = StringUtils.replaceAccentuatedChars(dataElementIdAttributeName || "", true).toLowerCase();
47
+ const formattedSuffix = StringUtils.replaceAccentuatedChars(suffix || "", true).toLowerCase();
48
+ const formattedDataUnitId = StringUtils.replaceAccentuatedChars(iDInfo?.dataUnit?.dataUnitId || "", true).toLowerCase();
49
+
50
+ if (formattedDataUnitId) expect(formattedResult).toContain(formattedDataUnitId);
51
+ if (formattedSuffix) expect(formattedResult).toContain(formattedSuffix);
52
+ expect(
53
+ StringUtils.replaceAccentuatedChars(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME) || '', true).toLowerCase()
54
+ ).toBe(formattedDataElementIdAttributeName);
55
+ }
56
+
57
+ test('1 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
58
+ element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, "movFinanceira");
59
+
60
+ const result = ElementIDUtils.addIDInfo(element);
61
+ const dataElementIdAttributeName = "movFinanceira_snkApplication";
62
+
63
+ assertElementIdName({ dataElementIdAttributeName, result });
64
+ });
65
+
66
+ test('2 - should add data-element-id with valid id "brComSankhyaFinCadMovimentacaofinanceira_snkApplication"', () => {
67
+ const iDInfo = { id: "br.com.sankhya.fin.cad.movimentacaoFinanceira" };
68
+
69
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
70
+ const dataElementIdAttributeName = "brComSankhyaFinCadMovimentacaofinanceira_snkApplication";
71
+
72
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result });
73
+ });
74
+
75
+ test('3 - should add data-element-id with valid id "movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
76
+ element.setAttribute("data-field-name", "movFinanceira");
77
+ const suffix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
78
+ const result = ElementIDUtils.addIDInfo(element, suffix);
79
+ const dataElementIdAttributeName = "movFinanceira_brComSankhyaFinCadMovimentacaofinanceira";
80
+
81
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
82
+ });
83
+
84
+ test('4 - should add data-element-id with valid id "meuID2_snkApplication"', () => {
85
+ element.setAttribute("id", "movFinanceira");
86
+
87
+ const iDInfo = {id: "meuID2"};
88
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
89
+ const dataElementIdAttributeName = "meuID2_snkApplication";
90
+
91
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result });
92
+ });
93
+
94
+ test('5 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
95
+ element.setAttribute("id", "movFinanceira");
96
+ element.setAttribute("name", "componenteNameTest");
97
+
98
+ const result = ElementIDUtils.addIDInfo(element);
99
+ const dataElementIdAttributeName = "movFinanceira_snkApplication";
100
+
101
+ assertElementIdName({ dataElementIdAttributeName, result });
102
+ });
103
+
104
+ test('6 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
105
+ element.setAttribute("id", "movFinanceira");
106
+ element.setAttribute("label", "componenteLabelTest");
107
+
108
+ const result = ElementIDUtils.addIDInfo(element);
109
+ const dataElementIdAttributeName = "movFinanceira_snkApplication";
110
+
111
+ assertElementIdName({ dataElementIdAttributeName, result });
112
+ });
113
+
114
+ test('7 - should add data-element-id with valid id "componenteNameTest_snkApplication"', () => {
115
+ element.setAttribute("name", "componenteNameTest");
116
+
117
+ const result = ElementIDUtils.addIDInfo(element);
118
+ const dataElementIdAttributeName = "componenteNameTest_snkApplication";
119
+
120
+ assertElementIdName({ dataElementIdAttributeName, result });
121
+ });
122
+
123
+
124
+ test('8 - should add data-element-id with valid id "componentLabel_snkApplication"', () => {
125
+ element.setAttribute("label", "componentLabel");
126
+
127
+ const result = ElementIDUtils.addIDInfo(element);
128
+ const dataElementIdAttributeName = "componentLabel_snkApplication";
129
+
130
+ assertElementIdName({ dataElementIdAttributeName, result });
131
+ });
132
+
133
+ test('9 - should add data-element-id with valid id "dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
134
+ const iDInfo = {dataUnit: dataUnit};
135
+ const suffix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
136
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_br.com.sankhya.fin.cad.movimentacaoFinanceira`;
137
+ const result = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
138
+
139
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
140
+ });
141
+
142
+ test('10 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
143
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
144
+ const suffix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
145
+ const result = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
146
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira`;
147
+
148
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
149
+ });
150
+
151
+ test('11 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira"', () => {
152
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
153
+ const suffix = "movimentacaoFinanceira";
154
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIDTeste_movimentacaoFinanceira`;
155
+ const result = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
156
+
157
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
158
+ });
159
+
160
+ test('12 - should add data-element-id with valid id "dataunitFinanceiro_movFinanceira_movimentacaoFinanceira"', () => {
161
+ element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, "movFinanceira");
162
+
163
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
164
+ const suffix = "movimentacaoFinanceira";
165
+ const result = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
166
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_movFinanceira_movimentacaoFinanceira`;
167
+
168
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
169
+ });
170
+
171
+ test('13 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira"', () => {
172
+ element.setAttribute("id", "movFinanceira");
173
+
174
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
175
+ const suffix = "movimentacaoFinanceira";
176
+ const result = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
177
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIDTeste_movimentacaoFinanceira`;
178
+
179
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
180
+ });
181
+
182
+ test('14 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira"', () => {
183
+ element.setAttribute("id", "mov-financeira-snk");
184
+
185
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
186
+ const suffix = "movimentacao Financeira";
187
+ const result = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
188
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIdTeste_movimentacaoFinanceira`;
189
+
190
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
191
+ });
192
+
193
+ test('15 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_snkApplication"', () => {
194
+ element.setAttribute("id", "mov-financeira-snk");
195
+
196
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
197
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
198
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIdTeste_snkApplication`;
199
+
200
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result });
201
+ });
202
+
203
+ test('16 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_snkApplication"', () => {
204
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
205
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
206
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIdTeste_snkApplication`;
207
+
208
+ assertElementIdName({ iDInfo, result, dataElementIdAttributeName });
209
+ });
210
+
211
+ test('17 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
212
+ const suffix = "movimentacao-financeira";
213
+ element.setAttribute("id", "mov-financeira");
214
+
215
+ const result = ElementIDUtils.addIDInfo(element, suffix);
216
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
217
+
218
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
219
+ });
220
+
221
+ test('18 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
222
+ const suffix = "movimentacao-financeira";
223
+ element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, "mov-financeira");
224
+
225
+ const result = ElementIDUtils.addIDInfo(element, suffix);
226
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
227
+
228
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
229
+ });
230
+
231
+
232
+ test('19 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
233
+ const suffix = "movimentacao-financeira";
234
+ element.setAttribute("data-field-name", "mov-financeira");
235
+
236
+ const result = ElementIDUtils.addIDInfo(element, suffix);
237
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
238
+
239
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
240
+ });
241
+
242
+ test('20 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
243
+ const suffix = "movimentacao-financeira";
244
+ element.setAttribute("name", "mov-financeira");
245
+
246
+ const result = ElementIDUtils.addIDInfo(element, suffix);
247
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
248
+
249
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
250
+ });
251
+
252
+ test('21 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
253
+ const suffix = "movimentacao-financeira";
254
+ element.setAttribute("label", "mov-financeira");
255
+
256
+ const result = ElementIDUtils.addIDInfo(element, suffix);
257
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
258
+
259
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
260
+ });
261
+
262
+ test('22 - should add data-element-id with valid id "bancoObrigatorio_movimentacaoFinanceira"', () => {
263
+ const suffix = "movimentacao-financeira";
264
+ element.setAttribute("name", "Banco (obrigatório) *");
265
+
266
+ const result = ElementIDUtils.addIDInfo(element, suffix);
267
+ const dataElementIdAttributeName = `bancoObrigatorio_movimentacaoFinanceira`;
268
+
269
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
270
+ });
271
+
272
+ });