@reltio/components 1.4.1950 → 1.4.1952

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.
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.useMatchesLoader = void 0;
4
15
  var react_1 = require("react");
@@ -12,6 +23,7 @@ var useMatchesLoader = function (_a) {
12
23
  var _c = (0, react_1.useState)(0), total = _c[0], setTotal = _c[1];
13
24
  var _d = (0, react_1.useState)([]), matches = _d[0], setMatches = _d[1];
14
25
  var _e = (0, react_1.useState)({}), entitiesMap = _e[0], setEntitiesMap = _e[1];
26
+ var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
15
27
  var tenant = (0, MdmModuleContext_1.useMdmTenant)();
16
28
  var dtssPath = (0, MdmModuleContext_1.useMdmDtssPath)();
17
29
  var dataTenants = (0, MdmModuleContext_1.useMdmDataTenants)();
@@ -56,19 +68,17 @@ var useMatchesLoader = function (_a) {
56
68
  max: rowsPerPage,
57
69
  force: force
58
70
  })
59
- : getTransitiveMatchesWithPaging({
71
+ : getTransitiveMatchesWithPaging(__assign(__assign({}, (0, mdm_sdk_1.addMetadataSpecificGetTransitiveMatchesOptions)(metadata, {
60
72
  entityUri: entityUri,
61
- offset: page * rowsPerPage,
62
73
  max: rowsPerPage,
63
74
  filter: (0, mdm_sdk_1.addGlobalFilterToQuery)(globalFilter, filter) || '',
64
75
  rules: rules,
65
76
  sort: field,
66
77
  order: order,
67
- force: force,
68
78
  markMatchedValues: markMatchedValues,
69
79
  deep: options.showTransitiveMatches ? undefined : 1,
70
80
  activeness: activeness
71
- }))
81
+ })), { offset: page * rowsPerPage, force: force })))
72
82
  .then(function (result) {
73
83
  var response = result.response, total = result.total, originalResponse = result.originalResponse;
74
84
  setTotal(total);
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
19
+ var react_hooks_1 = require("@testing-library/react-hooks");
20
+ var MdmModuleContext_1 = require("../../contexts/MdmModuleContext");
21
+ var useMatchesLoader_1 = require("./useMatchesLoader");
22
+ jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getTransitiveMatches: jest.fn() })); });
23
+ describe('Test useMatchesLoader hook', function () {
24
+ var defaultProps = {
25
+ enabled: true,
26
+ filter: '',
27
+ entity: {
28
+ uri: 'entities/0tHogNC',
29
+ type: 'configuration/entityTypes/HCP',
30
+ attributes: {}
31
+ },
32
+ options: { showTransitiveMatches: false },
33
+ page: 0,
34
+ rowsPerPage: 3
35
+ };
36
+ var getMetadata = function () { return ({
37
+ uri: 'configuration',
38
+ entityTypes: [
39
+ {
40
+ uri: 'configuration/entityTypes/HCP',
41
+ attributes: [
42
+ {
43
+ uri: 'configuration/entityTypes/HCP/attributes/Name',
44
+ type: 'String',
45
+ label: 'Name',
46
+ name: 'Name'
47
+ }
48
+ ]
49
+ }
50
+ ]
51
+ }); };
52
+ var defaultMdmValues = { metadata: getMetadata() };
53
+ var setUp = function (_a) {
54
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
55
+ var Providers = function (_a) {
56
+ var children = _a.children;
57
+ return react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues }, children);
58
+ };
59
+ return __assign({}, (0, react_hooks_1.renderHook)(useMatchesLoader_1.useMatchesLoader, { initialProps: props, wrapper: Providers }));
60
+ };
61
+ afterEach(function () {
62
+ jest.clearAllMocks();
63
+ });
64
+ describe('Data masking behaviour', function () {
65
+ it('should call transitive endpoint without options if metadata doesnt have masked attribute', function () {
66
+ setUp();
67
+ expect(mdm_sdk_1.getTransitiveMatches).toHaveBeenCalledTimes(1);
68
+ expect(mdm_sdk_1.getTransitiveMatches).not.toHaveBeenCalledWith(expect.objectContaining({ options: expect.anything() }));
69
+ });
70
+ it('should call transitive endpoint with sendMasked option if metadata has masked attribute', function () {
71
+ var metadata = getMetadata();
72
+ metadata.entityTypes[0].attributes[0].masking = { regexPattern: '.{4}$' };
73
+ setUp({ mdmValues: { metadata: metadata } });
74
+ expect(mdm_sdk_1.getTransitiveMatches).toHaveBeenCalledTimes(1);
75
+ expect(mdm_sdk_1.getTransitiveMatches).toHaveBeenCalledWith(expect.objectContaining({ options: 'sendMasked' }));
76
+ });
77
+ });
78
+ });
@@ -1,14 +1,26 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  import { useCallback, useEffect, useMemo, useState } from 'react';
2
- import { ActivityFilter, collectAllTransitiveEntitiesUris, getEntitiesMapForTransitiveMatches, getMatchesForDataTenantEntity, getMatchesFromDataTenants, getTransitiveMatches, isDataTenantEntity, isTempUri, withDtssPotentialItems, addGlobalFilterToQuery } from '@reltio/mdm-sdk';
13
+ import { ActivityFilter, collectAllTransitiveEntitiesUris, getEntitiesMapForTransitiveMatches, getMatchesForDataTenantEntity, getMatchesFromDataTenants, getTransitiveMatches, isDataTenantEntity, isTempUri, withDtssPotentialItems, addGlobalFilterToQuery, addMetadataSpecificGetTransitiveMatchesOptions } from '@reltio/mdm-sdk';
3
14
  import { usePagingSimulator } from '../usePagingSimulator';
