@wix/motion-edm-autogen-transformations-core 1.26.0 → 1.27.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/dist/cjs/__tests__/corvid-entity.spec.js +4 -2
- package/dist/cjs/__tests__/corvid-entity.spec.js.map +1 -1
- package/dist/cjs/__tests__/reduceTransformation.spec.js +1 -3
- package/dist/cjs/__tests__/reduceTransformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js +9 -4
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js +7 -6
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js +3 -1
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js +3 -1
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js.map +1 -1
- package/dist/cjs/index.js +13 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/corvid-entity/index.js +2 -4
- package/dist/cjs/lib/corvid-entity/index.js.map +1 -1
- package/dist/cjs/lib/helpers.js +10 -10
- package/dist/cjs/lib/helpers.js.map +1 -1
- package/dist/cjs/lib/transformations/common.js +1 -2
- package/dist/cjs/lib/transformations/common.js.map +1 -1
- package/dist/cjs/lib/transformations/constants.js +2 -4
- package/dist/cjs/lib/transformations/constants.js.map +1 -1
- package/dist/cjs/lib/transformations/preset/delete.js +3 -1
- package/dist/cjs/lib/transformations/preset/delete.js.map +1 -1
- package/dist/cjs/lib/transformations/preset/query.js +9 -7
- package/dist/cjs/lib/transformations/preset/query.js.map +1 -1
- package/dist/cjs/lib/transformations/reduceTransformation.js +46 -36
- package/dist/cjs/lib/transformations/reduceTransformation.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/common.js +4 -2
- package/dist/cjs/lib/transformations/validations/common.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js +3 -5
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js +7 -6
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js.map +1 -1
- package/dist/esm/__tests__/corvid-entity.spec.js +30 -24
- package/dist/esm/__tests__/corvid-entity.spec.js.map +1 -1
- package/dist/esm/__tests__/getArgumentCardinality.spec.js +20 -25
- package/dist/esm/__tests__/getArgumentCardinality.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers.spec.js +37 -29
- package/dist/esm/__tests__/helpers.spec.js.map +1 -1
- package/dist/esm/__tests__/reduceTransformation.spec.js +147 -149
- package/dist/esm/__tests__/reduceTransformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/custom-functions.spec.js +62 -59
- package/dist/esm/__tests__/transformations/custom-functions.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js +24 -26
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js +39 -43
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js +22 -24
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js +11 -11
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js +29 -30
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js +58 -62
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js +94 -82
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js.map +1 -1
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js +130 -107
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js.map +1 -1
- package/dist/esm/index.js +22 -22
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/corvid-entity/index.js +6 -10
- package/dist/esm/lib/corvid-entity/index.js.map +1 -1
- package/dist/esm/lib/getArgumentCardinality.js +15 -21
- package/dist/esm/lib/getArgumentCardinality.js.map +1 -1
- package/dist/esm/lib/helpers.js +26 -40
- package/dist/esm/lib/helpers.js.map +1 -1
- package/dist/esm/lib/transformations/common.js +2 -5
- package/dist/esm/lib/transformations/common.js.map +1 -1
- package/dist/esm/lib/transformations/constants.js +2 -2
- package/dist/esm/lib/transformations/constants.js.map +1 -1
- package/dist/esm/lib/transformations/custom-functions.js +11 -14
- package/dist/esm/lib/transformations/custom-functions.js.map +1 -1
- package/dist/esm/lib/transformations/preset/create.js +1 -4
- package/dist/esm/lib/transformations/preset/create.js.map +1 -1
- package/dist/esm/lib/transformations/preset/delete.js +9 -13
- package/dist/esm/lib/transformations/preset/delete.js.map +1 -1
- package/dist/esm/lib/transformations/preset/get.js +1 -4
- package/dist/esm/lib/transformations/preset/get.js.map +1 -1
- package/dist/esm/lib/transformations/preset/list.js +1 -3
- package/dist/esm/lib/transformations/preset/list.js.map +1 -1
- package/dist/esm/lib/transformations/preset/query.js +17 -24
- package/dist/esm/lib/transformations/preset/query.js.map +1 -1
- package/dist/esm/lib/transformations/preset/update.js +3 -4
- package/dist/esm/lib/transformations/preset/update.js.map +1 -1
- package/dist/esm/lib/transformations/reduceTransformation.js +33 -44
- package/dist/esm/lib/transformations/reduceTransformation.js.map +1 -1
- package/dist/esm/lib/transformations/validations/common.js +17 -20
- package/dist/esm/lib/transformations/validations/common.js.map +1 -1
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js +35 -44
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js.map +1 -1
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js +57 -69
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1,84 +1,80 @@
|
|
|
1
1
|
import { aString } from '@wix/motion-runtime-test-context';
|
|
2
2
|
import { times } from 'lodash';
|
|
3
3
|
import { preset } from '../../..';
|
|
4
|
-
|
|
5
|
-
describe('update-method transformations',
|
|
6
|
-
describe('buildRequestTransformation',
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
test('creates a transformation mapping args into requestMessageIdentifierPath and requestMessageEntityPath',
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
const { update: { buildRequestTransformation, buildResponseTransformation }, } = preset;
|
|
5
|
+
describe('update-method transformations', () => {
|
|
6
|
+
describe('buildRequestTransformation', () => {
|
|
7
|
+
const requestMessageOptionsPath = aString();
|
|
8
|
+
const requestMessageEntityPath = aString();
|
|
9
|
+
const requestMessageEntityIdentifierField = aString();
|
|
10
|
+
test('creates a transformation mapping args into requestMessageIdentifierPath and requestMessageEntityPath', () => {
|
|
11
|
+
const transformedObject = buildRequestTransformation({
|
|
12
|
+
requestMessageEntityIdentifierField,
|
|
13
|
+
requestMessageEntityPath,
|
|
14
|
+
});
|
|
15
|
+
expect(transformedObject).toStrictEqual({
|
|
16
|
+
[requestMessageEntityPath]: {
|
|
17
|
+
[requestMessageEntityIdentifierField]: '$[0]',
|
|
18
|
+
'*': '$[1]',
|
|
19
|
+
},
|
|
15
20
|
});
|
|
16
|
-
expect(transformedObject).toStrictEqual((_a = {},
|
|
17
|
-
_a[requestMessageEntityPath] = (_b = {},
|
|
18
|
-
_b[requestMessageEntityIdentifierField] = '$[0]',
|
|
19
|
-
_b['*'] = '$[1]',
|
|
20
|
-
_b),
|
|
21
|
-
_a));
|
|
22
21
|
});
|
|
23
|
-
test(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
test(`creates a transformation that maps the 3rd argument into requestMessageOptionsPath when provided`, () => {
|
|
23
|
+
const transformedObject = buildRequestTransformation({
|
|
24
|
+
requestMessageEntityIdentifierField,
|
|
25
|
+
requestMessageEntityPath,
|
|
26
|
+
requestMessageOptionsPath,
|
|
27
|
+
});
|
|
28
|
+
expect(transformedObject).toStrictEqual({
|
|
29
|
+
[requestMessageEntityPath]: {
|
|
30
|
+
[requestMessageEntityIdentifierField]: '$[0]',
|
|
31
|
+
'*': '$[1]',
|
|
32
|
+
},
|
|
33
|
+
[requestMessageOptionsPath]: '$[2]',
|
|
29
34
|
});
|
|
30
|
-
expect(transformedObject).toStrictEqual((_a = {},
|
|
31
|
-
_a[requestMessageEntityPath] = (_b = {},
|
|
32
|
-
_b[requestMessageEntityIdentifierField] = '$[0]',
|
|
33
|
-
_b['*'] = '$[1]',
|
|
34
|
-
_b),
|
|
35
|
-
_a[requestMessageOptionsPath] = '$[2]',
|
|
36
|
-
_a));
|
|
37
35
|
});
|
|
38
|
-
test('supports nested paths for requestMessageEntityPath and requestMessageOptionsPath',
|
|
39
|
-
var _a, _b, _c, _d;
|
|
36
|
+
test('supports nested paths for requestMessageEntityPath and requestMessageOptionsPath', () => {
|
|
40
37
|
// @ts-expect-error
|
|
41
|
-
|
|
38
|
+
const requestMessageEntityPathSegments = times(2, aString);
|
|
42
39
|
// @ts-expect-error
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
requestMessageEntityIdentifierField
|
|
40
|
+
const optionsPathSegments = times(2, aString);
|
|
41
|
+
const transformationObject = buildRequestTransformation({
|
|
42
|
+
requestMessageEntityIdentifierField,
|
|
46
43
|
requestMessageEntityPath: requestMessageEntityPathSegments.join('.'),
|
|
47
44
|
requestMessageOptionsPath: optionsPathSegments.join('.'),
|
|
48
45
|
});
|
|
49
|
-
expect(transformationObject).toStrictEqual(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
expect(transformationObject).toStrictEqual({
|
|
47
|
+
[requestMessageEntityPathSegments[0]]: {
|
|
48
|
+
[requestMessageEntityPathSegments[1]]: {
|
|
49
|
+
[requestMessageEntityIdentifierField]: '$[0]',
|
|
50
|
+
'*': '$[1]',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
[optionsPathSegments[0]]: { [optionsPathSegments[1]]: '$[2]' },
|
|
54
|
+
});
|
|
58
55
|
});
|
|
59
|
-
test('supports shared paths for requestMessageEntityPath and requestMessageOptionsPath',
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
requestMessageEntityIdentifierField: requestMessageEntityIdentifierField,
|
|
56
|
+
test('supports shared paths for requestMessageEntityPath and requestMessageOptionsPath', () => {
|
|
57
|
+
const sharedPath = aString();
|
|
58
|
+
const transformationObject = buildRequestTransformation({
|
|
59
|
+
requestMessageEntityIdentifierField,
|
|
64
60
|
requestMessageEntityPath: sharedPath,
|
|
65
61
|
requestMessageOptionsPath: sharedPath,
|
|
66
62
|
});
|
|
67
|
-
expect(transformationObject).toStrictEqual(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
expect(transformationObject).toStrictEqual({
|
|
64
|
+
[sharedPath]: {
|
|
65
|
+
[requestMessageEntityIdentifierField]: '$[0]',
|
|
66
|
+
'*': ['$[1]', '$[2]'],
|
|
67
|
+
},
|
|
68
|
+
});
|
|
73
69
|
});
|
|
74
70
|
});
|
|
75
|
-
describe('buildResponseTransformation',
|
|
76
|
-
test('unwraps the value of the provided property-path',
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
responseMessageResultPath
|
|
71
|
+
describe('buildResponseTransformation', () => {
|
|
72
|
+
test('unwraps the value of the provided property-path', () => {
|
|
73
|
+
const responseMessageResultPath = aString();
|
|
74
|
+
const transformationString = buildResponseTransformation({
|
|
75
|
+
responseMessageResultPath,
|
|
80
76
|
});
|
|
81
|
-
expect(transformationString).toStrictEqual(
|
|
77
|
+
expect(transformationString).toStrictEqual(`$.${responseMessageResultPath}`);
|
|
82
78
|
});
|
|
83
79
|
});
|
|
84
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-transformation.spec.js","sourceRoot":"","sources":["../../../../../src/__tests__/transformations/preset/update-transformation.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"update-transformation.spec.js","sourceRoot":"","sources":["../../../../../src/__tests__/transformations/preset/update-transformation.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,38 @@
|
|
|
1
|
-
import { __makeTemplateObject } from "tslib";
|
|
2
1
|
import { aNumber, aString } from '@wix/motion-runtime-test-context';
|
|
3
2
|
import { times } from 'lodash';
|
|
4
3
|
import { validation } from '../..';
|
|
5
|
-
|
|
6
|
-
describe('validateRequestTransformation',
|
|
7
|
-
describe('valid transformations',
|
|
8
|
-
|
|
9
|
-
test('returns valid transformation response for a valid simple transformation',
|
|
10
|
-
|
|
4
|
+
const { validateRequestTransformation } = validation;
|
|
5
|
+
describe('validateRequestTransformation', () => {
|
|
6
|
+
describe('valid transformations', () => {
|
|
7
|
+
const validResults = { isValid: true, validationErrors: [] };
|
|
8
|
+
test('returns valid transformation response for a valid simple transformation', () => {
|
|
9
|
+
const validTransformation = '$[0].a.b.c';
|
|
11
10
|
expect(validateRequestTransformation(validTransformation)).toStrictEqual(validResults);
|
|
12
11
|
});
|
|
13
|
-
test('returns valid transformation response for a valid complex transformation',
|
|
14
|
-
|
|
12
|
+
test('returns valid transformation response for a valid complex transformation', () => {
|
|
13
|
+
const validTransformation = { a: '$[0].a.b.c' };
|
|
15
14
|
expect(validateRequestTransformation(validTransformation)).toStrictEqual(validResults);
|
|
16
15
|
});
|
|
17
16
|
});
|
|
18
|
-
describe('invalid transformations',
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
d: { e: { f: (_b = {}, _b[transformationKey] = '$[0].a.b.c', _b) } },
|
|
17
|
+
describe('invalid transformations', () => {
|
|
18
|
+
const validationErrorWith = ({ parentPath, invalidValue, description, }) => ({
|
|
19
|
+
isValid: false,
|
|
20
|
+
validationErrors: expect.arrayContaining([
|
|
21
|
+
expect.objectContaining({
|
|
22
|
+
parentPath,
|
|
23
|
+
invalidValue,
|
|
24
|
+
description,
|
|
25
|
+
}),
|
|
26
|
+
]),
|
|
27
|
+
});
|
|
28
|
+
describe('invalid complex-transformation keys', () => {
|
|
29
|
+
test.each `
|
|
30
|
+
description | transformationKey | expectedValidationMessage
|
|
31
|
+
${'refers to an argument index'} | ${'$[0]'} | ${"must start with '$.'"}
|
|
32
|
+
${'refers to a custom function'} | ${'#someFunction'} | ${'cannot be a custom function call'}
|
|
33
|
+
`('returns a validation error when a transformation value segment $description', ({ transformationKey, expectedValidationMessage }) => {
|
|
34
|
+
const transformation = {
|
|
35
|
+
d: { e: { f: { [transformationKey]: '$[0].a.b.c' } } },
|
|
38
36
|
'*': '$[1]',
|
|
39
37
|
};
|
|
40
38
|
expect(validateRequestTransformation(transformation)).toStrictEqual(validationErrorWith({
|
|
@@ -44,18 +42,20 @@ describe('validateRequestTransformation', function () {
|
|
|
44
42
|
}));
|
|
45
43
|
});
|
|
46
44
|
});
|
|
47
|
-
describe('invalid transformations values',
|
|
48
|
-
describe('omit transformation',
|
|
49
|
-
|
|
50
|
-
describe('invalid source',
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var invalidSourceTransformation = {
|
|
45
|
+
describe('invalid transformations values', () => {
|
|
46
|
+
describe('omit transformation', () => {
|
|
47
|
+
const parentKey = aString();
|
|
48
|
+
describe('invalid source', () => {
|
|
49
|
+
const invalidSourceValue = '$[x].a.b.c';
|
|
50
|
+
const invalidSourceTransformation = {
|
|
54
51
|
'@source': invalidSourceValue,
|
|
55
|
-
'@omit': times(2,
|
|
52
|
+
'@omit': times(2, () => aString()),
|
|
56
53
|
};
|
|
57
|
-
test.each
|
|
58
|
-
|
|
54
|
+
test.each `
|
|
55
|
+
description | invalidTransformation | expectedParentPath
|
|
56
|
+
${'top level'} | ${invalidSourceTransformation} | ${'@source'}
|
|
57
|
+
${'nested'} | ${{ [parentKey]: invalidSourceTransformation }} | ${`${parentKey}.@source`}
|
|
58
|
+
`('returns a validation error when the @source value is invalid', ({ invalidTransformation, expectedParentPath }) => {
|
|
59
59
|
expect(validateRequestTransformation(invalidTransformation)).toStrictEqual(validationErrorWith({
|
|
60
60
|
parentPath: expectedParentPath,
|
|
61
61
|
invalidValue: invalidSourceValue,
|
|
@@ -63,18 +63,20 @@ describe('validateRequestTransformation', function () {
|
|
|
63
63
|
}));
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
|
-
describe('invalid @omit',
|
|
67
|
-
|
|
68
|
-
var transformationWithOmitValue = function (value) { return ({
|
|
66
|
+
describe('invalid @omit', () => {
|
|
67
|
+
const transformationWithOmitValue = (value) => ({
|
|
69
68
|
'@source': '$[0].a.b.c',
|
|
70
69
|
'@omit': value,
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
describe.each
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
});
|
|
71
|
+
const nonArray = aString();
|
|
72
|
+
const nonStringArray = times(2, () => aNumber());
|
|
73
|
+
const arrayWithInvalidPaths = ['a.b.c', aString()];
|
|
74
|
+
describe.each `
|
|
75
|
+
description | invalidTransformation | expectedParentPath
|
|
76
|
+
${'top level'} | ${transformationWithOmitValue(nonArray)} | ${'@omit'}
|
|
77
|
+
${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonArray) }} | ${`${parentKey}.@omit`}
|
|
78
|
+
`('@omit is not an array', ({ invalidTransformation, expectedParentPath }) => {
|
|
79
|
+
test('returns a validation error', () => {
|
|
78
80
|
expect(validateRequestTransformation(invalidTransformation)).toStrictEqual(validationErrorWith({
|
|
79
81
|
parentPath: expectedParentPath,
|
|
80
82
|
invalidValue: nonArray,
|
|
@@ -82,9 +84,12 @@ describe('validateRequestTransformation', function () {
|
|
|
82
84
|
}));
|
|
83
85
|
});
|
|
84
86
|
});
|
|
85
|
-
describe.each
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
describe.each `
|
|
88
|
+
description | invalidTransformation | expectedParentPath
|
|
89
|
+
${'top level'} | ${transformationWithOmitValue(nonStringArray)} | ${'@omit'}
|
|
90
|
+
${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonStringArray) }} | ${`${parentKey}.@omit`}
|
|
91
|
+
`('@omit is an array of non-strings', ({ invalidTransformation, expectedParentPath }) => {
|
|
92
|
+
test('return a validation error', () => {
|
|
88
93
|
expect(validateRequestTransformation(invalidTransformation)).toStrictEqual(validationErrorWith({
|
|
89
94
|
parentPath: expectedParentPath,
|
|
90
95
|
invalidValue: nonStringArray,
|
|
@@ -93,10 +98,13 @@ describe('validateRequestTransformation', function () {
|
|
|
93
98
|
});
|
|
94
99
|
});
|
|
95
100
|
/* eslint-disable max-len */
|
|
96
|
-
describe.each
|
|
97
|
-
|
|
101
|
+
describe.each `
|
|
102
|
+
description | invalidTransformation | expectedParentPath
|
|
103
|
+
${'top level'} | ${transformationWithOmitValue(arrayWithInvalidPaths)} | ${'@omit'}
|
|
104
|
+
${'nested'} | ${{ [parentKey]: transformationWithOmitValue(arrayWithInvalidPaths) }} | ${`${parentKey}.@omit`}
|
|
105
|
+
`('@omit is an array with invalid string paths', ({ description, invalidTransformation, expectedParentPath }) => {
|
|
98
106
|
/* eslint-enable max-len */
|
|
99
|
-
test(
|
|
107
|
+
test(`returns a validation error for invalid ${description} transformation`, () => {
|
|
100
108
|
expect(validateRequestTransformation(invalidTransformation)).toStrictEqual(validationErrorWith({
|
|
101
109
|
parentPath: expectedParentPath,
|
|
102
110
|
invalidValue: arrayWithInvalidPaths,
|
|
@@ -106,10 +114,10 @@ describe('validateRequestTransformation', function () {
|
|
|
106
114
|
});
|
|
107
115
|
});
|
|
108
116
|
});
|
|
109
|
-
describe('custom function expressions',
|
|
110
|
-
test('returns a validation error when an invalid custom function-name is used',
|
|
111
|
-
|
|
112
|
-
|
|
117
|
+
describe('custom function expressions', () => {
|
|
118
|
+
test('returns a validation error when an invalid custom function-name is used', () => {
|
|
119
|
+
const invalidCustomFunctionCallExpression = '#1a';
|
|
120
|
+
const transformation = {
|
|
113
121
|
a: { b: { c: invalidCustomFunctionCallExpression } },
|
|
114
122
|
};
|
|
115
123
|
expect(validateRequestTransformation(transformation)).toStrictEqual(validationErrorWith({
|
|
@@ -118,9 +126,9 @@ describe('validateRequestTransformation', function () {
|
|
|
118
126
|
description: 'contains an invalid custom function expression',
|
|
119
127
|
}));
|
|
120
128
|
});
|
|
121
|
-
test('returns a validation error when a custom function argument is invalid for request transformation',
|
|
122
|
-
|
|
123
|
-
|
|
129
|
+
test('returns a validation error when a custom function argument is invalid for request transformation', () => {
|
|
130
|
+
const invalidCustomFunctionExpression = '#someFunction($.id)';
|
|
131
|
+
const transformation = {
|
|
124
132
|
a: { b: { c: invalidCustomFunctionExpression } },
|
|
125
133
|
};
|
|
126
134
|
expect(validateRequestTransformation(transformation)).toStrictEqual(validationErrorWith({
|
|
@@ -129,10 +137,10 @@ describe('validateRequestTransformation', function () {
|
|
|
129
137
|
description: 'must start with $[N] where N is an index',
|
|
130
138
|
}));
|
|
131
139
|
});
|
|
132
|
-
describe('#constant function',
|
|
133
|
-
test('returns a validation error when passed value is not a valid json value',
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
describe('#constant function', () => {
|
|
141
|
+
test('returns a validation error when passed value is not a valid json value', () => {
|
|
142
|
+
const invalidCustomFunctionExpression = '#constant(not-json)';
|
|
143
|
+
const transformation = {
|
|
136
144
|
a: { b: { c: invalidCustomFunctionExpression } },
|
|
137
145
|
};
|
|
138
146
|
expect(validateRequestTransformation(transformation)).toStrictEqual(validationErrorWith({
|
|
@@ -141,8 +149,8 @@ describe('validateRequestTransformation', function () {
|
|
|
141
149
|
description: 'must be a valid json value',
|
|
142
150
|
}));
|
|
143
151
|
});
|
|
144
|
-
test('allows passing non json-path arguments to the #constant function',
|
|
145
|
-
|
|
152
|
+
test('allows passing non json-path arguments to the #constant function', () => {
|
|
153
|
+
const transformation = { a: { b: { c: '#constant("abc")' } } };
|
|
146
154
|
expect(validateRequestTransformation(transformation)).toStrictEqual({
|
|
147
155
|
isValid: true,
|
|
148
156
|
validationErrors: [],
|
|
@@ -151,19 +159,24 @@ describe('validateRequestTransformation', function () {
|
|
|
151
159
|
});
|
|
152
160
|
});
|
|
153
161
|
/* eslint-disable max-len */
|
|
154
|
-
describe.each
|
|
162
|
+
describe.each `
|
|
163
|
+
description | transformationValue | expectedValidationMessage
|
|
164
|
+
${'does not start with $[N] where N is a numeric index'} | ${'$[x].a.b.c'} | ${'must start with $[N] where N is an index'}
|
|
165
|
+
${'is not a valid json-path'} | ${'@'} | ${'must start with $[N] where N is an index'}
|
|
166
|
+
${'has several arguments referred to in the transformation'} | ${'$[0].$[1]'} | ${'must have a single argument-index as the first path segment'}
|
|
167
|
+
${'refers to * in the path'} | ${'$[0].a.b.*'} | ${'cannot refer to the * operator'}
|
|
168
|
+
`(
|
|
155
169
|
/* eslint-enable max-len */
|
|
156
|
-
'returns a validation error when a transformation value segment $description',
|
|
157
|
-
|
|
158
|
-
test('simple transformation', function () {
|
|
170
|
+
'returns a validation error when a transformation value segment $description', ({ transformationValue, expectedValidationMessage }) => {
|
|
171
|
+
test('simple transformation', () => {
|
|
159
172
|
expect(validateRequestTransformation(transformationValue)).toStrictEqual(validationErrorWith({
|
|
160
173
|
parentPath: null,
|
|
161
174
|
invalidValue: transformationValue,
|
|
162
175
|
description: expectedValidationMessage,
|
|
163
176
|
}));
|
|
164
177
|
});
|
|
165
|
-
test('complex transformation',
|
|
166
|
-
|
|
178
|
+
test('complex transformation', () => {
|
|
179
|
+
const transformation = { a: { b: { c: transformationValue } } };
|
|
167
180
|
expect(validateRequestTransformation(transformation)).toStrictEqual(validationErrorWith({
|
|
168
181
|
parentPath: 'a.b.c',
|
|
169
182
|
invalidValue: transformationValue,
|
|
@@ -171,20 +184,20 @@ describe('validateRequestTransformation', function () {
|
|
|
171
184
|
}));
|
|
172
185
|
});
|
|
173
186
|
});
|
|
174
|
-
describe('special fields',
|
|
175
|
-
describe.each(['id', 'createdDate', 'updatedDate'])('%s',
|
|
176
|
-
|
|
187
|
+
describe('special fields', () => {
|
|
188
|
+
describe.each(['id', 'createdDate', 'updatedDate'])('%s', (specialField) => {
|
|
189
|
+
const transformationValue = `$[0].a.b.${specialField}`;
|
|
177
190
|
// eslint-disable-next-line max-len
|
|
178
|
-
|
|
179
|
-
test('simple transformation',
|
|
191
|
+
const expectedValidationMessage = `cannot refer to ${specialField} field, consider using _${specialField} instead`;
|
|
192
|
+
test('simple transformation', () => {
|
|
180
193
|
expect(validateRequestTransformation(transformationValue)).toStrictEqual(validationErrorWith({
|
|
181
194
|
parentPath: null,
|
|
182
195
|
invalidValue: transformationValue,
|
|
183
196
|
description: expectedValidationMessage,
|
|
184
197
|
}));
|
|
185
198
|
});
|
|
186
|
-
test('complex transformation',
|
|
187
|
-
|
|
199
|
+
test('complex transformation', () => {
|
|
200
|
+
const transformation = { a: { b: { c: transformationValue } } };
|
|
188
201
|
expect(validateRequestTransformation(transformation)).toStrictEqual(validationErrorWith({
|
|
189
202
|
parentPath: 'a.b.c',
|
|
190
203
|
invalidValue: transformationValue,
|
|
@@ -196,5 +209,4 @@ describe('validateRequestTransformation', function () {
|
|
|
196
209
|
});
|
|
197
210
|
});
|
|
198
211
|
});
|
|
199
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
200
212
|
//# sourceMappingURL=validateRequestTransformation.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateRequestTransformation.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/validations/validateRequestTransformation.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateRequestTransformation.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/validations/validateRequestTransformation.spec.ts"],"names":[],"mappings":"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"}
|