@qrvey/filters 0.0.45 → 0.1.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/README.md +63 -1
- package/dist/cjs/classes/FilterAdapter.js +1 -80
- package/dist/cjs/classes/FilterBuilder.js +32 -251
- package/dist/cjs/classes/FilterManager.js +7 -64
- package/dist/cjs/classes/FilterResources.js +3 -116
- package/dist/cjs/classes/FilterSearcher.js +0 -77
- package/dist/cjs/classes/FilterValidation.js +0 -93
- package/dist/cjs/classes/FilterValues.js +0 -24
- package/dist/cjs/classes/index.js +8 -21
- package/dist/cjs/helpers/filter-adapt.helpers.js +3 -46
- package/dist/cjs/helpers/filter-adapt.legacy.helpers.js +6 -53
- package/dist/cjs/helpers/filter-adapt.logic.helpers.js +7 -128
- package/dist/cjs/helpers/filter-builder.helpers.js +1 -8
- package/dist/cjs/helpers/filter-settings.helpers.js +6 -41
- package/dist/cjs/helpers/filter-validators.helpers.js +15 -9
- package/dist/cjs/helpers/filter-verbose.helpers.js +211 -0
- package/dist/cjs/helpers/getAggregateFilters.js +11 -0
- package/dist/cjs/helpers/getFilterId.js +1 -17
- package/dist/cjs/helpers/getFilterType.js +1 -8
- package/dist/cjs/helpers/index.js +12 -20
- package/dist/cjs/helpers/isDateDistinctGrouping.js +15 -0
- package/dist/cjs/helpers/isRankingFilter.js +10 -0
- package/dist/cjs/helpers/resolveFilterConditions.js +2 -10
- package/dist/cjs/helpers/utils.helpers.js +2 -19
- package/dist/cjs/index.js +5 -18
- package/dist/cjs/models/index.js +4 -17
- package/dist/cjs/resources/filter-grouping.resources.js +0 -18
- package/dist/cjs/resources/filter-logic.resources.js +0 -3
- package/dist/cjs/resources/filter-scopes.resources.js +10 -27
- package/dist/cjs/resources/filter-validators.resources.js +0 -3
- package/dist/cjs/resources/filter-verbose.resources.js +13 -0
- package/dist/cjs/resources/filters.resources.js +0 -12
- package/dist/cjs/resources/index.js +12 -24
- package/dist/classes/FilterAdapter.d.ts +0 -80
- package/dist/classes/FilterAdapter.js +1 -80
- package/dist/classes/FilterBuilder.d.ts +2 -177
- package/dist/classes/FilterBuilder.js +32 -251
- package/dist/classes/FilterManager.d.ts +7 -62
- package/dist/classes/FilterManager.js +7 -64
- package/dist/classes/FilterResources.d.ts +1 -115
- package/dist/classes/FilterResources.js +3 -116
- package/dist/classes/FilterSearcher.d.ts +2 -77
- package/dist/classes/FilterSearcher.js +0 -77
- package/dist/classes/FilterValidation.d.ts +1 -47
- package/dist/classes/FilterValidation.js +0 -93
- package/dist/classes/FilterValues.d.ts +0 -25
- package/dist/classes/FilterValues.js +0 -24
- package/dist/classes/index.d.ts +0 -1
- package/dist/helpers/filter-adapt.helpers.d.ts +0 -15
- package/dist/helpers/filter-adapt.helpers.js +1 -43
- package/dist/helpers/filter-adapt.legacy.helpers.d.ts +0 -20
- package/dist/helpers/filter-adapt.legacy.helpers.js +3 -49
- package/dist/helpers/filter-adapt.logic.helpers.d.ts +0 -22
- package/dist/helpers/filter-adapt.logic.helpers.js +3 -123
- package/dist/helpers/filter-builder.helpers.d.ts +0 -7
- package/dist/helpers/filter-builder.helpers.js +0 -6
- package/dist/helpers/filter-settings.helpers.d.ts +0 -35
- package/dist/helpers/filter-settings.helpers.js +0 -34
- package/dist/helpers/filter-validators.helpers.d.ts +3 -6
- package/dist/helpers/filter-validators.helpers.js +11 -7
- package/dist/helpers/filter-verbose.helpers.d.ts +6 -0
- package/dist/helpers/filter-verbose.helpers.js +206 -0
- package/dist/helpers/getAggregateFilters.d.ts +3 -0
- package/dist/helpers/getAggregateFilters.js +7 -0
- package/dist/helpers/getFilterId.d.ts +0 -16
- package/dist/helpers/getFilterId.js +0 -15
- package/dist/helpers/getFilterType.d.ts +0 -7
- package/dist/helpers/getFilterType.js +0 -6
- package/dist/helpers/index.d.ts +5 -1
- package/dist/helpers/index.js +5 -0
- package/dist/helpers/isDateDistinctGrouping.d.ts +2 -0
- package/dist/helpers/isDateDistinctGrouping.js +12 -0
- package/dist/helpers/isRankingFilter.d.ts +2 -0
- package/dist/helpers/isRankingFilter.js +7 -0
- package/dist/helpers/resolveFilterConditions.d.ts +0 -8
- package/dist/helpers/resolveFilterConditions.js +1 -8
- package/dist/helpers/utils.helpers.d.ts +0 -17
- package/dist/helpers/utils.helpers.js +0 -16
- package/dist/index.d.ts +0 -1
- package/dist/models/filter-builder.models.d.ts +0 -156
- package/dist/models/filter-resources.models.d.ts +0 -53
- package/dist/models/filter-searcher.models.d.ts +5 -34
- package/dist/models/filter-validation.models.d.ts +0 -40
- package/dist/models/index.d.ts +0 -1
- package/dist/resources/filter-functions.resources.d.ts +0 -49
- package/dist/resources/filter-grouping.resources.d.ts +0 -7
- package/dist/resources/filter-grouping.resources.js +0 -18
- package/dist/resources/filter-logic.resources.d.ts +0 -79
- package/dist/resources/filter-logic.resources.js +0 -3
- package/dist/resources/filter-operators.resources.d.ts +0 -1
- package/dist/resources/filter-panel.interfaces.d.ts +0 -49
- package/dist/resources/filter-scopes.resources.d.ts +2 -25
- package/dist/resources/filter-scopes.resources.js +10 -27
- package/dist/resources/filter-validation.resources.d.ts +0 -1
- package/dist/resources/filter-validators.resources.d.ts +0 -1
- package/dist/resources/filter-validators.resources.js +0 -3
- package/dist/resources/filter-values.resources.d.ts +0 -13
- package/dist/resources/filter-verbose.resources.d.ts +23 -0
- package/dist/resources/filter-verbose.resources.js +10 -0
- package/dist/resources/filter-visual.resources.d.ts +0 -50
- package/dist/resources/filters.resources.d.ts +1 -102
- package/dist/resources/filters.resources.js +0 -12
- package/dist/resources/index.d.ts +1 -1
- package/dist/resources/index.js +1 -0
- package/package.json +59 -44
- package/.eslintignore +0 -6
- package/.eslintrc.json +0 -122
- package/.husky/pre-commit +0 -4
- package/.lintstagedrc +0 -7
- package/.prettierignore +0 -6
- package/.prettierrc.json +0 -1
- package/CHANGELOG.md +0 -274
- package/CODE_OF_CONDUCT.md +0 -132
- package/bitbucket-pipelines.yml +0 -92
- package/dist/cjs/classes/FilterAdapter.d.ts +0 -107
- package/dist/cjs/classes/FilterAdapter.d.ts.map +0 -1
- package/dist/cjs/classes/FilterBuilder.d.ts +0 -206
- package/dist/cjs/classes/FilterBuilder.d.ts.map +0 -1
- package/dist/cjs/classes/FilterManager.d.ts +0 -84
- package/dist/cjs/classes/FilterManager.d.ts.map +0 -1
- package/dist/cjs/classes/FilterResources.d.ts +0 -139
- package/dist/cjs/classes/FilterResources.d.ts.map +0 -1
- package/dist/cjs/classes/FilterSearcher.d.ts +0 -90
- package/dist/cjs/classes/FilterSearcher.d.ts.map +0 -1
- package/dist/cjs/classes/FilterValidation.d.ts +0 -58
- package/dist/cjs/classes/FilterValidation.d.ts.map +0 -1
- package/dist/cjs/classes/FilterValues.d.ts +0 -33
- package/dist/cjs/classes/FilterValues.d.ts.map +0 -1
- package/dist/cjs/classes/index.d.ts +0 -8
- package/dist/cjs/classes/index.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-adapt.helpers.d.ts +0 -21
- package/dist/cjs/helpers/filter-adapt.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-adapt.legacy.helpers.d.ts +0 -26
- package/dist/cjs/helpers/filter-adapt.legacy.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-adapt.logic.helpers.d.ts +0 -29
- package/dist/cjs/helpers/filter-adapt.logic.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-builder.helpers.d.ts +0 -11
- package/dist/cjs/helpers/filter-builder.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-settings.helpers.d.ts +0 -42
- package/dist/cjs/helpers/filter-settings.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-validators.helpers.d.ts +0 -8
- package/dist/cjs/helpers/filter-validators.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/getFilterId.d.ts +0 -18
- package/dist/cjs/helpers/getFilterId.d.ts.map +0 -1
- package/dist/cjs/helpers/getFilterType.d.ts +0 -11
- package/dist/cjs/helpers/getFilterType.d.ts.map +0 -1
- package/dist/cjs/helpers/index.d.ts +0 -7
- package/dist/cjs/helpers/index.d.ts.map +0 -1
- package/dist/cjs/helpers/resolveFilterConditions.d.ts +0 -11
- package/dist/cjs/helpers/resolveFilterConditions.d.ts.map +0 -1
- package/dist/cjs/helpers/utils.helpers.d.ts +0 -26
- package/dist/cjs/helpers/utils.helpers.d.ts.map +0 -1
- package/dist/cjs/index.d.ts +0 -5
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/models/filter-builder.models.d.ts +0 -203
- package/dist/cjs/models/filter-builder.models.d.ts.map +0 -1
- package/dist/cjs/models/filter-resources.models.d.ts +0 -71
- package/dist/cjs/models/filter-resources.models.d.ts.map +0 -1
- package/dist/cjs/models/filter-searcher.models.d.ts +0 -42
- package/dist/cjs/models/filter-searcher.models.d.ts.map +0 -1
- package/dist/cjs/models/filter-validation.models.d.ts +0 -59
- package/dist/cjs/models/filter-validation.models.d.ts.map +0 -1
- package/dist/cjs/models/index.d.ts +0 -4
- package/dist/cjs/models/index.d.ts.map +0 -1
- package/dist/cjs/resources/filter-functions.resources.d.ts +0 -94
- package/dist/cjs/resources/filter-functions.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-grouping.resources.d.ts +0 -103
- package/dist/cjs/resources/filter-grouping.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-logic.resources.d.ts +0 -135
- package/dist/cjs/resources/filter-logic.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-operators.resources.d.ts +0 -16
- package/dist/cjs/resources/filter-operators.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-panel.interfaces.d.ts +0 -80
- package/dist/cjs/resources/filter-panel.interfaces.d.ts.map +0 -1
- package/dist/cjs/resources/filter-scopes.resources.d.ts +0 -62
- package/dist/cjs/resources/filter-scopes.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-validation.resources.d.ts +0 -20
- package/dist/cjs/resources/filter-validation.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-validators.resources.d.ts +0 -80
- package/dist/cjs/resources/filter-validators.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-values.resources.d.ts +0 -40
- package/dist/cjs/resources/filter-values.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-visual.resources.d.ts +0 -77
- package/dist/cjs/resources/filter-visual.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filters.resources.d.ts +0 -168
- package/dist/cjs/resources/filters.resources.d.ts.map +0 -1
- package/dist/cjs/resources/index.d.ts +0 -11
- package/dist/cjs/resources/index.d.ts.map +0 -1
- package/dist/classes/FilterAdapter.d.ts.map +0 -1
- package/dist/classes/FilterBuilder.d.ts.map +0 -1
- package/dist/classes/FilterManager.d.ts.map +0 -1
- package/dist/classes/FilterResources.d.ts.map +0 -1
- package/dist/classes/FilterSearcher.d.ts.map +0 -1
- package/dist/classes/FilterValidation.d.ts.map +0 -1
- package/dist/classes/FilterValues.d.ts.map +0 -1
- package/dist/classes/index.d.ts.map +0 -1
- package/dist/helpers/filter-adapt.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-adapt.legacy.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-adapt.logic.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-builder.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-settings.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-validators.helpers.d.ts.map +0 -1
- package/dist/helpers/getFilterId.d.ts.map +0 -1
- package/dist/helpers/getFilterType.d.ts.map +0 -1
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/resolveFilterConditions.d.ts.map +0 -1
- package/dist/helpers/utils.helpers.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/models/filter-builder.models.d.ts.map +0 -1
- package/dist/models/filter-resources.models.d.ts.map +0 -1
- package/dist/models/filter-searcher.models.d.ts.map +0 -1
- package/dist/models/filter-validation.models.d.ts.map +0 -1
- package/dist/models/index.d.ts.map +0 -1
- package/dist/resources/filter-functions.resources.d.ts.map +0 -1
- package/dist/resources/filter-grouping.resources.d.ts.map +0 -1
- package/dist/resources/filter-logic.resources.d.ts.map +0 -1
- package/dist/resources/filter-operators.resources.d.ts.map +0 -1
- package/dist/resources/filter-panel.interfaces.d.ts.map +0 -1
- package/dist/resources/filter-scopes.resources.d.ts.map +0 -1
- package/dist/resources/filter-validation.resources.d.ts.map +0 -1
- package/dist/resources/filter-validators.resources.d.ts.map +0 -1
- package/dist/resources/filter-values.resources.d.ts.map +0 -1
- package/dist/resources/filter-visual.resources.d.ts.map +0 -1
- package/dist/resources/filters.resources.d.ts.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/jest.config.js +0 -10
- package/jsdoc.config.json +0 -14
- package/scripts/clean-build/index.js +0 -62
- package/sonar-project.properties +0 -2
- package/src/classes/FilterAdapter.ts +0 -208
- package/src/classes/FilterBuilder.ts +0 -822
- package/src/classes/FilterManager.ts +0 -126
- package/src/classes/FilterResources.ts +0 -411
- package/src/classes/FilterSearcher.ts +0 -243
- package/src/classes/FilterValidation.ts +0 -221
- package/src/classes/FilterValues.ts +0 -89
- package/src/classes/index.ts +0 -7
- package/src/helpers/filter-adapt.helpers.ts +0 -204
- package/src/helpers/filter-adapt.legacy.helpers.ts +0 -298
- package/src/helpers/filter-adapt.logic.helpers.ts +0 -631
- package/src/helpers/filter-builder.helpers.ts +0 -28
- package/src/helpers/filter-settings.helpers.ts +0 -133
- package/src/helpers/filter-validators.helpers.ts +0 -15
- package/src/helpers/getFilterId.ts +0 -35
- package/src/helpers/getFilterType.ts +0 -23
- package/src/helpers/index.ts +0 -6
- package/src/helpers/resolveFilterConditions.ts +0 -29
- package/src/helpers/utils.helpers.ts +0 -37
- package/src/index.ts +0 -4
- package/src/models/filter-builder.models.ts +0 -256
- package/src/models/filter-resources.models.ts +0 -89
- package/src/models/filter-searcher.models.ts +0 -61
- package/src/models/filter-validation.models.ts +0 -71
- package/src/models/index.ts +0 -3
- package/src/resources/filter-functions.resources.ts +0 -132
- package/src/resources/filter-grouping.resources.ts +0 -531
- package/src/resources/filter-logic.resources.ts +0 -148
- package/src/resources/filter-operators.resources.ts +0 -40
- package/src/resources/filter-panel.interfaces.ts +0 -86
- package/src/resources/filter-scopes.resources.ts +0 -152
- package/src/resources/filter-validation.resources.ts +0 -90
- package/src/resources/filter-validators.resources.ts +0 -411
- package/src/resources/filter-values.resources.ts +0 -57
- package/src/resources/filter-visual.resources.ts +0 -86
- package/src/resources/filters.resources.ts +0 -232
- package/src/resources/index.ts +0 -10
- package/tests/classes/FilterAdapter.test.ts +0 -124
- package/tests/classes/FilterBuilder.test.ts +0 -903
- package/tests/classes/FilterResources.test.ts +0 -267
- package/tests/classes/FilterSearcher.test.ts +0 -188
- package/tests/classes/FilterValidation.test.ts +0 -54
- package/tests/helpers/getFilterId.test.ts +0 -121
- package/tests/mock/datasets.mock.ts +0 -61
- package/tests/mock/filters-adapter.mock.ts +0 -646
- package/tests/mock/filters-interactive-table.mock.ts +0 -59
- package/tests/mock/filters.mock.ts +0 -277
- package/tsconfig.doc.json +0 -4
- package/tsconfig.eslint.json +0 -4
- package/tsconfig.json +0 -113
|
@@ -1,903 +0,0 @@
|
|
|
1
|
-
import { FilterBuilder } from "../../src/classes/FilterBuilder";
|
|
2
|
-
import { FILTER_GROUPING } from "../../src/resources/filter-grouping.resources";
|
|
3
|
-
import { FILTER_OPERATOR } from "../../src/resources/filter-operators.resources";
|
|
4
|
-
import { FILTER_SCOPE } from "../../src/resources/filter-scopes.resources";
|
|
5
|
-
import { FILTER_VALIDATOR } from "../../src/resources/filter-validators.resources";
|
|
6
|
-
import {
|
|
7
|
-
IFilterValue,
|
|
8
|
-
IFilterValueRange,
|
|
9
|
-
IFilterValueRegular,
|
|
10
|
-
} from "../../src/resources/filter-values.resources";
|
|
11
|
-
import { DEFAULT_FILTER, IFilter } from "../../src/resources/filters.resources";
|
|
12
|
-
import {
|
|
13
|
-
__mockFilter1,
|
|
14
|
-
__mockFilter2,
|
|
15
|
-
__mockFilter3,
|
|
16
|
-
__mockFilter4,
|
|
17
|
-
__mockFilter5,
|
|
18
|
-
__mockFilter6,
|
|
19
|
-
__mockFilters1,
|
|
20
|
-
__mockFilters2,
|
|
21
|
-
} from "../mock/filters.mock";
|
|
22
|
-
|
|
23
|
-
describe("Testing wrong arguments", () => {
|
|
24
|
-
test("Undefined argument", () => {
|
|
25
|
-
const builder = new FilterBuilder(undefined);
|
|
26
|
-
expect(builder.getFilters()).toEqual([]);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test("Null argument", () => {
|
|
30
|
-
// @ts-expect-error: Expected wrong params
|
|
31
|
-
const builder = new FilterBuilder(null);
|
|
32
|
-
expect(builder.getFilters()).toEqual([]);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test("Boolean argument", () => {
|
|
36
|
-
// @ts-expect-error: Expected wrong params
|
|
37
|
-
const builder = new FilterBuilder(false);
|
|
38
|
-
expect(builder.getFilters()).toEqual([]);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test("Numeric argument", () => {
|
|
42
|
-
// @ts-expect-error: Expected wrong params
|
|
43
|
-
const builder = new FilterBuilder(0);
|
|
44
|
-
expect(builder.getFilters()).toEqual([]);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
test("String argument", () => {
|
|
48
|
-
// @ts-expect-error: Expected wrong params
|
|
49
|
-
const builder = new FilterBuilder("Sales");
|
|
50
|
-
expect(builder.getFilters()).toEqual([]);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("Function-like argument", () => {
|
|
54
|
-
// @ts-expect-error: Expected wrong params
|
|
55
|
-
const builder = new FilterBuilder(() => "Hola");
|
|
56
|
-
expect(builder.getFilters()).toEqual([]);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
describe("Testing Adding Filters - Empty Filters", () => {
|
|
61
|
-
let builder: FilterBuilder;
|
|
62
|
-
beforeEach(() => {
|
|
63
|
-
builder = new FilterBuilder([]);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
test("Adding single", () => {
|
|
67
|
-
const resulting = builder.addSingle(__mockFilter1);
|
|
68
|
-
const mockFilter1 = { ...__mockFilter1, id: "global|D123|C123|equals" };
|
|
69
|
-
|
|
70
|
-
expect(resulting).toEqual({
|
|
71
|
-
resulting: [mockFilter1],
|
|
72
|
-
affected: mockFilter1,
|
|
73
|
-
original: __mockFilter1,
|
|
74
|
-
});
|
|
75
|
-
expect(builder.getFilters()).toEqual([mockFilter1]);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
test("Adding Multiple", () => {
|
|
79
|
-
const resulting = builder.addMultiple([__mockFilter1, __mockFilter2]);
|
|
80
|
-
const mockFilter1 = { ...__mockFilter1, id: "global|D123|C123|equals" };
|
|
81
|
-
const mockFilter2 = { ...__mockFilter2, id: "global|D123|C456|equals|day" };
|
|
82
|
-
const resultingFilters = [mockFilter1, mockFilter2];
|
|
83
|
-
|
|
84
|
-
expect(resulting).toEqual({
|
|
85
|
-
resulting: resultingFilters,
|
|
86
|
-
affected: resultingFilters,
|
|
87
|
-
original: [],
|
|
88
|
-
});
|
|
89
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
describe("Testing Adding Filters - With Filters", () => {
|
|
94
|
-
let builder: FilterBuilder;
|
|
95
|
-
beforeEach(() => {
|
|
96
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
test("Adding single", () => {
|
|
100
|
-
const resulting = builder.addSingle(__mockFilter4);
|
|
101
|
-
const mockFilter4 = { ...__mockFilter4, id: "page|D456|C654|greater_than" };
|
|
102
|
-
|
|
103
|
-
const resultingFilters = [
|
|
104
|
-
__mockFilter1,
|
|
105
|
-
__mockFilter2,
|
|
106
|
-
__mockFilter3,
|
|
107
|
-
mockFilter4,
|
|
108
|
-
];
|
|
109
|
-
|
|
110
|
-
expect(resulting).toEqual({
|
|
111
|
-
resulting: resultingFilters,
|
|
112
|
-
affected: mockFilter4,
|
|
113
|
-
original: __mockFilter4,
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
test("Adding single between items", () => {
|
|
120
|
-
const resulting = builder.addSingle(__mockFilter6);
|
|
121
|
-
const mockFilter6 = {
|
|
122
|
-
...__mockFilter6,
|
|
123
|
-
id: "global|D123|C456|equals|week",
|
|
124
|
-
};
|
|
125
|
-
const mockFilter2 = {
|
|
126
|
-
...__mockFilter2,
|
|
127
|
-
operator: FILTER_OPERATOR.AND,
|
|
128
|
-
};
|
|
129
|
-
const resultingFilters = [
|
|
130
|
-
__mockFilter1,
|
|
131
|
-
mockFilter2,
|
|
132
|
-
mockFilter6,
|
|
133
|
-
__mockFilter3,
|
|
134
|
-
];
|
|
135
|
-
|
|
136
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
137
|
-
expect(resulting.affected).toEqual(mockFilter6);
|
|
138
|
-
expect(resulting.original).toEqual(__mockFilter6);
|
|
139
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
test("Adding single between items - Automatic Operator Off", () => {
|
|
143
|
-
const resulting = builder.addSingle(__mockFilter6, undefined, {
|
|
144
|
-
automaticOperator: false,
|
|
145
|
-
});
|
|
146
|
-
const mockFilter6 = {
|
|
147
|
-
...__mockFilter6,
|
|
148
|
-
id: "global|D123|C456|equals|week",
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
const resultingFilters = [
|
|
152
|
-
__mockFilter1,
|
|
153
|
-
__mockFilter2,
|
|
154
|
-
mockFilter6,
|
|
155
|
-
__mockFilter3,
|
|
156
|
-
];
|
|
157
|
-
|
|
158
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
159
|
-
expect(resulting.affected).toEqual(mockFilter6);
|
|
160
|
-
expect(resulting.original).toEqual(__mockFilter6);
|
|
161
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
test("Adding single between items - Custom Index - Automatic Operator Off", () => {
|
|
165
|
-
const resulting = builder.addSingle(__mockFilter6, 1, {
|
|
166
|
-
automaticOperator: false,
|
|
167
|
-
});
|
|
168
|
-
const mockFilter6 = {
|
|
169
|
-
...__mockFilter6,
|
|
170
|
-
id: "global|D123|C456|equals|week",
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
const resultingFilters = [
|
|
174
|
-
__mockFilter1,
|
|
175
|
-
mockFilter6,
|
|
176
|
-
__mockFilter2,
|
|
177
|
-
__mockFilter3,
|
|
178
|
-
];
|
|
179
|
-
|
|
180
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
181
|
-
expect(resulting.affected).toEqual(mockFilter6);
|
|
182
|
-
expect(resulting.original).toEqual(__mockFilter6);
|
|
183
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
test("Adding Multiple", () => {
|
|
187
|
-
const resulting = builder.addMultiple([__mockFilter4, __mockFilter5]);
|
|
188
|
-
const mockFilter4 = { ...__mockFilter4, id: "page|D456|C654|greater_than" };
|
|
189
|
-
const mockFilter5 = { ...__mockFilter5, id: "page|D789|C135|not_equal" };
|
|
190
|
-
|
|
191
|
-
const resultingFilters = [
|
|
192
|
-
__mockFilter1,
|
|
193
|
-
__mockFilter2,
|
|
194
|
-
__mockFilter3,
|
|
195
|
-
mockFilter4,
|
|
196
|
-
mockFilter5,
|
|
197
|
-
];
|
|
198
|
-
expect(resulting).toEqual({
|
|
199
|
-
resulting: resultingFilters,
|
|
200
|
-
affected: [mockFilter4, mockFilter5],
|
|
201
|
-
original: __mockFilters1,
|
|
202
|
-
});
|
|
203
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
test("No adding due to duplicate", () => {
|
|
207
|
-
const resulting = builder.addSingle(__mockFilter2);
|
|
208
|
-
expect(resulting).toEqual({
|
|
209
|
-
resulting: __mockFilters1,
|
|
210
|
-
});
|
|
211
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
describe("Testing Adding Filters Values", () => {
|
|
216
|
-
let builder: FilterBuilder;
|
|
217
|
-
beforeEach(() => {
|
|
218
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
test("Adding One value", () => {
|
|
222
|
-
const newValue: IFilterValueRegular = {
|
|
223
|
-
enabled: true,
|
|
224
|
-
displayed: true,
|
|
225
|
-
value: "Except this value",
|
|
226
|
-
};
|
|
227
|
-
const resulting = builder.addValue("F123", newValue);
|
|
228
|
-
|
|
229
|
-
const mockFilter1: IFilter = { ...__mockFilter1, values: [newValue] };
|
|
230
|
-
const resultingFilters: IFilter[] = [
|
|
231
|
-
mockFilter1,
|
|
232
|
-
__mockFilter2,
|
|
233
|
-
__mockFilter3,
|
|
234
|
-
];
|
|
235
|
-
|
|
236
|
-
expect(resulting).toEqual({
|
|
237
|
-
resulting: resultingFilters,
|
|
238
|
-
affected: mockFilter1,
|
|
239
|
-
original: __mockFilter1,
|
|
240
|
-
});
|
|
241
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
test("Adding Multiple values", () => {
|
|
245
|
-
const newValues: IFilterValueRegular[] = [
|
|
246
|
-
{
|
|
247
|
-
enabled: true,
|
|
248
|
-
displayed: true,
|
|
249
|
-
value: "Except this value",
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
enabled: true,
|
|
253
|
-
displayed: true,
|
|
254
|
-
value: "and this value",
|
|
255
|
-
},
|
|
256
|
-
];
|
|
257
|
-
const resulting = builder.addValues("F123", newValues);
|
|
258
|
-
|
|
259
|
-
const mockFilter1: IFilter = { ...__mockFilter1, values: newValues };
|
|
260
|
-
const resultingFilters: IFilter[] = [
|
|
261
|
-
mockFilter1,
|
|
262
|
-
__mockFilter2,
|
|
263
|
-
__mockFilter3,
|
|
264
|
-
];
|
|
265
|
-
|
|
266
|
-
expect(resulting).toEqual({
|
|
267
|
-
resulting: resultingFilters,
|
|
268
|
-
affected: mockFilter1,
|
|
269
|
-
original: __mockFilter1,
|
|
270
|
-
});
|
|
271
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
describe("Testing Deleting Filters", () => {
|
|
276
|
-
let builder: FilterBuilder;
|
|
277
|
-
beforeEach(() => {
|
|
278
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
test("Deleting by Params", () => {
|
|
282
|
-
const resulting = builder.deleteByParams({
|
|
283
|
-
columnId: "C456",
|
|
284
|
-
grouping: FILTER_GROUPING.DAY,
|
|
285
|
-
});
|
|
286
|
-
const resultingFilters = [__mockFilter1, __mockFilter3];
|
|
287
|
-
|
|
288
|
-
expect(resulting).toEqual({
|
|
289
|
-
resulting: resultingFilters,
|
|
290
|
-
affected: [__mockFilter2],
|
|
291
|
-
original: __mockFilters1,
|
|
292
|
-
});
|
|
293
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
294
|
-
});
|
|
295
|
-
|
|
296
|
-
test("Deleting Single", () => {
|
|
297
|
-
const resulting = builder.deleteSingle("F123");
|
|
298
|
-
const resultingFilters = [__mockFilter2, __mockFilter3];
|
|
299
|
-
|
|
300
|
-
expect(resulting).toEqual({
|
|
301
|
-
resulting: resultingFilters,
|
|
302
|
-
affected: __mockFilter1,
|
|
303
|
-
original: __mockFilter1,
|
|
304
|
-
});
|
|
305
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
306
|
-
});
|
|
307
|
-
|
|
308
|
-
test("Deleting Multiple", () => {
|
|
309
|
-
const resulting = builder.deleteMultiple(["F123", "F789"]);
|
|
310
|
-
const resultingFilters = [__mockFilter2];
|
|
311
|
-
|
|
312
|
-
expect(resulting).toEqual({
|
|
313
|
-
resulting: resultingFilters,
|
|
314
|
-
affected: [__mockFilter1, __mockFilter3],
|
|
315
|
-
original: __mockFilters1,
|
|
316
|
-
});
|
|
317
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
|
|
321
|
-
describe("Testing Deleting Filters Values", () => {
|
|
322
|
-
test("no delete filter values because of Empty values", () => {
|
|
323
|
-
const builder = new FilterBuilder(__mockFilters1);
|
|
324
|
-
|
|
325
|
-
const resulting = builder.deleteValue("F123", 1);
|
|
326
|
-
|
|
327
|
-
const resultingFilters: IFilter[] = [
|
|
328
|
-
__mockFilter1,
|
|
329
|
-
__mockFilter2,
|
|
330
|
-
__mockFilter3,
|
|
331
|
-
];
|
|
332
|
-
|
|
333
|
-
expect(resulting).toEqual({
|
|
334
|
-
resulting: resultingFilters,
|
|
335
|
-
affected: __mockFilter1,
|
|
336
|
-
original: __mockFilter1,
|
|
337
|
-
});
|
|
338
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
test("Deleting One value", () => {
|
|
342
|
-
const builder = new FilterBuilder(__mockFilters1);
|
|
343
|
-
|
|
344
|
-
const resulting = builder.deleteValue("F789", 0);
|
|
345
|
-
const mockFilter3 = {
|
|
346
|
-
...__mockFilter3,
|
|
347
|
-
values: [__mockFilter3.values![1]],
|
|
348
|
-
};
|
|
349
|
-
const affectedMockFilter3 = {
|
|
350
|
-
...__mockFilter3,
|
|
351
|
-
values: [__mockFilter3.values![0]],
|
|
352
|
-
};
|
|
353
|
-
const resultingFilters: IFilter[] = [
|
|
354
|
-
__mockFilter1,
|
|
355
|
-
__mockFilter2,
|
|
356
|
-
mockFilter3,
|
|
357
|
-
];
|
|
358
|
-
|
|
359
|
-
expect(resulting).toEqual({
|
|
360
|
-
resulting: resultingFilters,
|
|
361
|
-
affected: affectedMockFilter3,
|
|
362
|
-
original: __mockFilter3,
|
|
363
|
-
});
|
|
364
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
test("Deleting multiples values", () => {
|
|
368
|
-
const builder = new FilterBuilder(__mockFilters2);
|
|
369
|
-
|
|
370
|
-
const resulting = builder.deleteValues("F457", [0, 3]);
|
|
371
|
-
const resultingMockFilter6 = {
|
|
372
|
-
...__mockFilter6,
|
|
373
|
-
values: [__mockFilter6.values![1], __mockFilter6.values![2]],
|
|
374
|
-
};
|
|
375
|
-
const affectedMockFilter6 = {
|
|
376
|
-
...__mockFilter6,
|
|
377
|
-
values: [__mockFilter6.values![1], __mockFilter6.values![2]],
|
|
378
|
-
};
|
|
379
|
-
const resultingFilters: IFilter[] = [
|
|
380
|
-
__mockFilter4,
|
|
381
|
-
__mockFilter5,
|
|
382
|
-
resultingMockFilter6,
|
|
383
|
-
];
|
|
384
|
-
|
|
385
|
-
expect(resulting).toEqual({
|
|
386
|
-
resulting: resultingFilters,
|
|
387
|
-
affected: affectedMockFilter6,
|
|
388
|
-
original: __mockFilter6,
|
|
389
|
-
});
|
|
390
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
391
|
-
});
|
|
392
|
-
});
|
|
393
|
-
|
|
394
|
-
describe("Testing Editing Filters", () => {
|
|
395
|
-
let builder: FilterBuilder;
|
|
396
|
-
beforeEach(() => {
|
|
397
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
398
|
-
});
|
|
399
|
-
|
|
400
|
-
test("Editing Single", () => {
|
|
401
|
-
const filter: Partial<IFilter> = {
|
|
402
|
-
grouping: FILTER_GROUPING.MONTH,
|
|
403
|
-
values: [
|
|
404
|
-
{
|
|
405
|
-
displayed: true,
|
|
406
|
-
enabled: true,
|
|
407
|
-
value: "Jan 1991",
|
|
408
|
-
},
|
|
409
|
-
],
|
|
410
|
-
};
|
|
411
|
-
const resulting = builder.editSingle("F456", filter);
|
|
412
|
-
const mockFilter2 = {
|
|
413
|
-
...__mockFilter2,
|
|
414
|
-
...filter,
|
|
415
|
-
id: "global|D123|C456|equals|month",
|
|
416
|
-
};
|
|
417
|
-
const resultingFilters = [__mockFilter1, mockFilter2, __mockFilter3];
|
|
418
|
-
|
|
419
|
-
expect(resulting).toEqual({
|
|
420
|
-
resulting: resultingFilters,
|
|
421
|
-
affected: mockFilter2,
|
|
422
|
-
original: __mockFilter2,
|
|
423
|
-
});
|
|
424
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
425
|
-
});
|
|
426
|
-
|
|
427
|
-
test("Wrong parameters on Editing multiple filters", () => {
|
|
428
|
-
const filter1: Partial<IFilter> = {
|
|
429
|
-
validator: FILTER_VALIDATOR.NOT_EQUAL,
|
|
430
|
-
};
|
|
431
|
-
|
|
432
|
-
const resulting = builder.editMultiple(["F456", "F123"], [filter1], {
|
|
433
|
-
automaticId: false,
|
|
434
|
-
});
|
|
435
|
-
expect(resulting).toEqual({
|
|
436
|
-
resulting: __mockFilters1,
|
|
437
|
-
});
|
|
438
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
439
|
-
});
|
|
440
|
-
|
|
441
|
-
test("Editing Multiple", () => {
|
|
442
|
-
const filter1: Partial<IFilter> = {
|
|
443
|
-
validator: FILTER_VALIDATOR.NOT_EQUAL,
|
|
444
|
-
};
|
|
445
|
-
const filter2: Partial<IFilter> = {
|
|
446
|
-
grouping: FILTER_GROUPING.MONTH,
|
|
447
|
-
values: [
|
|
448
|
-
{
|
|
449
|
-
displayed: true,
|
|
450
|
-
enabled: true,
|
|
451
|
-
value: "Jan 1991",
|
|
452
|
-
},
|
|
453
|
-
],
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
const resulting = builder.editMultiple(
|
|
457
|
-
["F456", "F123"],
|
|
458
|
-
[filter2, filter1],
|
|
459
|
-
{ automaticId: false },
|
|
460
|
-
);
|
|
461
|
-
const mockFilter1 = {
|
|
462
|
-
...__mockFilter1,
|
|
463
|
-
...filter1,
|
|
464
|
-
};
|
|
465
|
-
const mockFilter2 = {
|
|
466
|
-
...__mockFilter2,
|
|
467
|
-
...filter2,
|
|
468
|
-
};
|
|
469
|
-
const resultingFilters = [mockFilter1, mockFilter2, __mockFilter3];
|
|
470
|
-
|
|
471
|
-
expect(resulting).toEqual({
|
|
472
|
-
resulting: resultingFilters,
|
|
473
|
-
affected: [mockFilter2, mockFilter1],
|
|
474
|
-
original: __mockFilters1,
|
|
475
|
-
});
|
|
476
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
477
|
-
});
|
|
478
|
-
|
|
479
|
-
test("No editing due to duplicate", () => {
|
|
480
|
-
const resulting = builder.editSingle("F456", __mockFilter3);
|
|
481
|
-
expect(resulting).toEqual({
|
|
482
|
-
resulting: __mockFilters1,
|
|
483
|
-
});
|
|
484
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
485
|
-
});
|
|
486
|
-
});
|
|
487
|
-
|
|
488
|
-
describe("Cannot editing filter values", () => {
|
|
489
|
-
let builder: FilterBuilder;
|
|
490
|
-
beforeEach(() => {
|
|
491
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
492
|
-
});
|
|
493
|
-
|
|
494
|
-
test("Cannot edit one value", () => {
|
|
495
|
-
const newValue: IFilterValueRegular = {
|
|
496
|
-
enabled: false,
|
|
497
|
-
displayed: true,
|
|
498
|
-
value: "Hola",
|
|
499
|
-
};
|
|
500
|
-
const resulting = builder.editValue("F123", newValue, 0);
|
|
501
|
-
|
|
502
|
-
expect(resulting).toEqual({
|
|
503
|
-
resulting: __mockFilters1,
|
|
504
|
-
});
|
|
505
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
506
|
-
});
|
|
507
|
-
|
|
508
|
-
test("Cannot edit multiple values", () => {
|
|
509
|
-
const newValues: IFilterValueRegular[] = [
|
|
510
|
-
{
|
|
511
|
-
enabled: false,
|
|
512
|
-
displayed: true,
|
|
513
|
-
value: "Hola",
|
|
514
|
-
},
|
|
515
|
-
{
|
|
516
|
-
enabled: true,
|
|
517
|
-
displayed: true,
|
|
518
|
-
value: "Hello",
|
|
519
|
-
},
|
|
520
|
-
];
|
|
521
|
-
const resulting = builder.editValues("F457", newValues, [0, 3]);
|
|
522
|
-
|
|
523
|
-
expect(resulting).toEqual({
|
|
524
|
-
resulting: __mockFilters1,
|
|
525
|
-
});
|
|
526
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
527
|
-
});
|
|
528
|
-
});
|
|
529
|
-
|
|
530
|
-
describe("Testing Editing Filters Values", () => {
|
|
531
|
-
let builder: FilterBuilder;
|
|
532
|
-
beforeEach(() => {
|
|
533
|
-
builder = new FilterBuilder(__mockFilters2);
|
|
534
|
-
});
|
|
535
|
-
|
|
536
|
-
test("Editing One value", () => {
|
|
537
|
-
const newValue: IFilterValueRegular = {
|
|
538
|
-
enabled: false,
|
|
539
|
-
displayed: true,
|
|
540
|
-
value: "Q4 2023",
|
|
541
|
-
};
|
|
542
|
-
const resulting = builder.editValue("F457", newValue, 0);
|
|
543
|
-
|
|
544
|
-
const mockFilter6: IFilter = {
|
|
545
|
-
...__mockFilter6,
|
|
546
|
-
values: [
|
|
547
|
-
newValue,
|
|
548
|
-
__mockFilter6.values![1],
|
|
549
|
-
__mockFilter6.values![2],
|
|
550
|
-
__mockFilter6.values![3],
|
|
551
|
-
],
|
|
552
|
-
};
|
|
553
|
-
const resultingFilters: IFilter[] = [
|
|
554
|
-
__mockFilter4,
|
|
555
|
-
__mockFilter5,
|
|
556
|
-
mockFilter6,
|
|
557
|
-
];
|
|
558
|
-
|
|
559
|
-
expect(resulting).toEqual({
|
|
560
|
-
resulting: resultingFilters,
|
|
561
|
-
affected: mockFilter6,
|
|
562
|
-
original: __mockFilter6,
|
|
563
|
-
});
|
|
564
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
565
|
-
});
|
|
566
|
-
|
|
567
|
-
test("Editing Multiple values", () => {
|
|
568
|
-
const newValues: IFilterValueRegular[] = [
|
|
569
|
-
{
|
|
570
|
-
enabled: false,
|
|
571
|
-
displayed: true,
|
|
572
|
-
value: "Q4 2023",
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
enabled: true,
|
|
576
|
-
displayed: true,
|
|
577
|
-
value: "Q1 2025",
|
|
578
|
-
},
|
|
579
|
-
];
|
|
580
|
-
const resulting = builder.editValues("F457", newValues, [0, 3]);
|
|
581
|
-
|
|
582
|
-
const mockFilter6: IFilter = {
|
|
583
|
-
...__mockFilter6,
|
|
584
|
-
values: [
|
|
585
|
-
newValues[0],
|
|
586
|
-
__mockFilter6.values![1],
|
|
587
|
-
__mockFilter6.values![2],
|
|
588
|
-
newValues[1],
|
|
589
|
-
],
|
|
590
|
-
};
|
|
591
|
-
const resultingFilters: IFilter[] = [
|
|
592
|
-
__mockFilter4,
|
|
593
|
-
__mockFilter5,
|
|
594
|
-
mockFilter6,
|
|
595
|
-
];
|
|
596
|
-
|
|
597
|
-
expect(resulting.affected).toEqual(mockFilter6);
|
|
598
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
599
|
-
expect(resulting.original).toEqual(__mockFilter6);
|
|
600
|
-
|
|
601
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
602
|
-
});
|
|
603
|
-
});
|
|
604
|
-
|
|
605
|
-
describe("Testing Merging Filters", () => {
|
|
606
|
-
let builder: FilterBuilder;
|
|
607
|
-
beforeEach(() => {
|
|
608
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
609
|
-
});
|
|
610
|
-
|
|
611
|
-
test("Merging Single", () => {
|
|
612
|
-
const resulting = builder.mergeSingle(__mockFilter4);
|
|
613
|
-
const mockFilter4 = {
|
|
614
|
-
...__mockFilter4,
|
|
615
|
-
id: "page|D456|C654|greater_than",
|
|
616
|
-
};
|
|
617
|
-
const resultingFilters = [
|
|
618
|
-
__mockFilter1,
|
|
619
|
-
__mockFilter2,
|
|
620
|
-
__mockFilter3,
|
|
621
|
-
mockFilter4,
|
|
622
|
-
];
|
|
623
|
-
|
|
624
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
625
|
-
expect(resulting.affected).toEqual(mockFilter4);
|
|
626
|
-
expect(resulting.original).toEqual(__mockFilter4);
|
|
627
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
628
|
-
});
|
|
629
|
-
|
|
630
|
-
test("Wrong parameters on Merging single filter", () => {
|
|
631
|
-
// @ts-expect-error: Expected wrong params
|
|
632
|
-
const resulting = builder.mergeSingle(undefined);
|
|
633
|
-
|
|
634
|
-
expect(resulting).toEqual({
|
|
635
|
-
resulting: __mockFilters1,
|
|
636
|
-
});
|
|
637
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
638
|
-
});
|
|
639
|
-
|
|
640
|
-
test("Merging Multiple", () => {
|
|
641
|
-
const resulting = builder.mergeMultiple([__mockFilter5, __mockFilter6]);
|
|
642
|
-
const mockFilter2 = {
|
|
643
|
-
...__mockFilter2,
|
|
644
|
-
operator: FILTER_OPERATOR.AND,
|
|
645
|
-
};
|
|
646
|
-
const mockFilter5 = {
|
|
647
|
-
...__mockFilter5,
|
|
648
|
-
id: "page|D789|C135|not_equal",
|
|
649
|
-
};
|
|
650
|
-
const mockFilter6 = {
|
|
651
|
-
...__mockFilter6,
|
|
652
|
-
id: "global|D123|C456|equals|week",
|
|
653
|
-
};
|
|
654
|
-
const resultingFilters = [
|
|
655
|
-
__mockFilter1,
|
|
656
|
-
mockFilter2,
|
|
657
|
-
mockFilter6,
|
|
658
|
-
__mockFilter3,
|
|
659
|
-
mockFilter5,
|
|
660
|
-
];
|
|
661
|
-
|
|
662
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
663
|
-
expect(resulting.affected).toEqual([mockFilter5, mockFilter6]);
|
|
664
|
-
expect(resulting.original).toEqual(__mockFilters1);
|
|
665
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
666
|
-
});
|
|
667
|
-
|
|
668
|
-
test("Merging Multiple - Automatic Operator Off", () => {
|
|
669
|
-
const resulting = builder.mergeMultiple([__mockFilter5, __mockFilter6], {
|
|
670
|
-
automaticOperator: false,
|
|
671
|
-
});
|
|
672
|
-
const mockFilter5 = {
|
|
673
|
-
...__mockFilter5,
|
|
674
|
-
id: "page|D789|C135|not_equal",
|
|
675
|
-
};
|
|
676
|
-
const mockFilter6 = {
|
|
677
|
-
...__mockFilter6,
|
|
678
|
-
id: "global|D123|C456|equals|week",
|
|
679
|
-
};
|
|
680
|
-
const resultingFilters = [
|
|
681
|
-
__mockFilter1,
|
|
682
|
-
__mockFilter2,
|
|
683
|
-
mockFilter6,
|
|
684
|
-
__mockFilter3,
|
|
685
|
-
mockFilter5,
|
|
686
|
-
];
|
|
687
|
-
|
|
688
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
689
|
-
expect(resulting.affected).toEqual([mockFilter5, mockFilter6]);
|
|
690
|
-
expect(resulting.original).toEqual(__mockFilters1);
|
|
691
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
692
|
-
});
|
|
693
|
-
|
|
694
|
-
test("Wrong parameters on Merging multiple filter", () => {
|
|
695
|
-
const resulting = builder.mergeMultiple([]);
|
|
696
|
-
expect(resulting).toEqual({
|
|
697
|
-
resulting: __mockFilters1,
|
|
698
|
-
});
|
|
699
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
700
|
-
});
|
|
701
|
-
|
|
702
|
-
test("No merging due to duplicate", () => {
|
|
703
|
-
const resulting = builder.mergeMultiple([__mockFilter3]);
|
|
704
|
-
|
|
705
|
-
expect(resulting.resulting).toEqual(__mockFilters1);
|
|
706
|
-
expect(resulting.affected).toEqual([__mockFilter3]);
|
|
707
|
-
expect(resulting.original).toEqual(__mockFilters1);
|
|
708
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
709
|
-
});
|
|
710
|
-
});
|
|
711
|
-
|
|
712
|
-
describe("Testing Merging Filters Values", () => {
|
|
713
|
-
let builder: FilterBuilder;
|
|
714
|
-
beforeEach(() => {
|
|
715
|
-
builder = new FilterBuilder(__mockFilters1);
|
|
716
|
-
});
|
|
717
|
-
|
|
718
|
-
test("Merging Regular values", () => {
|
|
719
|
-
const newValues: IFilterValueRegular[] = [
|
|
720
|
-
{
|
|
721
|
-
enabled: true,
|
|
722
|
-
displayed: true,
|
|
723
|
-
value: "Except this value",
|
|
724
|
-
},
|
|
725
|
-
{
|
|
726
|
-
enabled: true,
|
|
727
|
-
displayed: true,
|
|
728
|
-
value: "and this value",
|
|
729
|
-
},
|
|
730
|
-
];
|
|
731
|
-
const resulting = builder.mergeValues("F456", newValues);
|
|
732
|
-
|
|
733
|
-
const mockFilter2: IFilter = {
|
|
734
|
-
...__mockFilter2,
|
|
735
|
-
values: [...(__mockFilter2.values ?? []), ...newValues],
|
|
736
|
-
};
|
|
737
|
-
const resultingFilters: IFilter[] = [
|
|
738
|
-
__mockFilter1,
|
|
739
|
-
mockFilter2,
|
|
740
|
-
__mockFilter3,
|
|
741
|
-
];
|
|
742
|
-
|
|
743
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
744
|
-
expect(resulting.affected).toEqual(mockFilter2);
|
|
745
|
-
expect(resulting.original).toEqual(__mockFilter2);
|
|
746
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
747
|
-
});
|
|
748
|
-
|
|
749
|
-
test("Merging Range values", () => {
|
|
750
|
-
const newValues: IFilterValueRange[] = [
|
|
751
|
-
{
|
|
752
|
-
enabled: true,
|
|
753
|
-
displayed: true,
|
|
754
|
-
min: "0",
|
|
755
|
-
},
|
|
756
|
-
{
|
|
757
|
-
enabled: true,
|
|
758
|
-
displayed: true,
|
|
759
|
-
min: "10",
|
|
760
|
-
max: "100",
|
|
761
|
-
},
|
|
762
|
-
];
|
|
763
|
-
const resulting = builder.mergeValues("F789", newValues);
|
|
764
|
-
|
|
765
|
-
const mockFilter3: IFilter = {
|
|
766
|
-
...__mockFilter3,
|
|
767
|
-
values: [...(__mockFilter3.values ?? []), ...newValues],
|
|
768
|
-
};
|
|
769
|
-
const resultingFilters: IFilter[] = [
|
|
770
|
-
__mockFilter1,
|
|
771
|
-
__mockFilter2,
|
|
772
|
-
mockFilter3,
|
|
773
|
-
];
|
|
774
|
-
|
|
775
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
776
|
-
expect(resulting.affected).toEqual(mockFilter3);
|
|
777
|
-
expect(resulting.original).toEqual(__mockFilter3);
|
|
778
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
779
|
-
});
|
|
780
|
-
|
|
781
|
-
test("No Merging due to duplicate", () => {
|
|
782
|
-
const newValues: IFilterValue[] = [
|
|
783
|
-
__mockFilter3.values![0],
|
|
784
|
-
__mockFilter3.values![1],
|
|
785
|
-
];
|
|
786
|
-
const resulting = builder.mergeValues("F789", newValues);
|
|
787
|
-
|
|
788
|
-
expect(resulting.resulting).toEqual(__mockFilters1);
|
|
789
|
-
expect(resulting.affected).toEqual(__mockFilter3);
|
|
790
|
-
expect(resulting.original).toEqual(__mockFilter3);
|
|
791
|
-
expect(builder.getFilters()).toEqual(__mockFilters1);
|
|
792
|
-
});
|
|
793
|
-
});
|
|
794
|
-
|
|
795
|
-
describe("Creating the masked Filter", () => {
|
|
796
|
-
test("Default filter", () => {
|
|
797
|
-
const filter: IFilter = FilterBuilder.createFilter({});
|
|
798
|
-
expect(filter).toEqual({ ...DEFAULT_FILTER, id: "global|equals" });
|
|
799
|
-
});
|
|
800
|
-
|
|
801
|
-
test("Some custom properties", () => {
|
|
802
|
-
const partialFilter: Partial<IFilter> = {
|
|
803
|
-
columnId: "Column123",
|
|
804
|
-
operator: FILTER_OPERATOR.OR,
|
|
805
|
-
validator: FILTER_VALIDATOR.BETWEEN_EXCLUSIVE,
|
|
806
|
-
};
|
|
807
|
-
const filter: IFilter = FilterBuilder.createFilter(partialFilter);
|
|
808
|
-
expect(filter).toEqual({
|
|
809
|
-
...DEFAULT_FILTER,
|
|
810
|
-
...partialFilter,
|
|
811
|
-
id: "global|Column123|between_exclusive",
|
|
812
|
-
});
|
|
813
|
-
});
|
|
814
|
-
});
|
|
815
|
-
|
|
816
|
-
describe("Replacing filters", () => {
|
|
817
|
-
let builder: FilterBuilder;
|
|
818
|
-
beforeEach(() => {
|
|
819
|
-
builder = new FilterBuilder(__mockFilters2);
|
|
820
|
-
});
|
|
821
|
-
|
|
822
|
-
test("By Params", () => {
|
|
823
|
-
const filters: IFilter[] = [__mockFilter1, __mockFilter2];
|
|
824
|
-
const params = { scope: FILTER_SCOPE.PAGE };
|
|
825
|
-
const resulting = builder.replaceByParams(filters, params);
|
|
826
|
-
|
|
827
|
-
const mockFilter1 = { ...__mockFilter1, id: "global|D123|C123|equals" };
|
|
828
|
-
const mockFilter2 = { ...__mockFilter2, id: "global|D123|C456|equals|day" };
|
|
829
|
-
const resultingFilters = [__mockFilter6, mockFilter2, mockFilter1];
|
|
830
|
-
const affected = [mockFilter1, mockFilter2];
|
|
831
|
-
|
|
832
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
833
|
-
expect(resulting.affected).toEqual(affected);
|
|
834
|
-
expect(resulting.original).toEqual(__mockFilters2);
|
|
835
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
836
|
-
});
|
|
837
|
-
|
|
838
|
-
test("By Params - Automatic Operator On", () => {
|
|
839
|
-
const filters: IFilter[] = [__mockFilter1, __mockFilter2];
|
|
840
|
-
const params = { scope: FILTER_SCOPE.PAGE };
|
|
841
|
-
const resulting = builder.replaceByParams(filters, params, {
|
|
842
|
-
automaticOperator: true,
|
|
843
|
-
});
|
|
844
|
-
|
|
845
|
-
const mockFilter1 = { ...__mockFilter1, id: "global|D123|C123|equals" };
|
|
846
|
-
const mockFilter2 = { ...__mockFilter2, id: "global|D123|C456|equals|day" };
|
|
847
|
-
const mockFilter6 = { ...__mockFilter6, operator: FILTER_OPERATOR.OR };
|
|
848
|
-
const resultingFilters = [mockFilter6, mockFilter2, mockFilter1];
|
|
849
|
-
const affected = [mockFilter1, mockFilter2];
|
|
850
|
-
|
|
851
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
852
|
-
expect(resulting.affected).toEqual(affected);
|
|
853
|
-
expect(resulting.original).toEqual(__mockFilters2);
|
|
854
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
855
|
-
});
|
|
856
|
-
|
|
857
|
-
test("By Params - Adding In Same Index", () => {
|
|
858
|
-
const filters: IFilter[] = [__mockFilter1, __mockFilter2];
|
|
859
|
-
const params = { validator: FILTER_VALIDATOR.NOT_EQUAL };
|
|
860
|
-
const resulting = builder.replaceByParams(filters, params, {
|
|
861
|
-
addingInSameIndex: true,
|
|
862
|
-
});
|
|
863
|
-
|
|
864
|
-
const mockFilter1 = { ...__mockFilter1, id: "global|D123|C123|equals" };
|
|
865
|
-
const mockFilter2 = { ...__mockFilter2, id: "global|D123|C456|equals|day" };
|
|
866
|
-
const resultingFilters = [
|
|
867
|
-
__mockFilter4,
|
|
868
|
-
mockFilter1,
|
|
869
|
-
__mockFilter6,
|
|
870
|
-
mockFilter2,
|
|
871
|
-
];
|
|
872
|
-
const affected = [mockFilter1, mockFilter2];
|
|
873
|
-
|
|
874
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
875
|
-
expect(resulting.affected).toEqual(affected);
|
|
876
|
-
expect(resulting.original).toEqual(__mockFilters2);
|
|
877
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
878
|
-
});
|
|
879
|
-
|
|
880
|
-
test("By Params - Adding In Same Index Off", () => {
|
|
881
|
-
const filters: IFilter[] = [__mockFilter1, __mockFilter2];
|
|
882
|
-
const params = { validator: FILTER_VALIDATOR.NOT_EQUAL };
|
|
883
|
-
const resulting = builder.replaceByParams(filters, params, {
|
|
884
|
-
addingInSameIndex: false,
|
|
885
|
-
});
|
|
886
|
-
|
|
887
|
-
const mockFilter1 = { ...__mockFilter1, id: "global|D123|C123|equals" };
|
|
888
|
-
const mockFilter2 = { ...__mockFilter2, id: "global|D123|C456|equals|day" };
|
|
889
|
-
const resultingFilters = [
|
|
890
|
-
__mockFilter4,
|
|
891
|
-
__mockFilter6,
|
|
892
|
-
mockFilter2,
|
|
893
|
-
mockFilter1,
|
|
894
|
-
];
|
|
895
|
-
|
|
896
|
-
const affected = [mockFilter1, mockFilter2];
|
|
897
|
-
|
|
898
|
-
expect(resulting.resulting).toEqual(resultingFilters);
|
|
899
|
-
expect(resulting.affected).toEqual(affected);
|
|
900
|
-
expect(resulting.original).toEqual(__mockFilters2);
|
|
901
|
-
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
902
|
-
});
|
|
903
|
-
});
|