@sankhyalabs/core 3.1.2 → 4.0.1

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 (68) hide show
  1. package/.docs/classes/Change.md +11 -11
  2. package/.docs/classes/DataUnit.md +385 -104
  3. package/.docs/classes/DataUnitStorage.md +116 -0
  4. package/.docs/classes/DateUtils.md +87 -10
  5. package/.docs/classes/MaskFormatter-1.md +25 -14
  6. package/.docs/classes/NumberUtils.md +45 -0
  7. package/.docs/enums/Action.md +11 -0
  8. package/.docs/enums/ChangeOperation.md +4 -4
  9. package/.docs/enums/DependencyType.md +3 -3
  10. package/.docs/enums/SortMode.md +2 -2
  11. package/.docs/enums/UserInterface.md +17 -17
  12. package/.docs/interfaces/ChildDescriptor.md +41 -0
  13. package/.docs/interfaces/ChildLink.md +30 -0
  14. package/.docs/interfaces/DUActionInterceptor.md +1 -1
  15. package/.docs/interfaces/FieldDescriptor.md +11 -11
  16. package/.docs/interfaces/Filter.md +3 -3
  17. package/.docs/interfaces/PageRequest.md +3 -3
  18. package/.docs/interfaces/QuickFilter.md +2 -2
  19. package/.docs/interfaces/Record.md +24 -2
  20. package/.docs/interfaces/SavedRecord.md +33 -3
  21. package/.docs/interfaces/Sort.md +3 -3
  22. package/.docs/interfaces/SortingProvider.md +1 -1
  23. package/.docs/interfaces/UnitMetadata.md +1 -1
  24. package/.docs/interfaces/WaitingChange.md +3 -3
  25. package/.docs/modules/MaskFormatter.md +4 -4
  26. package/.docs/modules.md +3 -0
  27. package/dist/dataunit/DataUnit.d.ts +83 -4
  28. package/dist/dataunit/DataUnit.js +216 -20
  29. package/dist/dataunit/DataUnit.js.map +1 -1
  30. package/dist/dataunit/DataUnitStorage.d.ts +24 -0
  31. package/dist/dataunit/DataUnitStorage.js +39 -0
  32. package/dist/dataunit/DataUnitStorage.js.map +1 -0
  33. package/dist/dataunit/formatting/PrettyFormatter.d.ts +2 -0
  34. package/dist/dataunit/formatting/PrettyFormatter.js +88 -0
  35. package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -0
  36. package/dist/dataunit/metadata/UnitMetadata.d.ts +1 -0
  37. package/dist/dataunit/metadata/UnitMetadata.js.map +1 -1
  38. package/dist/dataunit/state/action/DataUnitAction.d.ts +2 -1
  39. package/dist/dataunit/state/action/DataUnitAction.js +1 -0
  40. package/dist/dataunit/state/action/DataUnitAction.js.map +1 -1
  41. package/dist/dataunit/state/slice/ChangesSlice.js +2 -1
  42. package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -1
  43. package/dist/index.d.ts +3 -2
  44. package/dist/index.js +2 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/utils/DateUtils.d.ts +23 -0
  47. package/dist/utils/DateUtils.js +30 -0
  48. package/dist/utils/DateUtils.js.map +1 -1
  49. package/dist/utils/MaskFormatter.d.ts +1 -0
  50. package/dist/utils/MaskFormatter.js +6 -0
  51. package/dist/utils/MaskFormatter.js.map +1 -1
  52. package/dist/utils/NumberUtils.d.ts +25 -0
  53. package/dist/utils/NumberUtils.js +28 -0
  54. package/dist/utils/NumberUtils.js.map +1 -1
  55. package/package.json +4 -2
  56. package/src/dataunit/DataUnit.ts +244 -28
  57. package/src/dataunit/DataUnitStorage.ts +43 -0
  58. package/src/dataunit/formatting/PrettyFormatter.ts +106 -0
  59. package/src/dataunit/metadata/UnitMetadata.ts +1 -0
  60. package/src/dataunit/state/action/DataUnitAction.ts +3 -1
  61. package/src/dataunit/state/slice/ChangesSlice.ts +2 -1
  62. package/src/index.ts +6 -1
  63. package/src/utils/DateUtils.ts +34 -1
  64. package/src/utils/MaskFormatter.ts +8 -0
  65. package/src/utils/NumberUtils.ts +29 -0
  66. package/test/util/DataUnitStorage.spec.ts +63 -0
  67. package/test/util/ElementIDUtils.spec.ts +127 -85
  68. package/test/util/NumberUtils.spec.ts +22 -0