4
15
  import { useSafePromise } from '../useSafePromise';
5
- import { useMdmDataTenants, useMdmDtssPath, useMdmGlobalSearchRequestOptions, useMdmTenant } from '../../contexts/MdmModuleContext';
16
+ import { useMdmDataTenants, useMdmDtssPath, useMdmGlobalSearchRequestOptions, useMdmMetadata, useMdmTenant } from '../../contexts/MdmModuleContext';
6
17
  export var useMatchesLoader = function (_a) {
7
18
  var enabled = _a.enabled, entity = _a.entity, filter = _a.filter, rules = _a.rules, onFinishLoading = _a.onFinishLoading, onStartLoading = _a.onStartLoading, options = _a.options, page = _a.page, rowsPerPage = _a.rowsPerPage, sorting = _a.sorting, markMatchedValues = _a.markMatchedValues;
8
19
  var _b = sorting || {}, order = _b.order, field = _b.field;
9
20
  var _c = useState(0), total = _c[0], setTotal = _c[1];
10
21
  var _d = useState([]), matches = _d[0], setMatches = _d[1];
11
22
  var _e = useState({}), entitiesMap = _e[0], setEntitiesMap = _e[1];
23
+ var metadata = useMdmMetadata();
12
24
  var tenant = useMdmTenant();
13
25
  var dtssPath = useMdmDtssPath();
14
26
  var dataTenants = useMdmDataTenants();
@@ -53,19 +65,17 @@ export var useMatchesLoader = function (_a) {
53
65
  max: rowsPerPage,
54
66
  force: force
55
67
  })
56
- : getTransitiveMatchesWithPaging({
68
+ : getTransitiveMatchesWithPaging(__assign(__assign({}, addMetadataSpecificGetTransitiveMatchesOptions(metadata, {
57
69
  entityUri: entityUri,
58
- offset: page * rowsPerPage,
59
70
  max: rowsPerPage,
60
71
  filter: addGlobalFilterToQuery(globalFilter, filter) || '',
61
72
  rules: rules,
62
73
  sort: field,
63
74
  order: order,
64
- force: force,
65
75
  markMatchedValues: markMatchedValues,
66
76
  deep: options.showTransitiveMatches ? undefined : 1,
67
77
  activeness: activeness
68
- }))
78
+ })), { offset: page * rowsPerPage, force: force })))
69
79
  .then(function (result) {
70
80
  var response = result.response, total = result.total, originalResponse = result.originalResponse;
71
81
  setTotal(total);
@@ -0,0 +1,73 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from 'react';
13
+ import { getTransitiveMatches } from '@reltio/mdm-sdk';
14
+ import { renderHook } from '@testing-library/react-hooks';
15
+ import { MdmModuleProvider } from '../../contexts/MdmModuleContext';
16
+ import { useMatchesLoader } from './useMatchesLoader';
17
+ jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getTransitiveMatches: jest.fn() })); });
18
+ describe('Test useMatchesLoader hook', function () {
19
+ var defaultProps = {
20
+ enabled: true,
21
+ filter: '',
22
+ entity: {
23
+ uri: 'entities/0tHogNC',
24
+ type: 'configuration/entityTypes/HCP',
25
+ attributes: {}
26
+ },
27
+ options: { showTransitiveMatches: false },
28
+ page: 0,
29
+ rowsPerPage: 3
30
+ };
31
+ var getMetadata = function () { return ({
32
+ uri: 'configuration',
33
+ entityTypes: [
34
+ {
35
+ uri: 'configuration/entityTypes/HCP',
36
+ attributes: [
37
+ {
38
+ uri: 'configuration/entityTypes/HCP/attributes/Name',
39
+ type: 'String',
40
+ label: 'Name',
41
+ name: 'Name'
42
+ }
43
+ ]
44
+ }
45
+ ]
46
+ }); };
47
+ var defaultMdmValues = { metadata: getMetadata() };
48
+ var setUp = function (_a) {
49
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
50
+ var Providers = function (_a) {
51
+ var children = _a.children;
52
+ return React.createElement(MdmModuleProvider, { values: mdmValues }, children);
53
+ };
54
+ return __assign({}, renderHook(useMatchesLoader, { initialProps: props, wrapper: Providers }));
55
+ };
56
+ afterEach(function () {
57
+ jest.clearAllMocks();
58
+ });
59
+ describe('Data masking behaviour', function () {
60
+ it('should call transitive endpoint without options if metadata doesnt have masked attribute', function () {
61
+ setUp();
62
+ expect(getTransitiveMatches).toHaveBeenCalledTimes(1);
63
+ expect(getTransitiveMatches).not.toHaveBeenCalledWith(expect.objectContaining({ options: expect.anything() }));
64
+ });
65
+ it('should call transitive endpoint with sendMasked option if metadata has masked attribute', function () {
66
+ var metadata = getMetadata();
67
+ metadata.entityTypes[0].attributes[0].masking = { regexPattern: '.{4}$' };
68
+ setUp({ mdmValues: { metadata: metadata } });
69
+ expect(getTransitiveMatches).toHaveBeenCalledTimes(1);
70
+ expect(getTransitiveMatches).toHaveBeenCalledWith(expect.objectContaining({ options: 'sendMasked' }));
71
+ });
72
+ });
73
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1950",
3
+ "version": "1.4.1952",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -8,7 +8,7 @@
8
8
  "@fluentui/react-context-selector": "^9.1.26",
9
9
  "@react-google-maps/api": "2.7.0",
10
10
  "@react-sigma/core": "3.4.0",
11
- "@reltio/mdm-sdk": "^1.4.1861",
11
+ "@reltio/mdm-sdk": "^1.4.1863",
12
12
  "@upsetjs/react": "^1.11.0",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",