@sis-cc/dotstatsuite-components 15.0.21 → 16.0.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.
- package/lib/rules/src/index.js +1 -145
- package/lib/rules/src/table/index.js +0 -42
- package/lib/rules2/src/constants.js +3 -1
- package/lib/rules2/src/enhanceObservations.js +98 -0
- package/lib/rules2/src/getAttributesSeries.js +33 -0
- package/lib/rules2/src/getCombinationDefinitions.js +48 -0
- package/lib/rules2/src/getHeaderCombinations.js +42 -0
- package/lib/rules2/src/getHeaderSubtitle.js +41 -0
- package/lib/rules2/src/getManyValuesDimensions.js +39 -0
- package/lib/rules2/src/getOneValueDimensions.js +46 -0
- package/lib/rules2/src/hasCellMetadata.js +1 -1
- package/lib/rules2/src/index.js +186 -18
- package/lib/rules2/src/parseAttributes.js +50 -0
- package/lib/rules2/src/parseCombinations.js +54 -0
- package/lib/rules2/src/prepareData.js +74 -0
- package/lib/{rules/src/table/preparators/getAttributeValue.js → rules2/src/refineAttributes.js} +13 -11
- package/lib/rules2/src/table/getCells.js +74 -0
- package/lib/rules2/src/table/getCellsAttributesIds.js +63 -0
- package/lib/rules2/src/table/getCombinationDimensionsData.js +47 -0
- package/lib/rules2/src/table/getCuratedCells.js +28 -0
- package/lib/rules2/src/table/getFlagsAndNotes.js +28 -0
- package/lib/rules2/src/table/getIndexedCombinationsByDisplay.js +31 -0
- package/lib/rules2/src/table/getLayout.js +93 -0
- package/lib/rules2/src/table/getLayoutData.js +202 -0
- package/lib/{rules/src/table/factories → rules2/src/table}/getSortedLayoutIndexes.js +55 -40
- package/lib/rules2/src/table/getTableProps.js +64 -0
- package/lib/rules2/src/table/parseValueHierarchy.js +55 -0
- package/lib/{rules/src/table/factories → rules2/src/table}/refineLayoutSize.js +17 -8
- package/lib/rules2/src/{hasLayoutEntryMetadata.js → utils.js} +9 -6
- package/package.json +1 -1
- package/src/rules/src/index.js +1 -19
- package/src/rules/src/table/index.js +0 -4
- package/src/rules2/src/constants.js +2 -0
- package/src/rules2/src/enhanceObservations.js +88 -0
- package/src/rules2/src/getAttributesSeries.js +29 -0
- package/src/rules2/src/getCombinationDefinitions.js +29 -0
- package/src/rules2/src/getHeaderCombinations.js +39 -0
- package/src/rules2/src/getHeaderSubtitle.js +34 -0
- package/src/rules2/src/getManyValuesDimensions.js +34 -0
- package/src/rules2/src/getOneValueDimensions.js +33 -0
- package/src/rules2/src/hasCellMetadata.js +1 -1
- package/src/rules2/src/index.js +21 -6
- package/src/rules2/src/parseAttributes.js +36 -0
- package/src/rules2/src/parseCombinations.js +36 -0
- package/src/rules2/src/prepareData.js +50 -0
- package/src/rules2/src/refineAttributes.js +16 -0
- package/src/rules2/src/table/getCells.js +72 -0
- package/src/rules2/src/table/getCellsAttributesIds.js +38 -0
- package/src/rules2/src/table/getCombinationDimensionsData.js +38 -0
- package/src/rules2/src/table/getCuratedCells.js +33 -0
- package/src/rules2/src/table/getFlagsAndNotes.js +21 -0
- package/src/rules2/src/table/getIndexedCombinationsByDisplay.js +16 -0
- package/src/rules2/src/table/getLayout.js +80 -0
- package/src/rules2/src/table/getLayoutData.js +183 -0
- package/src/rules2/src/table/getSortedLayoutIndexes.js +119 -0
- package/src/rules2/src/table/getTableProps.js +36 -0
- package/src/rules2/src/table/parseValueHierarchy.js +27 -0
- package/src/{rules/src/table/factories → rules2/src/table}/refineLayoutSize.js +24 -8
- package/src/rules2/src/utils.js +12 -0
- package/test/enhanceObservations2.test.js +219 -0
- package/test/getAttributesSeries.test.js +58 -0
- package/test/getCells.test.js +6 -40
- package/test/getCombinationDimensionsData.test.js +48 -0
- package/test/getSortedLayoutIndexes.test.js +1025 -3
- package/test/parseAttributes.test.js +17 -62
- package/test/parseValueHierarchy.test.js +88 -0
- package/test/refineLayoutSize.test.js +2621 -1
- package/lib/rules/src/table/factories/getCells.js +0 -97
- package/lib/rules/src/table/factories/getConfirmedSeriesAttributesIds.js +0 -26
- package/lib/rules/src/table/factories/getCuratedCells.js +0 -45
- package/lib/rules/src/table/factories/getLayoutData.js +0 -168
- package/lib/rules/src/table/factories/getLayoutWithFlags.js +0 -133
- package/lib/rules/src/table/factories/getTableCells.js +0 -24
- package/lib/rules/src/table/factories/getTableData.js +0 -98
- package/lib/rules/src/table/preparators/getDimensionsAttributesRegisters.js +0 -43
- package/lib/rules/src/table/preparators/getManyValuesDimensions.js +0 -33
- package/lib/rules/src/table/preparators/getOneValueDimensions.js +0 -24
- package/lib/rules/src/table/preparators/getUniqValuesAttributes.js +0 -36
- package/lib/rules/src/table/preparators/parseAttributes.js +0 -84
- package/lib/rules/src/table/preparators/parseAttributesValuesFromObservations.js +0 -22
- package/lib/rules/src/table/preparators/parseDimensionsIds.js +0 -22
- package/lib/rules/src/table/preparators/prepareData.js +0 -191
- package/lib/rules/src/table/preparators/refineObservationsAttributesValues.js +0 -31
- package/lib/rules/src/table/preparators/refineSeriesAttributesValues.js +0 -23
- package/lib/rules/src/table/units/appendUnitsInLayoutData.js +0 -82
- package/lib/rules/src/table/units/appendUnitsInLayoutDataEntry.js +0 -45
- package/lib/rules/src/table/units/cleanUnitsInLayoutData.js +0 -66
- package/lib/rules/src/table/units/getAttachmentSeriesIndexes.js +0 -25
- package/lib/rules/src/table/units/getHeaderUnits.js +0 -35
- package/lib/rules/src/table/units/getUnitsArtefacts.js +0 -85
- package/lib/rules/src/table/units/getUnitsCodes.js +0 -23
- package/lib/rules/src/table/units/getUnitsDefinition.js +0 -33
- package/lib/rules/src/table/units/getUnitsDisplay.js +0 -33
- package/lib/rules/src/table/units/getUnitsSerieIndexes.js +0 -23
- package/lib/rules/src/table/units/getUnitsSeries.js +0 -49
- package/lib/rules/src/table/units/getUnitsinLayout.js +0 -74
- package/lib/rules/src/table/units/refineDimSeriesUnits.js +0 -44
- package/lib/rules2/src/getAdvancedAttributes.js +0 -124
- package/lib/rules2/src/invertTime.js +0 -33
- package/src/rules/src/table/factories/getCells.js +0 -102
- package/src/rules/src/table/factories/getConfirmedSeriesAttributesIds.js +0 -27
- package/src/rules/src/table/factories/getCuratedCells.js +0 -40
- package/src/rules/src/table/factories/getLayoutData.js +0 -171
- package/src/rules/src/table/factories/getLayoutWithFlags.js +0 -137
- package/src/rules/src/table/factories/getSortedLayoutIndexes.js +0 -108
- package/src/rules/src/table/factories/getTableCells.js +0 -16
- package/src/rules/src/table/factories/getTableData.js +0 -86
- package/src/rules/src/table/preparators/getAttributeValue.js +0 -17
- package/src/rules/src/table/preparators/getDimensionsAttributesRegisters.js +0 -51
- package/src/rules/src/table/preparators/getManyValuesDimensions.js +0 -19
- package/src/rules/src/table/preparators/getOneValueDimensions.js +0 -17
- package/src/rules/src/table/preparators/getUniqValuesAttributes.js +0 -24
- package/src/rules/src/table/preparators/parseAttributes.js +0 -113
- package/src/rules/src/table/preparators/parseAttributesValuesFromObservations.js +0 -16
- package/src/rules/src/table/preparators/parseDimensionsIds.js +0 -17
- package/src/rules/src/table/preparators/prepareData.js +0 -197
- package/src/rules/src/table/preparators/refineObservationsAttributesValues.js +0 -22
- package/src/rules/src/table/preparators/refineSeriesAttributesValues.js +0 -11
- package/src/rules/src/table/units/appendUnitsInLayoutData.js +0 -56
- package/src/rules/src/table/units/appendUnitsInLayoutDataEntry.js +0 -38
- package/src/rules/src/table/units/cleanUnitsInLayoutData.js +0 -65
- package/src/rules/src/table/units/getAttachmentSeriesIndexes.js +0 -27
- package/src/rules/src/table/units/getHeaderUnits.js +0 -32
- package/src/rules/src/table/units/getUnitsArtefacts.js +0 -90
- package/src/rules/src/table/units/getUnitsCodes.js +0 -22
- package/src/rules/src/table/units/getUnitsDefinition.js +0 -34
- package/src/rules/src/table/units/getUnitsDisplay.js +0 -19
- package/src/rules/src/table/units/getUnitsSerieIndexes.js +0 -12
- package/src/rules/src/table/units/getUnitsSeries.js +0 -41
- package/src/rules/src/table/units/getUnitsinLayout.js +0 -71
- package/src/rules/src/table/units/refineDimSeriesUnits.js +0 -26
- package/src/rules2/src/getAdvancedAttributes.js +0 -111
- package/src/rules2/src/hasLayoutEntryMetadata.js +0 -9
- package/src/rules2/src/invertTime.js +0 -22
- package/test/advanced-attributes-parsing-perf.test.js +0 -16
- package/test/appendUnitsInLayoutDataEntry.test.js +0 -65
- package/test/cleanUnitsInLayoutData.test.js +0 -85
- package/test/enhanceObservations.test.js +0 -340
- package/test/getAttachmentSeriesIndexes.test.js +0 -35
- package/test/getConfirmedSeriesAttributesIds.test.js +0 -27
- package/test/getDataflowAdvancedAttributes.test.js +0 -32
- package/test/getHeaderUnits.test.js +0 -51
- package/test/getLayoutData.test.js +0 -206
- package/test/getLayoutDataWithFlags.test.js +0 -142
- package/test/getOneValueDimensions.test.js +0 -26
- package/test/getSeriesAdvancedAttributes.test.js +0 -32
- package/test/getSubtitleFlags.test.js +0 -42
- package/test/getTableData.test.js +0 -1317
- package/test/getUnitsArtefacts.test.js +0 -117
- package/test/getUnitsDefinition.test.js +0 -37
- package/test/getUnitsInLayout.test.js +0 -77
- package/test/getUnitsSeries.test.js +0 -154
- package/test/invertTime.test.js +0 -77
- package/test/parseAttributesValuesFromObservations.test.js +0 -45
- package/test/parseDimensionsIds.test.js +0 -20
- package/test/prepareData.test.js +0 -29
- package/test/refineObservationsAttributesValues.test.js +0 -33
- package/test/table-invert-time-perf.test.js +0 -11
- package/test/table-layout-perf.test.js +0 -74
- package/test/table-prep-duplicate-perf.test.js +0 -15
- package/test/table-prep-perf.test.js +0 -61
|
@@ -1,78 +1,33 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
-
import { parseAttributes } from '../src/
|
|
2
|
+
import { parseAttributes } from '../src/rules2/src/';
|
|
3
3
|
|
|
4
4
|
const attributes = [
|
|
5
|
-
{ id: 'a0', display: false, relationship: { primaryMeasure: 'OBS_VALUE' }, values: [{ id: 'a0v1' }] }, // no display
|
|
6
|
-
{ id: 'a1', relationship: { primaryMeasure: 'OBS_VALUE' } }, // no values
|
|
7
|
-
{ id: 'a2', relationship: { primaryMeasure: 'OBS_VALUE' }, values: [] }, // empty values
|
|
8
|
-
{ id: 'a3', values: [{ id: 'a3v1' }] }, // no relationship definition
|
|
9
|
-
{ id: 'a4', relationship: {}, values: [{ id: 'a4v1' }] }, // empty relationship
|
|
10
|
-
{ id: 'a5', relationship: { primaryMeasure: 'WRONG' }, values: [{ id: 'a5v1' }] }, // incorrect primaryMeasure relationship
|
|
11
5
|
{ id: 'a6', relationship: { primaryMeasure: 'OBS_VALUE' }, values: [{ id: 'a6v1' }] }, // correct observations attribute
|
|
12
|
-
{ id: 'a7', relationship: { dimensions: [] }, values: [{ id: 'a7v1' }] }, // empty dimensions relationship
|
|
13
6
|
{ id: 'a8', relationship: { dimensions: ['d1'] }, values: [{ id: 'a8v1' }] }, // single 'one value' dimension relationship
|
|
14
7
|
{ id: 'a9', relationship: { dimensions: ['d4'] }, values: [{ id: 'a9v1' }] }, // single 'many values' dimension relationship
|
|
15
8
|
{ id: 'a10', relationship: { dimensions: ['d1', 'd2'] }, values: [{ id: 'a10v1' }] }, // many 'single value' dimensions realtionship
|
|
16
9
|
{ id: 'a11', relationship: { dimensions: ['d1', 'd2', 'd4'] }, values: [{ id: 'a11v1' }] }, // one 'many values' and many 'single value' dimensions relationship
|
|
17
|
-
{ id: 'a12', relationship: { dimensions: ['d5', 'd6'] }, values: [{ id: 'a12v1' }] }, // many 'many values' dimensions relationship
|
|
18
|
-
{ id: 'a13', relationship: { dimensions: ['d4', 'd1', 'd6'] }, values: [{ id: 'a13v1' }] }, // many 'many values' and one 'single value' dimensions relationship
|
|
19
|
-
{ id: 'a14', relationship: { dimensions: ['d1'] }, values: [{ id: 'a14v1' }] }, // not recognised as footnote
|
|
20
|
-
{ id: 'a15', relationship: { dimensions: ['d3'] }, values: [{ id: 'a15v1' }] }, // recognised as prefscale
|
|
21
|
-
{ id: 'a16', relationship: { dimensions: ['d6'] }, values: [{ id: 'a16v1' }] }, // recognised as decimals
|
|
22
|
-
{ id: 'a17', display: false, relationship: { primaryMeasure: 'OBS_VALUE' }, values: [{ id: 'a17v1' }] }, // blacklisted
|
|
23
|
-
{ id: 'a18', relationship: { primaryMeasure: 'OBS_VALUE' }, values: [{ id: 'a18v1' }, { id: 'a18v2', display: false }] }, // blacklisted value
|
|
24
|
-
{ id: 'a19', relationship: { none: {} }, values: [{ id: 'a19v1' }] }, // dataset relationship
|
|
25
|
-
{ id: 'a20', relationship: { primaryMeasure: 'OBS_VALUE' }, values: [{ id: 'a20v1' }] }, // units attribute
|
|
26
|
-
{ id: 'a21', relationship: { dataflow: {} }, values: [{ id: 'a21v0' }] }, // alternative dataflow relationship
|
|
27
|
-
{ id: 'a22', relationship: { observation: {} }, values: [{ id: 'a22v0' }] }, // alternative observation relationship
|
|
28
|
-
{ id: 'REPORTING_YEAR_START_DAY', relationship: { observation: {} }, values: [{ id: 'a22v0' }]},
|
|
29
|
-
{ id: 'REPYEARSTART', relationship: { observation: {} }, values: [{ id: 'a22v0' }]},
|
|
30
|
-
{ id: 'a23', relationship: { observation: {} }, values: [{ id: 'a23v0' },{id : 'a23v1'}]},
|
|
31
10
|
];
|
|
32
11
|
|
|
33
|
-
const customAttributes = {
|
|
34
|
-
prefscale: 'a15',
|
|
35
|
-
decimals: 'a16',
|
|
36
|
-
units: ['d7', 'a20'],
|
|
37
|
-
rejectedValueIds:['a23v0']
|
|
38
|
-
};
|
|
12
|
+
const customAttributes = {};
|
|
39
13
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
14
|
+
const dimensions = [
|
|
15
|
+
{ id: 'd1', values: [{ id: 'v0' }] },
|
|
16
|
+
{ id: 'd2', values: [{ id: 'v0' }] },
|
|
17
|
+
{ id: 'd3', values: [{ id: 'v0' }] },
|
|
18
|
+
{ id: 'd4', values: [{ id: 'v0' }, { id: 'v1' }] },
|
|
19
|
+
{ id: 'd5', values: [{ id: 'v0' }, { id: 'v1' }] },
|
|
20
|
+
{ id: 'd6', values: [{ id: 'v0' }, { id: 'v1' }] },
|
|
21
|
+
];
|
|
44
22
|
|
|
45
23
|
describe('parseAttributes test', () => {
|
|
46
24
|
it('complete case', () => {
|
|
47
|
-
expect(parseAttributes(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
a10: { id: 'a10', index: 10, relationship: { dimensions: ['d1', 'd2'] }, values: [{ id: 'a10v1' }] },
|
|
55
|
-
a11: { id: 'a11', index: 11, relationship: { dimensions: ['d1', 'd2', 'd4'] }, values: [{ id: 'a11v1' }], targetIndex: 4 },
|
|
56
|
-
a12: { id: 'a12', index: 12, relationship: { dimensions: ['d5', 'd6'] }, values: [{ id: 'a12v1' }], targetIndexes: { '5': 5, '6': 6 } },
|
|
57
|
-
a13: { id: 'a13', index: 13, relationship: { dimensions: ['d4', 'd1', 'd6'] }, values: [{ id: 'a13v1' }], targetIndexes: { '4': 4, '6': 6 } },
|
|
58
|
-
a14: { id: 'a14', index: 14, relationship: { dimensions: ['d1'] }, values: [{ id: 'a14v1' }] },
|
|
59
|
-
a15: { id: 'a15', index: 15, relationship: { dimensions: ['d3'] }, values: [{ id: 'a15v1' }] },
|
|
60
|
-
a16: { id: 'a16', index: 16, relationship: { dimensions: ['d6'] }, values: [{ id: 'a16v1' }] },
|
|
61
|
-
a18: { id: 'a18', index: 18, relationship: { primaryMeasure: 'OBS_VALUE' }, values: [{ id: 'a18v1' }, null] },
|
|
62
|
-
a19: { id: 'a19', index: 19, relationship: { none: {} }, values: [{ id: 'a19v1' }] },
|
|
63
|
-
a21: { id: 'a21', index: 21, relationship: { dataflow: {} }, values: [{ id: 'a21v0' }] },
|
|
64
|
-
a22: { id: 'a22', index: 22, relationship: { observation: {} }, values: [{ id: 'a22v0' }] },
|
|
65
|
-
a23: { id: 'a23', index: 25, relationship: { observation: {} }, values:[null,{id:'a23v1'}] }
|
|
66
|
-
},
|
|
67
|
-
attributesIdsIndexedByTargets: {
|
|
68
|
-
observations: ['a6', 'a18', 'a22','a23'],
|
|
69
|
-
oneValueDimensions: { d1: ['a8', 'a14'] },
|
|
70
|
-
manyValuesDimensions: ['a9', 'a11'],
|
|
71
|
-
dataflow: ['a10', 'a19', 'a21'],
|
|
72
|
-
series: ['a12', 'a13'],
|
|
73
|
-
prefscale: ['a15'],
|
|
74
|
-
decimals: ['a16'],
|
|
75
|
-
}
|
|
76
|
-
});
|
|
25
|
+
expect(parseAttributes(attributes, dimensions, customAttributes)).to.deep.equal([
|
|
26
|
+
{ id: 'a6', index: 0, relationship: [], series: true, values: [{ id: 'a6v1' }] },
|
|
27
|
+
{ id: 'a8', index: 1, relationship: ['d1'], header: true,values: [{ id: 'a8v1' }] },
|
|
28
|
+
{ id: 'a9', index: 2, relationship: ['d4'], series: true, values: [{ id: 'a9v1' }] },
|
|
29
|
+
{ id: 'a10', index: 3, relationship: ['d1', 'd2'], header: true, values: [{ id: 'a10v1' }] },
|
|
30
|
+
{ id: 'a11', index: 4, relationship: ['d4'], series: true, values: [{ id: 'a11v1' }] },
|
|
31
|
+
]);
|
|
77
32
|
});
|
|
78
33
|
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { parseValueHierarchy } from '../src/rules2/src/table/parseValueHierarchy';
|
|
3
|
+
|
|
4
|
+
const indexedValues = {
|
|
5
|
+
OECD: { id: 'OECD' },
|
|
6
|
+
EU: { id: 'EU' },
|
|
7
|
+
FRA: { id: 'FRA' },
|
|
8
|
+
GER: { id: 'GER' },
|
|
9
|
+
IDF: { id: 'IDF' },
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
describe('parseValueHierarchy tests', () => {
|
|
13
|
+
it('no hierarchy in value', () => {
|
|
14
|
+
const value = { id: 'EU', parents: [] };
|
|
15
|
+
const previousValue = { id: 'IDF', parents: ['OECD', 'FRA'] };
|
|
16
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal(value);
|
|
17
|
+
});
|
|
18
|
+
it('previous is parent', () => {
|
|
19
|
+
const value = { id: 'IDF', parents: ['OECD', 'FRA'] };
|
|
20
|
+
const previousValue = { id: 'FRA', parents: [{ id: 'OECD' }], parentsIds: ['OECD'], missingParents: [] };
|
|
21
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
22
|
+
id: 'IDF',
|
|
23
|
+
parents: [{ id: 'OECD' }, { id: 'FRA' }],
|
|
24
|
+
parentsIds: ['OECD', 'FRA'],
|
|
25
|
+
missingParents: []
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
it('previous is parent with missing parent', () => {
|
|
29
|
+
const value = { id: 'IDF', parents: ['OECD', 'FRA'] };
|
|
30
|
+
const previousValue = { id: 'FRA', parents: [], parentsIds: ['OECD'], missingParents: [{ id: 'OECD' }] };
|
|
31
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
32
|
+
id: 'IDF',
|
|
33
|
+
parents: [{ id: 'FRA' }],
|
|
34
|
+
parentsIds: ['OECD', 'FRA'],
|
|
35
|
+
missingParents: []
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
it('missing parents', () => {
|
|
39
|
+
const value = { id: 'IDF', parents: ['OECD', 'FRA'] };
|
|
40
|
+
const previousValue = null;
|
|
41
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
42
|
+
id: 'IDF',
|
|
43
|
+
parents: [],
|
|
44
|
+
parentsIds: ['OECD', 'FRA'],
|
|
45
|
+
missingParents: [{ id: 'OECD' }, { id: 'FRA' }]
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
it('previous is bro', () => {
|
|
49
|
+
const value = { id: 'FRA', parents: ['OECD'] };
|
|
50
|
+
const previousValue = { id: 'FRA', parentsIds: ['OECD'], missingParents: [], parents: [{ id: 'OECD' }] };;
|
|
51
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
52
|
+
id: 'FRA',
|
|
53
|
+
parents: [{ id: 'OECD' }],
|
|
54
|
+
parentsIds: ['OECD'],
|
|
55
|
+
missingParents: []
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
it('previous is bro with missing parent', () => {
|
|
59
|
+
const value = { id: 'FRA', parents: ['OECD'] };
|
|
60
|
+
const previousValue = { id: 'FRA', parentsIds: ['OECD'], missingParents: [{ id: 'OECD' }], parents: [] };;
|
|
61
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
62
|
+
id: 'FRA',
|
|
63
|
+
parents: [],
|
|
64
|
+
parentsIds: ['OECD'],
|
|
65
|
+
missingParents: [{ id: 'OECD' }]
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
it('previous is parent but in different hierarchy', () => {
|
|
69
|
+
const value = { id: 'IDF', parents: ['OECD', 'FRA'] };
|
|
70
|
+
const previousValue = { id: 'FRA', parentsIds: ['EU'], missingParents: [], parents: [{ id: 'EU' }] };;
|
|
71
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
72
|
+
id: 'IDF',
|
|
73
|
+
parents: [],
|
|
74
|
+
parentsIds: ['OECD', 'FRA'],
|
|
75
|
+
missingParents: [{ id: 'OECD' }, { id: 'FRA' }]
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it('previous is bro but in different hierarchy', () => {
|
|
79
|
+
const value = { id: 'IDF', parents: ['OECD', 'FRA'] };
|
|
80
|
+
const previousValue = { id: 'BRE', parentsIds: ['EU', 'FRA'], missingParents: [], parents: [{ id: 'EU' }, { id: 'FRA' }] };;
|
|
81
|
+
expect(parseValueHierarchy(value, previousValue, indexedValues)).to.deep.equal({
|
|
82
|
+
id: 'IDF',
|
|
83
|
+
parents: [],
|
|
84
|
+
parentsIds: ['OECD', 'FRA'],
|
|
85
|
+
missingParents: [{ id: 'OECD' }, { id: 'FRA' }]
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|