@@ -18,6 +18,39 @@ export default class DateUtils{
18
18
  const newDate: Date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);
19
19
  return adjustDayLightSavingTime ? DateUtils.adjustDLST(newDate) : newDate;
20
20
  }
21
+
22
+ /**
23
+ * Converte data para uma string no formato pt-BR.
24
+ *
25
+ * @param date - Data a ser convertida.
26
+ * @returns - Uma string com a data no formato pt-BR DD/MM/YYYY.
27
+ */
28
+ public static formatDate(date: Date): string{
29
+ return date ? new Intl.DateTimeFormat("pt-BR").format(date) : "";
30
+ }
31
+
32
+ /**
33
+ * Converte as horas de uma data para uma string pt-BR.
34
+ *
35
+ * @param date - Data a ser convertida.
36
+ * @param showSeconds - define se devemos considerar os segundos.
37
+ * @returns - Uma string com as horas no formato HH:MM ou HH:MM:SS.
38
+ */
39
+ public static formatTime(date: Date, showSeconds: boolean = false): string{
40
+ const timeOptions:Intl.DateTimeFormatOptions = {hour: "2-digit", minute: "2-digit", second: showSeconds ? "2-digit" : undefined};
41
+ return new Intl.DateTimeFormat("pt-BR", timeOptions).format(date);
42
+ }
43
+
44
+ /**
45
+ * Converte a data e hora para uma string no formato pt-BR.
46
+ *
47
+ * @param date - Data a ser convertida.
48
+ * @param showSeconds - define se devemos considerar os segundos.
49
+ * @returns - Uma string com as horas no formato DD/MM/YYYY HH:MM ou DD/MM/YYYY HH:MM:SS.
50
+ */
51
+ public static formatDateTime(date: Date, showSeconds: boolean = false): string{
52
+ return `${DateUtils.formatDate(date)} ${DateUtils.formatTime(date, showSeconds)}`;
53
+ }
21
54
 
22
55
  /**
23
56
  * Converte String para Date.
@@ -117,7 +150,7 @@ export default class DateUtils{
117
150
  * @example
118
151
  * Informo: 2 | Obtenho: "02"
119
152
  */
120
- private static pad(n: Number): string | Number {
153
+ private static pad(n: number): string | number {
121
154
  return n < 10 ? "0" + n : n;
122
155
  }
123
156
 
@@ -54,6 +54,14 @@ export class MaskFormatter {
54
54
  private static CHARACTER_KEY: string = "?";
55
55
  private static ANYTHING_KEY: string = "*";
56
56
 
57
+ public static DEFAULT_MASKS: any = {
58
+ "cnpj": "##.###.###/####-##",
59
+ "cpf": "###.###.###-##",
60
+ "phone": "(##) ####-####",
61
+ "cep": "##.###-###"
62
+ };
63
+
64
+
57
65
  private _mask: string = '';
58
66
  private _maskChars: Array<MaskFormatter.MaskCharacter> = new Array<MaskFormatter.MaskCharacter>();
59
67
 
@@ -209,4 +209,33 @@ export class NumberUtils {
209
209
  static getValueOrZero = (value: any): number => {
210
210
  return NumberUtils.getValueOrDefault(value, 0);
211
211
  }
212
+
213
+ /**
214
+ * Realiza o arredondamento de casas decimais de um numero.
215
+ *
216
+ * @param value - Numeral a ser arredondado.
217
+ * @param decimals - Quantidade de casas decimais ussada no arredondamento.
218
+ *
219
+ * @returns - O próprio numeral arredondado com a quantidade de casas decimais do argumento decimals.
220
+ *
221
+ * @example
222
+ * @ (100.12) | 100.12
223
+ * @ (100,12) | NaN
224
+
225
+ * @ ("100.12", 1) | 100.1
226
+ * @ ("100.12", 2) | 100.12
227
+ * @ ("100.12", 3) | 100.12
228
+
229
+ * @ ("100.15", 1) | 100.2
230
+ * @ ("100.15", 2) | 100.15
231
+ * @ ("100.15", 3) | 100.15
232
+
233
+ * @ ("100.16", 1) | 100.2
234
+ * @ ("100.16", 2) | 100.16
235
+ * @ ("100.16", 3) | 100.16
236
+ */
237
+ static round(value: number, decimals: number = 2):number {
238
+ const decimalNumber:number = (new Number(value +'e' + decimals) as number);
239
+ return Number(Math.round(decimalNumber)+ 'e-' + decimals);
240
+ }
212
241
  }
@@ -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
+ });
@@ -3,6 +3,19 @@ import { describe, expect, beforeEach, test } from '@jest/globals';
3
3
  import DataUnit from '../../src/dataunit/DataUnit'
4
4
  import { DataType } from '../../src/dataunit/metadata/DataType';
5
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
+ }
6
19
 
7
20
  describe('addIDInfo', () => {
8
21
 
@@ -27,39 +40,55 @@ describe('addIDInfo', () => {
27
40
  ]
28
41
  };
29
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
+ }
30
56
 
31
57
  test('1 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
32
58
  element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, "movFinanceira");
33
59
 
34
60
  const result = ElementIDUtils.addIDInfo(element);
35
- expect(result).toBe("movFinanceira_snkApplication");
36
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_snkApplication");
61
+ const dataElementIdAttributeName = "movFinanceira_snkApplication";
62
+
63
+ assertElementIdName({ dataElementIdAttributeName, result });
37
64
  });
38
65
 
39
66
  test('2 - should add data-element-id with valid id "brComSankhyaFinCadMovimentacaofinanceira_snkApplication"', () => {
40
- const iDInfo: IElementIDInfo = { id: "br.com.sankhya.fin.cad.movimentacaoFinanceira" };
67
+ const iDInfo = { id: "br.com.sankhya.fin.cad.movimentacaoFinanceira" };
41
68
 
42
69
  const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
43
- expect(result).toBe("brComSankhyaFinCadMovimentacaofinanceira_snkApplication");
44
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("brComSankhyaFinCadMovimentacaofinanceira_snkApplication");
70
+ const dataElementIdAttributeName = "brComSankhyaFinCadMovimentacaofinanceira_snkApplication";
71
+
72
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result });
45
73
  });
46
74
 
47
75
  test('3 - should add data-element-id with valid id "movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
48
76
  element.setAttribute("data-field-name", "movFinanceira");
49
- const sufix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
50
-
51
- const result = ElementIDUtils.addIDInfo(element, sufix);
52
- expect(result).toBe("movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira");
53
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira");
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 });
54
82
  });
55
83
 
56
84
  test('4 - should add data-element-id with valid id "meuID2_snkApplication"', () => {
57
85
  element.setAttribute("id", "movFinanceira");
86
+
58
87
  const iDInfo = {id: "meuID2"};
59
-
60
88
  const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
61
- expect(result).toBe("meuID2_snkApplication");
62
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("meuID2_snkApplication");
89
+ const dataElementIdAttributeName = "meuID2_snkApplication";
90
+
91
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result });
63
92
  });
64
93
 
65
94
  test('5 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
@@ -67,8 +96,9 @@ describe('addIDInfo', () => {
67
96
  element.setAttribute("name", "componenteNameTest");
68
97
 
69
98
  const result = ElementIDUtils.addIDInfo(element);
70
- expect(result).toBe("movFinanceira_snkApplication");
71
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_snkApplication");
99
+ const dataElementIdAttributeName = "movFinanceira_snkApplication";
100
+
101
+ assertElementIdName({ dataElementIdAttributeName, result });
72
102
  });
73
103
 
74
104
  test('6 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
@@ -76,16 +106,18 @@ describe('addIDInfo', () => {
76
106
  element.setAttribute("label", "componenteLabelTest");
77
107
 
78
108
  const result = ElementIDUtils.addIDInfo(element);
79
- expect(result).toBe("movFinanceira_snkApplication");
80
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_snkApplication");
109
+ const dataElementIdAttributeName = "movFinanceira_snkApplication";
110
+
111
+ assertElementIdName({ dataElementIdAttributeName, result });
81
112
  });
82
113
 
83
114
  test('7 - should add data-element-id with valid id "componenteNameTest_snkApplication"', () => {
84
115
  element.setAttribute("name", "componenteNameTest");
85
116
 
86
117
  const result = ElementIDUtils.addIDInfo(element);
87
- expect(result).toBe("componenteNameTest_snkApplication");
88
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("componenteNameTest_snkApplication");
118
+ const dataElementIdAttributeName = "componenteNameTest_snkApplication";
119
+
120
+ assertElementIdName({ dataElementIdAttributeName, result });
89
121
  });
90
122
 
91
123
 
@@ -93,138 +125,148 @@ describe('addIDInfo', () => {
93
125
  element.setAttribute("label", "componentLabel");
94
126
 
95
127
  const result = ElementIDUtils.addIDInfo(element);
96
- expect(result).toBe("componentLabel_snkApplication");
97
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("componentLabel_snkApplication");
128
+ const dataElementIdAttributeName = "componentLabel_snkApplication";
129
+
130
+ assertElementIdName({ dataElementIdAttributeName, result });
98
131
  });
99
132
 
100
133
  test('9 - should add data-element-id with valid id "dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
101
-
102
134
  const iDInfo = {dataUnit: dataUnit};
103
- const sufix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
104
-
105
- const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
106
- expect(result).toBe("dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira");
107
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira");
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 });
108
140
  });
109
141
 
110
142
  test('10 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
111
143
  const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
112
- const sufix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
113
-
114
- const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
115
- expect(result).toBe("dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira");
116
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira");
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 });
117
149
  });
118
150
 
119
151
  test('11 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira"', () => {
120
152
  const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
121
- const sufix = "movimentacaoFinanceira";
122
-
123
- const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
124
- expect(result).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
125
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
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 });
126
158
  });
127
159
 
128
160
  test('12 - should add data-element-id with valid id "dataunitFinanceiro_movFinanceira_movimentacaoFinanceira"', () => {
129
- const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
130
- const sufix = "movimentacaoFinanceira";
131
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`;
132
167
 
133
- const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
134
- expect(result).toBe("dataunitFinanceiro_movFinanceira_movimentacaoFinanceira");
135
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_movFinanceira_movimentacaoFinanceira");
168
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result, suffix });
136
169
  });
137
170
 
138
171
  test('13 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira"', () => {
139
- const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
140
- const sufix = "movimentacaoFinanceira";
141
172
  element.setAttribute("id", "movFinanceira");
142
-
143
- const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
144
- expect(result).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
145
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
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 });
146
180
  });
147
181
 
148
182
  test('14 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira"', () => {
149
- const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
150
- const sufix = "movimentacao Financeira";
151
183
  element.setAttribute("id", "mov-financeira-snk");
152
-
153
- const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
154
- expect(result).toBe("dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira");
155
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira");
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 });
156
191
  });
157
192
 
158
193
  test('15 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_snkApplication"', () => {
159
- const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
160
194
  element.setAttribute("id", "mov-financeira-snk");
161
-
195
+
196
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
162
197
  const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
163
- expect(result).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
164
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
198
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIdTeste_snkApplication`;
199
+
200
+ assertElementIdName({ dataElementIdAttributeName, iDInfo, result });
165
201
  });
166
202
 
167
203
  test('16 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_snkApplication"', () => {
168
204
  const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
169
-
170
205
  const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
171
- expect(result).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
172
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
206
+ const dataElementIdAttributeName = `dataunitFinanceiro?uuid=${iDInfo.dataUnit.dataUnitId}_meuIdTeste_snkApplication`;
207
+
208
+ assertElementIdName({ iDInfo, result, dataElementIdAttributeName });
173
209
  });
174
210
 
175
211
  test('17 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
176
- const sufix = "movimentacao-financeira";
212
+ const suffix = "movimentacao-financeira";
177
213
  element.setAttribute("id", "mov-financeira");
178
214
 
179
- const result = ElementIDUtils.addIDInfo(element, sufix);
180
- expect(result).toBe("movFinanceira_movimentacaoFinanceira");
181
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_movimentacaoFinanceira");
215
+ const result = ElementIDUtils.addIDInfo(element, suffix);
216
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
217
+
218
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
182
219
  });
183
220
 
184
221
  test('18 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
185
- const sufix = "movimentacao-financeira";
222
+ const suffix = "movimentacao-financeira";
186
223
  element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, "mov-financeira");
187
224
 
188
- const result = ElementIDUtils.addIDInfo(element, sufix);
189
- expect(result).toBe("movFinanceira_movimentacaoFinanceira");
190
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_movimentacaoFinanceira");
225
+ const result = ElementIDUtils.addIDInfo(element, suffix);
226
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
227
+
228
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
191
229
  });
192
230
 
193
231
 
194
232
  test('19 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
195
- const sufix = "movimentacao-financeira";
233
+ const suffix = "movimentacao-financeira";
196
234
  element.setAttribute("data-field-name", "mov-financeira");
197
235
 
198
- const result = ElementIDUtils.addIDInfo(element, sufix);
199
- expect(result).toBe("movFinanceira_movimentacaoFinanceira");
200
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_movimentacaoFinanceira");
236
+ const result = ElementIDUtils.addIDInfo(element, suffix);
237
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
238
+
239
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
201
240
  });
202
241
 
203
242
  test('20 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
204
- const sufix = "movimentacao-financeira";
243
+ const suffix = "movimentacao-financeira";
205
244
  element.setAttribute("name", "mov-financeira");
206
245
 
207
- const result = ElementIDUtils.addIDInfo(element, sufix);
208
- expect(result).toBe("movFinanceira_movimentacaoFinanceira");
209
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_movimentacaoFinanceira");
246
+ const result = ElementIDUtils.addIDInfo(element, suffix);
247
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
248
+
249
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
210
250
  });
211
251
 
212
252
  test('21 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
213
- const sufix = "movimentacao-financeira";
253
+ const suffix = "movimentacao-financeira";
214
254
  element.setAttribute("label", "mov-financeira");
215
255
 
216
- const result = ElementIDUtils.addIDInfo(element, sufix);
217
- expect(result).toBe("movFinanceira_movimentacaoFinanceira");
218
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_movimentacaoFinanceira");
256
+ const result = ElementIDUtils.addIDInfo(element, suffix);
257
+ const dataElementIdAttributeName = `movFinanceira_movimentacaoFinanceira`;
258
+
259
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
219
260
  });
220
261
 
221
262
  test('22 - should add data-element-id with valid id "bancoObrigatorio_movimentacaoFinanceira"', () => {
222
- const sufix = "movimentacao-financeira";
263
+ const suffix = "movimentacao-financeira";
223
264
  element.setAttribute("name", "Banco (obrigatório) *");
224
265
 
225
- const result = ElementIDUtils.addIDInfo(element, sufix);
226
- expect(result).toBe("bancoObrigatorio_movimentacaoFinanceira");
227
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("bancoObrigatorio_movimentacaoFinanceira");
266
+ const result = ElementIDUtils.addIDInfo(element, suffix);
267
+ const dataElementIdAttributeName = `bancoObrigatorio_movimentacaoFinanceira`;
268
+
269
+ assertElementIdName({ dataElementIdAttributeName, result, suffix });
228
270
  });
229
271
 
230
272
  });
@@ -153,5 +153,27 @@ describe('StringUtils', function () {
153
153
  })
154
154
 
155
155
  });
156
+
157
+
158
+ const testCasesTo_round = [
159
+ { decimal: undefined, inputValue: 100.12, outPutValue: 100.12 },
160
+ { decimal: 1, inputValue: 100.12, outPutValue: 100.1 },
161
+ { decimal: 2, inputValue: 100.12, outPutValue: 100.12 },
162
+ { decimal: 3, inputValue: 100.12, outPutValue: 100.12 },
163
+ { decimal: 1, inputValue: 100.15, outPutValue: 100.2 },
164
+ { decimal: 2, inputValue: 100.15, outPutValue: 100.15 },
165
+ { decimal: 3, inputValue: 100.15, outPutValue: 100.15 },
166
+ { decimal: 1, inputValue: 100.16, outPutValue: 100.2 },
167
+ { decimal: 2, inputValue: 100.16, outPutValue: 100.16 },
168
+ { decimal: 3, inputValue: 100.16, outPutValue: 100.16 },
169
+ ]
170
+
171
+ it('format round number', function () {
172
+ let result: number;
173
+ testCasesTo_round.forEach(e => {
174
+ result = NumberUtils.round(e.inputValue, e.decimal);
175
+ expect(result).toBe(e.outPutValue);
176
+ })
177
+ });
156
178
 
157
179
  });