@wix/motion-edm-autogen-transformations-core 1.26.0 → 1.28.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
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _ = require("..");
|
|
5
5
|
var _corvidEntity = require("../lib/corvid-entity");
|
|
6
|
-
const
|
|
7
|
-
|
|
6
|
+
const {
|
|
7
|
+
toCorvidName,
|
|
8
|
+
fromCorvidName
|
|
9
|
+
} = _.corvidEntities;
|
|
8
10
|
describe('corvid entities transformers', () => {
|
|
9
11
|
describe('toCorvidName', () => {
|
|
10
12
|
test.each`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_","_corvidEntity","toCorvidName","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_","_corvidEntity","toCorvidName","fromCorvidName","corvidEntities","describe","test","each","name","expected","expect","toStrictEqual","aString","nonReservedName","reservedCorvidName","aRandomItemFrom","isReservedCorvidFieldName","toBeTruthy","toBeFalsy","commonReservedName","isReservedCommonFieldName"],"sources":["../../../src/__tests__/corvid-entity.spec.ts"],"sourcesContent":["import { aRandomItemFrom, aString } from '@wix/motion-runtime-test-context';\n\nimport { corvidEntities } from '..';\nimport {\n isReservedCommonFieldName,\n isReservedCorvidFieldName,\n} from '../lib/corvid-entity';\n\nconst { toCorvidName, fromCorvidName } = corvidEntities;\n\ndescribe('corvid entities transformers', () => {\n describe('toCorvidName', () => {\n test.each`\n name | expected\n ${'id'} | ${'_id'}\n ${'createdDate'} | ${'_createdDate'}\n ${'updatedDate'} | ${'_updatedDate'}\n `('adjusts $name to $expected', ({ name, expected }) => {\n expect(toCorvidName(name)).toStrictEqual(expected);\n });\n\n test('returns the given name when it should not be changed', () => {\n const name = aString();\n\n expect(toCorvidName(name)).toStrictEqual(name);\n });\n });\n\n describe('fromCorvidName', () => {\n test.each`\n name | expected\n ${'_id'} | ${'id'}\n ${'_createdDate'} | ${'createdDate'}\n ${'_updatedDate'} | ${'updatedDate'}\n `('adjusts $name to $expected', ({ name, expected }) => {\n expect(fromCorvidName(name)).toStrictEqual(expected);\n });\n\n test('returns the given name when it should not be changed', () => {\n const name = aString();\n\n expect(fromCorvidName(name)).toStrictEqual(name);\n });\n });\n\n describe('internal methods', () => {\n const nonReservedName = aString();\n\n describe('isReservedCorvidFieldName', () => {\n test('returns true if the provided name is a reserved Corvid field-name', () => {\n const reservedCorvidName = aRandomItemFrom([\n '_id',\n '_createdDate',\n '_updatedDate',\n ]);\n\n expect(isReservedCorvidFieldName(reservedCorvidName)).toBeTruthy();\n });\n\n test('returns false if the provided name is not a reserved common field-name', () => {\n expect(isReservedCorvidFieldName(nonReservedName)).toBeFalsy();\n });\n });\n\n describe('isReservedCommonFieldName', () => {\n test('returns true if the provided name is a reserved common field-name', () => {\n const commonReservedName = aRandomItemFrom([\n 'id',\n 'createdDate',\n 'updatedDate',\n ]);\n\n expect(isReservedCommonFieldName(commonReservedName)).toBeTruthy();\n });\n\n test('returns false if the provided name is not a reserved common field-name', () => {\n expect(isReservedCommonFieldName(nonReservedName)).toBeFalsy();\n });\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AAEA,IAAAC,CAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAKA,MAAM;EAAEG,YAAY;EAAEC;AAAe,CAAC,GAAGC,gBAAc;AAEvDC,QAAQ,CAAC,8BAA8B,EAAE,MAAM;EAC7CA,QAAQ,CAAC,cAAc,EAAE,MAAM;IAC7BC,IAAI,CAACC,IAAK;AACd;AACA,QAAQ,IAAK,eAAc,KAAM;AACjC,QAAQ,aAAc,MAAK,cAAe;AAC1C,QAAQ,aAAc,MAAK,cAAe;AAC1C,KAAK,CAAC,4BAA4B,EAAE,CAAC;MAAEC,IAAI;MAAEC;IAAS,CAAC,KAAK;MACtDC,MAAM,CAACR,YAAY,CAACM,IAAI,CAAC,CAAC,CAACG,aAAa,CAACF,QAAQ,CAAC;IACpD,CAAC,CAAC;IAEFH,IAAI,CAAC,sDAAsD,EAAE,MAAM;MACjE,MAAME,IAAI,GAAG,IAAAI,iCAAO,EAAC,CAAC;MAEtBF,MAAM,CAACR,YAAY,CAACM,IAAI,CAAC,CAAC,CAACG,aAAa,CAACH,IAAI,CAAC;IAChD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFH,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IAC/BC,IAAI,CAACC,IAAK;AACd;AACA,QAAQ,KAAM,eAAc,IAAK;AACjC,QAAQ,cAAe,MAAK,aAAc;AAC1C,QAAQ,cAAe,MAAK,aAAc;AAC1C,KAAK,CAAC,4BAA4B,EAAE,CAAC;MAAEC,IAAI;MAAEC;IAAS,CAAC,KAAK;MACtDC,MAAM,CAACP,cAAc,CAACK,IAAI,CAAC,CAAC,CAACG,aAAa,CAACF,QAAQ,CAAC;IACtD,CAAC,CAAC;IAEFH,IAAI,CAAC,sDAAsD,EAAE,MAAM;MACjE,MAAME,IAAI,GAAG,IAAAI,iCAAO,EAAC,CAAC;MAEtBF,MAAM,CAACP,cAAc,CAACK,IAAI,CAAC,CAAC,CAACG,aAAa,CAACH,IAAI,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFH,QAAQ,CAAC,kBAAkB,EAAE,MAAM;IACjC,MAAMQ,eAAe,GAAG,IAAAD,iCAAO,EAAC,CAAC;IAEjCP,QAAQ,CAAC,2BAA2B,EAAE,MAAM;MAC1CC,IAAI,CAAC,mEAAmE,EAAE,MAAM;QAC9E,MAAMQ,kBAAkB,GAAG,IAAAC,yCAAe,EAAC,CACzC,KAAK,EACL,cAAc,EACd,cAAc,CACf,CAAC;QAEFL,MAAM,CAAC,IAAAM,uCAAyB,EAACF,kBAAkB,CAAC,CAAC,CAACG,UAAU,CAAC,CAAC;MACpE,CAAC,CAAC;MAEFX,IAAI,CAAC,wEAAwE,EAAE,MAAM;QACnFI,MAAM,CAAC,IAAAM,uCAAyB,EAACH,eAAe,CAAC,CAAC,CAACK,SAAS,CAAC,CAAC;MAChE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFb,QAAQ,CAAC,2BAA2B,EAAE,MAAM;MAC1CC,IAAI,CAAC,mEAAmE,EAAE,MAAM;QAC9E,MAAMa,kBAAkB,GAAG,IAAAJ,yCAAe,EAAC,CACzC,IAAI,EACJ,aAAa,EACb,aAAa,CACd,CAAC;QAEFL,MAAM,CAAC,IAAAU,uCAAyB,EAACD,kBAAkB,CAAC,CAAC,CAACF,UAAU,CAAC,CAAC;MACpE,CAAC,CAAC;MAEFX,IAAI,CAAC,wEAAwE,EAAE,MAAM;QACnFI,MAAM,CAAC,IAAAU,uCAAyB,EAACP,eAAe,CAAC,CAAC,CAACK,SAAS,CAAC,CAAC;MAChE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -83,9 +83,7 @@ describe('reduceTransformation', () => {
|
|
|
83
83
|
expect(visitorCallback).toHaveBeenCalledWith(accumulator, 'a.e[0]', '$.ggg');
|
|
84
84
|
});
|
|
85
85
|
describe('spread operator', () => {
|
|
86
|
-
const
|
|
87
|
-
topLevelSpreadOperatorCallback = _times[0],
|
|
88
|
-
nestedSpreadOperatorCallback = _times[1];
|
|
86
|
+
const [topLevelSpreadOperatorCallback, nestedSpreadOperatorCallback] = (0, _lodash.times)(2, () => jest.fn());
|
|
89
87
|
const argumentExpression = '$[1].d.e.f';
|
|
90
88
|
const sibling = (0, _motionRuntimeTestContext.anObject)();
|
|
91
89
|
const siblingKeys = Object.keys(sibling);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_reduceTransformation","describe","visitorCallbackResult","aString","test","visitorCallback","jest","fn","mockReturnValueOnce","transformation","result","reduceTransformation","visitors","TopLevelSimpleTransformationExpression","expect","toHaveBeenCalledTimes","toHaveBeenCalledWith","toStrictEqual","TopLevelCustomFunctionExpression","transformationWithInvalidCustomFunctionExpression","TopLevelUnsupportedTransformationExpression","accumulator","anObject","a","b","c","d","e","NestedSimpleTransformationExpression","_times","times","topLevelSpreadOperatorCallback","nestedSpreadOperatorCallback","argumentExpression","sibling","siblingKeys","Object","keys","path","beforeEach","forEach","mock","mockClear","nestedOmitCallback","omitExpression","TopLevelSpreadExpression","NestedOmit","NestedSpreadExpression","not","toHaveBeenCalled","set","simpleTransformationCallback","anotherArgumentExpression","topLevelArgumentExpression","customFunctionExpressionCallback","customFunctionExpression","CustomFunctionExpression","invalidCustomFunctionExpression","nestedConstantExpressionCallback","undesiredVisitor","someConst","NestedConstantValue","value","countAccumulator","count","unsupportedTransformationValue","NestedUnsupportedTransformationExpression","TopLevelMapArrayItems","withItemTransformation","itemTransformation","MapArrayItems","nestedSimpleTransformationVisitor","yyy","zzz","fieldsToOmit","sourcePathExpression","TopLevelOmit","each","visitorType","errorMessage","error","Error","mockImplementationOnce","toThrow"],"sources":["../../../src/__tests__/reduceTransformation.spec.ts"],"sourcesContent":["import { anObject, aString } from '@wix/motion-runtime-test-context';\nimport { set, times } from 'lodash';\n\nimport { reduceTransformation } from '../lib/transformations/reduceTransformation';\n\ndescribe('reduceTransformation', () => {\n describe('simple transformations', () => {\n const visitorCallbackResult = aString();\n\n test('traverses a simple transformation', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n const transformation = '$.a.b.c';\n\n const result = reduceTransformation(transformation, {\n visitors: {\n TopLevelSimpleTransformationExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith('$.a.b.c');\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n\n describe('custom-functions', () => {\n test('traverses a valid custom-function expression', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n const transformation = '#someCustomFunction($.a.b.c,someOtherArg)';\n\n const result = reduceTransformation(transformation, {\n visitors: {\n TopLevelCustomFunctionExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n 'someCustomFunction',\n ['$.a.b.c', 'someOtherArg'],\n transformation,\n );\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n\n test('does not fail for invalid custom-function expression', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n const transformationWithInvalidCustomFunctionExpression = '#($.a.b.c)';\n\n const result = reduceTransformation(\n transformationWithInvalidCustomFunctionExpression,\n {\n visitors: {\n TopLevelCustomFunctionExpression: visitorCallback,\n },\n },\n );\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n null,\n null,\n transformationWithInvalidCustomFunctionExpression,\n );\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n });\n\n // TODO: replace with returning the invalid value, for constant-transformation\n test('invokes the TopLevelUnsupportedTransformationExpression otherwise', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n\n const transformation = aString();\n\n const result = reduceTransformation(transformation, {\n visitors: {\n TopLevelUnsupportedTransformationExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(transformation);\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n });\n\n describe('complex transformation', () => {\n const accumulator = anObject();\n\n test('traverses all string nodes that are transformation expressions', () => {\n const visitorCallback = jest.fn();\n\n const transformation = {\n a: {\n b: { c: '$[0].ddd.eee.ffff' },\n d: 2,\n e: ['$.ggg', 3, 4, 5],\n },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedSimpleTransformationExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(2);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b.c',\n '$[0].ddd.eee.ffff',\n );\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.e[0]',\n '$.ggg',\n );\n });\n\n describe('spread operator', () => {\n const [topLevelSpreadOperatorCallback, nestedSpreadOperatorCallback] =\n times(2, () => jest.fn());\n const argumentExpression = '$[1].d.e.f';\n const sibling = anObject();\n const siblingKeys = Object.keys(sibling);\n const path = `${siblingKeys[0]}.b.c`;\n\n beforeEach(() => {\n [topLevelSpreadOperatorCallback, nestedSpreadOperatorCallback].forEach(\n (mock) => mock.mockClear(),\n );\n });\n\n test('invokes the spread operator visitor prior to its children', () => {\n const nestedOmitCallback = jest.fn();\n const omitExpression = {\n '@source': argumentExpression,\n '@omit': times(2, () => aString()),\n };\n const transformation = { '*': omitExpression, ...sibling };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n NestedOmit: nestedOmitCallback,\n },\n });\n\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n omitExpression,\n siblingKeys,\n );\n\n // expect(nestedOmitCallback).toHaveBeenCalled();\n });\n\n test('traverses top-level spread-operator transformation nodes', () => {\n const transformation = { '*': argumentExpression, ...sibling };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n },\n });\n\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n argumentExpression,\n siblingKeys,\n );\n expect(nestedSpreadOperatorCallback).not.toHaveBeenCalled();\n });\n\n test('traverses nested spread-operator transformation nodes', () => {\n const transformation = set({}, path, {\n '*': argumentExpression,\n ...sibling,\n });\n const simpleTransformationCallback = jest.fn();\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(topLevelSpreadOperatorCallback).not.toHaveBeenCalled();\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n argumentExpression,\n siblingKeys,\n );\n });\n\n test('traverses items within an array of a spread-operator transformation nodes', () => {\n const simpleTransformationCallback = jest.fn();\n const transformation = set({}, path, {\n '*': ['$[0].x.y.z', '$[1].d.e.f'],\n ...sibling,\n });\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledTimes(2);\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$[0].x.y.z',\n siblingKeys,\n );\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$[1].d.e.f',\n siblingKeys,\n );\n\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n });\n\n test('sets the path to be the parent of the spread operator', () => {\n const anotherArgumentExpression = '$[0].x.y.z';\n const topLevelArgumentExpression = '$[1]';\n const transformation = set(\n { '*': topLevelArgumentExpression, ...sibling },\n path,\n {\n '*': [anotherArgumentExpression, argumentExpression],\n },\n );\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n },\n });\n\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledTimes(2);\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n argumentExpression,\n [],\n );\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n anotherArgumentExpression,\n [],\n );\n\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n topLevelArgumentExpression,\n siblingKeys,\n );\n });\n });\n\n describe('custom functions', () => {\n test('traverses custom-function nodes', () => {\n const customFunctionExpressionCallback = jest.fn();\n const simpleTransformationCallback = jest.fn();\n const customFunctionExpression =\n '#someCustomFunction($[0].someCustomFunction)';\n const transformation = {\n a: {\n b: customFunctionExpression,\n },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n CustomFunctionExpression: customFunctionExpressionCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(customFunctionExpressionCallback).toHaveBeenCalledTimes(1);\n expect(customFunctionExpressionCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b',\n 'someCustomFunction',\n ['$[0].someCustomFunction'],\n customFunctionExpression,\n );\n\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n });\n\n test('does not fail on invalid custom-function nodes', () => {\n const customFunctionExpressionCallback = jest.fn();\n const simpleTransformationCallback = jest.fn();\n const invalidCustomFunctionExpression = '#($[0].someCustomFunction)';\n\n const transformation = {\n a: {\n b: invalidCustomFunctionExpression,\n },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n CustomFunctionExpression: customFunctionExpressionCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(customFunctionExpressionCallback).toHaveBeenCalledTimes(1);\n expect(customFunctionExpressionCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b',\n null,\n null,\n invalidCustomFunctionExpression,\n );\n\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n });\n });\n\n describe('constant annotation', () => {\n test('traverses a nested constant annotation expression', () => {\n const nestedConstantExpressionCallback = jest.fn();\n const undesiredVisitor = jest.fn();\n const transformation = {\n a: { b: { c: { '@constant': { someConst: '$.value123' } } } },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedConstantValue: nestedConstantExpressionCallback,\n NestedSimpleTransformationExpression: undesiredVisitor,\n },\n });\n\n expect(nestedConstantExpressionCallback).toHaveBeenCalledTimes(1);\n expect(nestedConstantExpressionCallback).toHaveBeenCalledWith({\n accumulator,\n path: 'a.b.c',\n value: { someConst: '$.value123' },\n });\n expect(undesiredVisitor).not.toHaveBeenCalled();\n });\n });\n\n test('returns the accumulator with changes made to it', () => {\n const countAccumulator = { count: 0 };\n\n const transformation = {\n a: {\n b: 1,\n '*': '$[0].a.b.c',\n },\n };\n\n const result = reduceTransformation(transformation, {\n accumulator: countAccumulator,\n visitors: {\n NestedSpreadExpression: () => {\n countAccumulator.count += 1;\n },\n },\n });\n\n expect(result).toStrictEqual({ count: 1 });\n });\n\n // TODO: replace with returning the invalid value, for constant-transformation\n test('invokes the NestedUnsupportedTransformationExpression otherwise', () => {\n const visitorCallback = jest.fn();\n const unsupportedTransformationValue = aString();\n const transformation = {\n a: { b: { c: unsupportedTransformationValue } },\n };\n\n reduceTransformation(transformation, {\n visitors: {\n NestedUnsupportedTransformationExpression: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b.c',\n unsupportedTransformationValue,\n );\n });\n });\n\n describe('mapping array items', () => {\n const visitorCallback = jest.fn();\n\n beforeEach(() => {\n visitorCallback.mockClear();\n });\n\n describe('top-level transformation', () => {\n test('invokes the TopLevelMapArrayItems visitor', () => {\n const transformation = {\n '@path': '$.d.e.f',\n '@itemTransformation': '$.g.h.i',\n };\n\n reduceTransformation(transformation, {\n visitors: {\n TopLevelMapArrayItems: visitorCallback,\n },\n accumulator: {},\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith('$.d.e.f', '$.g.h.i');\n });\n });\n\n describe('nested transformation', () => {\n const accumulator = {};\n const path = 'a.b.c';\n\n const withItemTransformation = (itemTransformation) =>\n set({}, path, {\n '@path': '$.d.e.f',\n '@itemTransformation': itemTransformation,\n });\n\n describe('simple item-transformation', () => {\n test('invokes the MapArrayItems visitor', () => {\n reduceTransformation(withItemTransformation('$.g.h.i'), {\n visitors: {\n MapArrayItems: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$.d.e.f',\n '$.g.h.i',\n );\n });\n });\n\n describe('complex item-transformation', () => {\n test('invokes the MapArrayItems visitor', () => {\n const nestedSimpleTransformationVisitor = jest.fn();\n\n reduceTransformation(\n withItemTransformation({ yyy: '$.g.h.i', zzz: '$.j.k.l' }),\n {\n visitors: {\n MapArrayItems: visitorCallback,\n NestedSimpleTransformationExpression:\n nestedSimpleTransformationVisitor,\n },\n accumulator,\n },\n );\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$.d.e.f',\n {\n yyy: '$.g.h.i',\n zzz: '$.j.k.l',\n },\n );\n expect(nestedSimpleTransformationVisitor).not.toHaveBeenCalled();\n });\n });\n });\n });\n\n describe('omit notation', () => {\n const fieldsToOmit = times(2, () => aString());\n const visitorCallback = jest.fn();\n const sourcePathExpression = '$.d.e.f';\n const path = 'a.b.c';\n const accumulator = {};\n\n beforeEach(() => {\n visitorCallback.mockClear();\n });\n\n describe('top-level transformation', () => {\n test('invokes the TopLevelOmit visitor', () => {\n const transformation = {\n '@source': sourcePathExpression,\n '@omit': fieldsToOmit,\n };\n\n reduceTransformation(transformation, {\n visitors: {\n TopLevelOmit: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n sourcePathExpression,\n fieldsToOmit,\n );\n });\n });\n\n describe('nested transformation', () => {\n test('invokes the NestedOmit visitor', () => {\n const transformation = set({}, path, {\n '@source': sourcePathExpression,\n '@omit': fieldsToOmit,\n });\n\n reduceTransformation(transformation, {\n visitors: {\n NestedOmit: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n sourcePathExpression,\n fieldsToOmit,\n );\n });\n });\n });\n\n describe('error handling', () => {\n describe.each`\n transformation | visitorType\n ${'$.a.b.c'} | ${'TopLevelSimpleTransformationExpression'}\n ${'#someCustomFunc($.a.b.c)'} | ${'TopLevelCustomFunctionExpression'}\n ${{ a: { b: { c: 'unsupported transformation' } } }} | ${'NestedUnsupportedTransformationExpression'}\n ${{ a: { b: { c: '$.d.e.f' } } }} | ${'NestedSimpleTransformationExpression'}\n ${{ '*': '$.d.e.f' }} | ${'TopLevelSpreadExpression'}\n ${{ a: { '*': '$.d.e.f' } }} | ${'NestedSpreadExpression'}\n ${{ a: { b: '#someCustomFunction($.d.e.f)' } }} | ${'CustomFunctionExpression'}\n `('$visitor visitor', ({ transformation, visitorType }) => {\n test(`rethrows the error thrown by the ${visitorType} visitor`, () => {\n const errorMessage = aString();\n const error = new Error(errorMessage);\n const visitorCallback = jest.fn().mockImplementationOnce(() => {\n throw error;\n });\n\n expect(() =>\n reduceTransformation(transformation, {\n visitors: {\n [visitorType]: visitorCallback,\n },\n }),\n ).toThrow(error);\n });\n\n test(`does not fail when the ${visitorType} visitor is missing`, () => {\n expect(() =>\n reduceTransformation(transformation, {\n visitors: {\n [visitorType]: null,\n },\n }),\n ).not.toThrow();\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_reduceTransformation","describe","visitorCallbackResult","aString","test","visitorCallback","jest","fn","mockReturnValueOnce","transformation","result","reduceTransformation","visitors","TopLevelSimpleTransformationExpression","expect","toHaveBeenCalledTimes","toHaveBeenCalledWith","toStrictEqual","TopLevelCustomFunctionExpression","transformationWithInvalidCustomFunctionExpression","TopLevelUnsupportedTransformationExpression","accumulator","anObject","a","b","c","d","e","NestedSimpleTransformationExpression","topLevelSpreadOperatorCallback","nestedSpreadOperatorCallback","times","argumentExpression","sibling","siblingKeys","Object","keys","path","beforeEach","forEach","mock","mockClear","nestedOmitCallback","omitExpression","TopLevelSpreadExpression","NestedOmit","NestedSpreadExpression","not","toHaveBeenCalled","set","simpleTransformationCallback","anotherArgumentExpression","topLevelArgumentExpression","customFunctionExpressionCallback","customFunctionExpression","CustomFunctionExpression","invalidCustomFunctionExpression","nestedConstantExpressionCallback","undesiredVisitor","someConst","NestedConstantValue","value","countAccumulator","count","unsupportedTransformationValue","NestedUnsupportedTransformationExpression","TopLevelMapArrayItems","withItemTransformation","itemTransformation","MapArrayItems","nestedSimpleTransformationVisitor","yyy","zzz","fieldsToOmit","sourcePathExpression","TopLevelOmit","each","visitorType","errorMessage","error","Error","mockImplementationOnce","toThrow"],"sources":["../../../src/__tests__/reduceTransformation.spec.ts"],"sourcesContent":["import { anObject, aString } from '@wix/motion-runtime-test-context';\nimport { set, times } from 'lodash';\n\nimport { reduceTransformation } from '../lib/transformations/reduceTransformation';\n\ndescribe('reduceTransformation', () => {\n describe('simple transformations', () => {\n const visitorCallbackResult = aString();\n\n test('traverses a simple transformation', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n const transformation = '$.a.b.c';\n\n const result = reduceTransformation(transformation, {\n visitors: {\n TopLevelSimpleTransformationExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith('$.a.b.c');\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n\n describe('custom-functions', () => {\n test('traverses a valid custom-function expression', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n const transformation = '#someCustomFunction($.a.b.c,someOtherArg)';\n\n const result = reduceTransformation(transformation, {\n visitors: {\n TopLevelCustomFunctionExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n 'someCustomFunction',\n ['$.a.b.c', 'someOtherArg'],\n transformation,\n );\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n\n test('does not fail for invalid custom-function expression', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n const transformationWithInvalidCustomFunctionExpression = '#($.a.b.c)';\n\n const result = reduceTransformation(\n transformationWithInvalidCustomFunctionExpression,\n {\n visitors: {\n TopLevelCustomFunctionExpression: visitorCallback,\n },\n },\n );\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n null,\n null,\n transformationWithInvalidCustomFunctionExpression,\n );\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n });\n\n // TODO: replace with returning the invalid value, for constant-transformation\n test('invokes the TopLevelUnsupportedTransformationExpression otherwise', () => {\n const visitorCallback = jest\n .fn()\n .mockReturnValueOnce(visitorCallbackResult);\n\n const transformation = aString();\n\n const result = reduceTransformation(transformation, {\n visitors: {\n TopLevelUnsupportedTransformationExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(transformation);\n expect(result).toStrictEqual(visitorCallbackResult);\n });\n });\n\n describe('complex transformation', () => {\n const accumulator = anObject();\n\n test('traverses all string nodes that are transformation expressions', () => {\n const visitorCallback = jest.fn();\n\n const transformation = {\n a: {\n b: { c: '$[0].ddd.eee.ffff' },\n d: 2,\n e: ['$.ggg', 3, 4, 5],\n },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedSimpleTransformationExpression: visitorCallback,\n },\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(2);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b.c',\n '$[0].ddd.eee.ffff',\n );\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.e[0]',\n '$.ggg',\n );\n });\n\n describe('spread operator', () => {\n const [topLevelSpreadOperatorCallback, nestedSpreadOperatorCallback] =\n times(2, () => jest.fn());\n const argumentExpression = '$[1].d.e.f';\n const sibling = anObject();\n const siblingKeys = Object.keys(sibling);\n const path = `${siblingKeys[0]}.b.c`;\n\n beforeEach(() => {\n [topLevelSpreadOperatorCallback, nestedSpreadOperatorCallback].forEach(\n (mock) => mock.mockClear(),\n );\n });\n\n test('invokes the spread operator visitor prior to its children', () => {\n const nestedOmitCallback = jest.fn();\n const omitExpression = {\n '@source': argumentExpression,\n '@omit': times(2, () => aString()),\n };\n const transformation = { '*': omitExpression, ...sibling };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n NestedOmit: nestedOmitCallback,\n },\n });\n\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n omitExpression,\n siblingKeys,\n );\n\n // expect(nestedOmitCallback).toHaveBeenCalled();\n });\n\n test('traverses top-level spread-operator transformation nodes', () => {\n const transformation = { '*': argumentExpression, ...sibling };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n },\n });\n\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n argumentExpression,\n siblingKeys,\n );\n expect(nestedSpreadOperatorCallback).not.toHaveBeenCalled();\n });\n\n test('traverses nested spread-operator transformation nodes', () => {\n const transformation = set({}, path, {\n '*': argumentExpression,\n ...sibling,\n });\n const simpleTransformationCallback = jest.fn();\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(topLevelSpreadOperatorCallback).not.toHaveBeenCalled();\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n argumentExpression,\n siblingKeys,\n );\n });\n\n test('traverses items within an array of a spread-operator transformation nodes', () => {\n const simpleTransformationCallback = jest.fn();\n const transformation = set({}, path, {\n '*': ['$[0].x.y.z', '$[1].d.e.f'],\n ...sibling,\n });\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledTimes(2);\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$[0].x.y.z',\n siblingKeys,\n );\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$[1].d.e.f',\n siblingKeys,\n );\n\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n });\n\n test('sets the path to be the parent of the spread operator', () => {\n const anotherArgumentExpression = '$[0].x.y.z';\n const topLevelArgumentExpression = '$[1]';\n const transformation = set(\n { '*': topLevelArgumentExpression, ...sibling },\n path,\n {\n '*': [anotherArgumentExpression, argumentExpression],\n },\n );\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedSpreadExpression: nestedSpreadOperatorCallback,\n TopLevelSpreadExpression: topLevelSpreadOperatorCallback,\n },\n });\n\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledTimes(2);\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n argumentExpression,\n [],\n );\n expect(nestedSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n anotherArgumentExpression,\n [],\n );\n\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledTimes(1);\n expect(topLevelSpreadOperatorCallback).toHaveBeenCalledWith(\n accumulator,\n topLevelArgumentExpression,\n siblingKeys,\n );\n });\n });\n\n describe('custom functions', () => {\n test('traverses custom-function nodes', () => {\n const customFunctionExpressionCallback = jest.fn();\n const simpleTransformationCallback = jest.fn();\n const customFunctionExpression =\n '#someCustomFunction($[0].someCustomFunction)';\n const transformation = {\n a: {\n b: customFunctionExpression,\n },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n CustomFunctionExpression: customFunctionExpressionCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(customFunctionExpressionCallback).toHaveBeenCalledTimes(1);\n expect(customFunctionExpressionCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b',\n 'someCustomFunction',\n ['$[0].someCustomFunction'],\n customFunctionExpression,\n );\n\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n });\n\n test('does not fail on invalid custom-function nodes', () => {\n const customFunctionExpressionCallback = jest.fn();\n const simpleTransformationCallback = jest.fn();\n const invalidCustomFunctionExpression = '#($[0].someCustomFunction)';\n\n const transformation = {\n a: {\n b: invalidCustomFunctionExpression,\n },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n CustomFunctionExpression: customFunctionExpressionCallback,\n NestedSimpleTransformationExpression: simpleTransformationCallback,\n },\n });\n\n expect(customFunctionExpressionCallback).toHaveBeenCalledTimes(1);\n expect(customFunctionExpressionCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b',\n null,\n null,\n invalidCustomFunctionExpression,\n );\n\n expect(simpleTransformationCallback).not.toHaveBeenCalled();\n });\n });\n\n describe('constant annotation', () => {\n test('traverses a nested constant annotation expression', () => {\n const nestedConstantExpressionCallback = jest.fn();\n const undesiredVisitor = jest.fn();\n const transformation = {\n a: { b: { c: { '@constant': { someConst: '$.value123' } } } },\n };\n\n reduceTransformation(transformation, {\n accumulator,\n visitors: {\n NestedConstantValue: nestedConstantExpressionCallback,\n NestedSimpleTransformationExpression: undesiredVisitor,\n },\n });\n\n expect(nestedConstantExpressionCallback).toHaveBeenCalledTimes(1);\n expect(nestedConstantExpressionCallback).toHaveBeenCalledWith({\n accumulator,\n path: 'a.b.c',\n value: { someConst: '$.value123' },\n });\n expect(undesiredVisitor).not.toHaveBeenCalled();\n });\n });\n\n test('returns the accumulator with changes made to it', () => {\n const countAccumulator = { count: 0 };\n\n const transformation = {\n a: {\n b: 1,\n '*': '$[0].a.b.c',\n },\n };\n\n const result = reduceTransformation(transformation, {\n accumulator: countAccumulator,\n visitors: {\n NestedSpreadExpression: () => {\n countAccumulator.count += 1;\n },\n },\n });\n\n expect(result).toStrictEqual({ count: 1 });\n });\n\n // TODO: replace with returning the invalid value, for constant-transformation\n test('invokes the NestedUnsupportedTransformationExpression otherwise', () => {\n const visitorCallback = jest.fn();\n const unsupportedTransformationValue = aString();\n const transformation = {\n a: { b: { c: unsupportedTransformationValue } },\n };\n\n reduceTransformation(transformation, {\n visitors: {\n NestedUnsupportedTransformationExpression: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n 'a.b.c',\n unsupportedTransformationValue,\n );\n });\n });\n\n describe('mapping array items', () => {\n const visitorCallback = jest.fn();\n\n beforeEach(() => {\n visitorCallback.mockClear();\n });\n\n describe('top-level transformation', () => {\n test('invokes the TopLevelMapArrayItems visitor', () => {\n const transformation = {\n '@path': '$.d.e.f',\n '@itemTransformation': '$.g.h.i',\n };\n\n reduceTransformation(transformation, {\n visitors: {\n TopLevelMapArrayItems: visitorCallback,\n },\n accumulator: {},\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith('$.d.e.f', '$.g.h.i');\n });\n });\n\n describe('nested transformation', () => {\n const accumulator = {};\n const path = 'a.b.c';\n\n const withItemTransformation = (itemTransformation) =>\n set({}, path, {\n '@path': '$.d.e.f',\n '@itemTransformation': itemTransformation,\n });\n\n describe('simple item-transformation', () => {\n test('invokes the MapArrayItems visitor', () => {\n reduceTransformation(withItemTransformation('$.g.h.i'), {\n visitors: {\n MapArrayItems: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$.d.e.f',\n '$.g.h.i',\n );\n });\n });\n\n describe('complex item-transformation', () => {\n test('invokes the MapArrayItems visitor', () => {\n const nestedSimpleTransformationVisitor = jest.fn();\n\n reduceTransformation(\n withItemTransformation({ yyy: '$.g.h.i', zzz: '$.j.k.l' }),\n {\n visitors: {\n MapArrayItems: visitorCallback,\n NestedSimpleTransformationExpression:\n nestedSimpleTransformationVisitor,\n },\n accumulator,\n },\n );\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n '$.d.e.f',\n {\n yyy: '$.g.h.i',\n zzz: '$.j.k.l',\n },\n );\n expect(nestedSimpleTransformationVisitor).not.toHaveBeenCalled();\n });\n });\n });\n });\n\n describe('omit notation', () => {\n const fieldsToOmit = times(2, () => aString());\n const visitorCallback = jest.fn();\n const sourcePathExpression = '$.d.e.f';\n const path = 'a.b.c';\n const accumulator = {};\n\n beforeEach(() => {\n visitorCallback.mockClear();\n });\n\n describe('top-level transformation', () => {\n test('invokes the TopLevelOmit visitor', () => {\n const transformation = {\n '@source': sourcePathExpression,\n '@omit': fieldsToOmit,\n };\n\n reduceTransformation(transformation, {\n visitors: {\n TopLevelOmit: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n sourcePathExpression,\n fieldsToOmit,\n );\n });\n });\n\n describe('nested transformation', () => {\n test('invokes the NestedOmit visitor', () => {\n const transformation = set({}, path, {\n '@source': sourcePathExpression,\n '@omit': fieldsToOmit,\n });\n\n reduceTransformation(transformation, {\n visitors: {\n NestedOmit: visitorCallback,\n },\n accumulator,\n });\n\n expect(visitorCallback).toHaveBeenCalledTimes(1);\n expect(visitorCallback).toHaveBeenCalledWith(\n accumulator,\n path,\n sourcePathExpression,\n fieldsToOmit,\n );\n });\n });\n });\n\n describe('error handling', () => {\n describe.each`\n transformation | visitorType\n ${'$.a.b.c'} | ${'TopLevelSimpleTransformationExpression'}\n ${'#someCustomFunc($.a.b.c)'} | ${'TopLevelCustomFunctionExpression'}\n ${{ a: { b: { c: 'unsupported transformation' } } }} | ${'NestedUnsupportedTransformationExpression'}\n ${{ a: { b: { c: '$.d.e.f' } } }} | ${'NestedSimpleTransformationExpression'}\n ${{ '*': '$.d.e.f' }} | ${'TopLevelSpreadExpression'}\n ${{ a: { '*': '$.d.e.f' } }} | ${'NestedSpreadExpression'}\n ${{ a: { b: '#someCustomFunction($.d.e.f)' } }} | ${'CustomFunctionExpression'}\n `('$visitor visitor', ({ transformation, visitorType }) => {\n test(`rethrows the error thrown by the ${visitorType} visitor`, () => {\n const errorMessage = aString();\n const error = new Error(errorMessage);\n const visitorCallback = jest.fn().mockImplementationOnce(() => {\n throw error;\n });\n\n expect(() =>\n reduceTransformation(transformation, {\n visitors: {\n [visitorType]: visitorCallback,\n },\n }),\n ).toThrow(error);\n });\n\n test(`does not fail when the ${visitorType} visitor is missing`, () => {\n expect(() =>\n reduceTransformation(transformation, {\n visitors: {\n [visitorType]: null,\n },\n }),\n ).not.toThrow();\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../../..");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const {
|
|
7
|
+
create: {
|
|
8
|
+
buildRequestTransformation,
|
|
9
|
+
buildResponseTransformation
|
|
10
|
+
}
|
|
11
|
+
} = _.preset;
|
|
9
12
|
describe('create-method transformations', () => {
|
|
10
13
|
describe('buildRequestTransformation', () => {
|
|
11
14
|
test('creates a transformation that maps the first argument into requestMessageEntityPath', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","create","buildRequestTransformation","buildResponseTransformation","preset","describe","test","requestMessageEntityPath","aString","tranformationObject","expect","toStrictEqual","entityPathSegments","times","join","responseMessageResultPath","tranformationString"],"sources":["../../../../../src/__tests__/transformations/preset/create-transformation.spec.ts"],"sourcesContent":["import { aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { preset } from '../../..';\n\nconst {\n create: { buildRequestTransformation, buildResponseTransformation },\n} = preset;\n\ndescribe('create-method transformations', () => {\n describe('buildRequestTransformation', () => {\n test('creates a transformation that maps the first argument into requestMessageEntityPath', () => {\n const requestMessageEntityPath = aString();\n\n const tranformationObject = buildRequestTransformation({\n requestMessageEntityPath,\n });\n\n expect(tranformationObject).toStrictEqual({\n [requestMessageEntityPath]: '$[0]',\n });\n });\n\n test('supports nested paths', () => {\n // @ts-expect-error\n const entityPathSegments = times(2, aString);\n const requestMessageEntityPath = entityPathSegments.join('.');\n\n const tranformationObject = buildRequestTransformation({\n requestMessageEntityPath,\n });\n\n expect(tranformationObject).toStrictEqual({\n [entityPathSegments[0]]: { [entityPathSegments[1]]: '$[0]' },\n });\n });\n });\n\n describe('buildResponseTransformation', () => {\n test('unwraps the value of the provided property-path', () => {\n const responseMessageResultPath = aString();\n\n const tranformationString = buildResponseTransformation({\n responseMessageResultPath,\n });\n\n expect(tranformationString).toStrictEqual(\n `$.${responseMessageResultPath}`,\n );\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,CAAA,GAAAF,OAAA;AAEA,MAAM;EACJG,MAAM,EAAE;IAAEC,0BAA0B;IAAEC;EAA4B;AACpE,CAAC,GAAGC,QAAM;AAEVC,QAAQ,CAAC,+BAA+B,EAAE,MAAM;EAC9CA,QAAQ,CAAC,4BAA4B,EAAE,MAAM;IAC3CC,IAAI,CAAC,qFAAqF,EAAE,MAAM;MAChG,MAAMC,wBAAwB,GAAG,IAAAC,iCAAO,EAAC,CAAC;MAE1C,MAAMC,mBAAmB,GAAGP,0BAA0B,CAAC;QACrDK;MACF,CAAC,CAAC;MAEFG,MAAM,CAACD,mBAAmB,CAAC,CAACE,aAAa,CAAC;QACxC,CAACJ,wBAAwB,GAAG;MAC9B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFD,IAAI,CAAC,uBAAuB,EAAE,MAAM;MAClC;MACA,MAAMM,kBAAkB,GAAG,IAAAC,aAAK,EAAC,CAAC,EAAEL,iCAAO,CAAC;MAC5C,MAAMD,wBAAwB,GAAGK,kBAAkB,CAACE,IAAI,CAAC,GAAG,CAAC;MAE7D,MAAML,mBAAmB,GAAGP,0BAA0B,CAAC;QACrDK;MACF,CAAC,CAAC;MAEFG,MAAM,CAACD,mBAAmB,CAAC,CAACE,aAAa,CAAC;QACxC,CAACC,kBAAkB,CAAC,CAAC,CAAC,GAAG;UAAE,CAACA,kBAAkB,CAAC,CAAC,CAAC,GAAG;QAAO;MAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFP,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC5CC,IAAI,CAAC,iDAAiD,EAAE,MAAM;MAC5D,MAAMS,yBAAyB,GAAG,IAAAP,iCAAO,EAAC,CAAC;MAE3C,MAAMQ,mBAAmB,GAAGb,2BAA2B,CAAC;QACtDY;MACF,CAAC,CAAC;MAEFL,MAAM,CAACM,mBAAmB,CAAC,CAACL,aAAa,CACtC,KAAII,yBAA0B,EACjC,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,10 +3,15 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../../..");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const {
|
|
7
|
+
RESPONSE_OBJECT_UNCHANGED
|
|
8
|
+
} = _.transformations;
|
|
9
|
+
const {
|
|
10
|
+
delete: {
|
|
11
|
+
buildRequestTransformation,
|
|
12
|
+
buildResponseTransformation
|
|
13
|
+
}
|
|
14
|
+
} = _.preset;
|
|
10
15
|
describe('delete-method transformations', () => {
|
|
11
16
|
describe('buildRequestTransformation', () => {
|
|
12
17
|
const requestMessageIdentifierPath = (0, _motionRuntimeTestContext.aString)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","RESPONSE_OBJECT_UNCHANGED","transformations","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","RESPONSE_OBJECT_UNCHANGED","transformations","delete","buildRequestTransformation","buildResponseTransformation","preset","describe","requestMessageIdentifierPath","aString","test","transformationObject","expect","toStrictEqual","requestMessageOptionsPath","sharedPath","identifierPathSegment","idPathSegments","times","optionsPathSegments","join","trasformationString"],"sources":["../../../../../src/__tests__/transformations/preset/delete-transformation.spec.ts"],"sourcesContent":["import { aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { preset, transformations } from '../../..';\n\nconst { RESPONSE_OBJECT_UNCHANGED } = transformations;\nconst {\n delete: { buildRequestTransformation, buildResponseTransformation },\n} = preset;\n\ndescribe('delete-method transformations', () => {\n describe('buildRequestTransformation', () => {\n const requestMessageIdentifierPath = aString();\n\n test('creates a transformation that maps the first argument into requestMessageIdentifierPath', () => {\n const transformationObject = buildRequestTransformation({\n requestMessageIdentifierPath,\n });\n\n expect(transformationObject).toStrictEqual({\n [requestMessageIdentifierPath]: '$[0]',\n });\n });\n\n test(`creates a transformation that maps the 2nd argument into requestMessageOptionsPath when provided`, () => {\n const requestMessageOptionsPath = aString();\n const transformationObject = buildRequestTransformation({\n requestMessageIdentifierPath,\n requestMessageOptionsPath,\n });\n\n expect(transformationObject).toStrictEqual({\n [requestMessageIdentifierPath]: '$[0]',\n [requestMessageOptionsPath]: '$[1]',\n });\n });\n\n test('supports shared paths for requestMessageIdentifierPath and requestMessageOptionsPath', () => {\n const sharedPath = aString();\n const identifierPathSegment = aString();\n const transformationObject = buildRequestTransformation({\n requestMessageIdentifierPath: `${sharedPath}.${identifierPathSegment}`,\n requestMessageOptionsPath: sharedPath,\n });\n\n expect(transformationObject).toStrictEqual({\n [sharedPath]: { [identifierPathSegment]: '$[0]', '*': '$[1]' },\n });\n });\n\n test('supports nested paths', () => {\n // @ts-expect-error\n const idPathSegments = times(2, aString);\n // @ts-expect-error\n const optionsPathSegments = times(2, aString);\n\n const transformationObject = buildRequestTransformation({\n requestMessageIdentifierPath: idPathSegments.join('.'),\n requestMessageOptionsPath: optionsPathSegments.join('.'),\n });\n\n expect(transformationObject).toStrictEqual({\n [idPathSegments[0]]: { [idPathSegments[1]]: '$[0]' },\n [optionsPathSegments[0]]: { [optionsPathSegments[1]]: '$[1]' },\n });\n });\n });\n\n describe('buildResponseTransformation', () => {\n test('returns the identity transformation', () => {\n const trasformationString = buildResponseTransformation();\n\n expect(trasformationString).toStrictEqual(RESPONSE_OBJECT_UNCHANGED);\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,CAAA,GAAAF,OAAA;AAEA,MAAM;EAAEG;AAA0B,CAAC,GAAGC,iBAAe;AACrD,MAAM;EACJC,MAAM,EAAE;IAAEC,0BAA0B;IAAEC;EAA4B;AACpE,CAAC,GAAGC,QAAM;AAEVC,QAAQ,CAAC,+BAA+B,EAAE,MAAM;EAC9CA,QAAQ,CAAC,4BAA4B,EAAE,MAAM;IAC3C,MAAMC,4BAA4B,GAAG,IAAAC,iCAAO,EAAC,CAAC;IAE9CC,IAAI,CAAC,yFAAyF,EAAE,MAAM;MACpG,MAAMC,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDI;MACF,CAAC,CAAC;MAEFI,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACL,4BAA4B,GAAG;MAClC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFE,IAAI,CAAE,kGAAiG,EAAE,MAAM;MAC7G,MAAMI,yBAAyB,GAAG,IAAAL,iCAAO,EAAC,CAAC;MAC3C,MAAME,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDI,4BAA4B;QAC5BM;MACF,CAAC,CAAC;MAEFF,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACL,4BAA4B,GAAG,MAAM;QACtC,CAACM,yBAAyB,GAAG;MAC/B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFJ,IAAI,CAAC,sFAAsF,EAAE,MAAM;MACjG,MAAMK,UAAU,GAAG,IAAAN,iCAAO,EAAC,CAAC;MAC5B,MAAMO,qBAAqB,GAAG,IAAAP,iCAAO,EAAC,CAAC;MACvC,MAAME,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDI,4BAA4B,EAAG,GAAEO,UAAW,IAAGC,qBAAsB,EAAC;QACtEF,yBAAyB,EAAEC;MAC7B,CAAC,CAAC;MAEFH,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACE,UAAU,GAAG;UAAE,CAACC,qBAAqB,GAAG,MAAM;UAAE,GAAG,EAAE;QAAO;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFN,IAAI,CAAC,uBAAuB,EAAE,MAAM;MAClC;MACA,MAAMO,cAAc,GAAG,IAAAC,aAAK,EAAC,CAAC,EAAET,iCAAO,CAAC;MACxC;MACA,MAAMU,mBAAmB,GAAG,IAAAD,aAAK,EAAC,CAAC,EAAET,iCAAO,CAAC;MAE7C,MAAME,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDI,4BAA4B,EAAES,cAAc,CAACG,IAAI,CAAC,GAAG,CAAC;QACtDN,yBAAyB,EAAEK,mBAAmB,CAACC,IAAI,CAAC,GAAG;MACzD,CAAC,CAAC;MAEFR,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACI,cAAc,CAAC,CAAC,CAAC,GAAG;UAAE,CAACA,cAAc,CAAC,CAAC,CAAC,GAAG;QAAO,CAAC;QACpD,CAACE,mBAAmB,CAAC,CAAC,CAAC,GAAG;UAAE,CAACA,mBAAmB,CAAC,CAAC,CAAC,GAAG;QAAO;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFZ,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC5CG,IAAI,CAAC,qCAAqC,EAAE,MAAM;MAChD,MAAMW,mBAAmB,GAAGhB,2BAA2B,CAAC,CAAC;MAEzDO,MAAM,CAACS,mBAAmB,CAAC,CAACR,aAAa,CAACZ,yBAAyB,CAAC;IACtE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../../..");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const {
|
|
7
|
+
get: {
|
|
8
|
+
buildRequestTransformation,
|
|
9
|
+
buildResponseTransformation
|
|
10
|
+
}
|
|
11
|
+
} = _.preset;
|
|
9
12
|
describe('get-method transformations', () => {
|
|
10
13
|
describe('buildRequestTransformation', () => {
|
|
11
14
|
const requestMessageIdentifierPath = (0, _motionRuntimeTestContext.aString)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","get","buildRequestTransformation","buildResponseTransformation","preset","describe","requestMessageIdentifierPath","aString","test","transformationObject","expect","toStrictEqual","idPathSegments","times","join","responseMessageResultPath","transformationString"],"sources":["../../../../../src/__tests__/transformations/preset/get-transformation.spec.ts"],"sourcesContent":["import { aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { preset } from '../../..';\n\nconst {\n get: { buildRequestTransformation, buildResponseTransformation },\n} = preset;\n\ndescribe('get-method transformations', () => {\n describe('buildRequestTransformation', () => {\n const requestMessageIdentifierPath = aString();\n\n test('creates a transformation that maps the first argument into requestMessageIdentifierPath', () => {\n const transformationObject = buildRequestTransformation({\n requestMessageIdentifierPath,\n });\n\n expect(transformationObject).toStrictEqual({\n [requestMessageIdentifierPath]: '$[0]',\n });\n });\n\n test('supports a nested path', () => {\n // @ts-expect-errora\n const idPathSegments = times(2, aString);\n\n const transformationObject = buildRequestTransformation({\n requestMessageIdentifierPath: idPathSegments.join('.'),\n });\n\n expect(transformationObject).toStrictEqual({\n [idPathSegments[0]]: { [idPathSegments[1]]: '$[0]' },\n });\n });\n });\n\n describe('buildResponseTransformation', () => {\n test('unwraps the value of the provided property-path', () => {\n const responseMessageResultPath = aString();\n\n const transformationString = buildResponseTransformation({\n responseMessageResultPath,\n });\n\n expect(transformationString).toStrictEqual(\n `$.${responseMessageResultPath}`,\n );\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,CAAA,GAAAF,OAAA;AAEA,MAAM;EACJG,GAAG,EAAE;IAAEC,0BAA0B;IAAEC;EAA4B;AACjE,CAAC,GAAGC,QAAM;AAEVC,QAAQ,CAAC,4BAA4B,EAAE,MAAM;EAC3CA,QAAQ,CAAC,4BAA4B,EAAE,MAAM;IAC3C,MAAMC,4BAA4B,GAAG,IAAAC,iCAAO,EAAC,CAAC;IAE9CC,IAAI,CAAC,yFAAyF,EAAE,MAAM;MACpG,MAAMC,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDI;MACF,CAAC,CAAC;MAEFI,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACL,4BAA4B,GAAG;MAClC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFE,IAAI,CAAC,wBAAwB,EAAE,MAAM;MACnC;MACA,MAAMI,cAAc,GAAG,IAAAC,aAAK,EAAC,CAAC,EAAEN,iCAAO,CAAC;MAExC,MAAME,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDI,4BAA4B,EAAEM,cAAc,CAACE,IAAI,CAAC,GAAG;MACvD,CAAC,CAAC;MAEFJ,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACC,cAAc,CAAC,CAAC,CAAC,GAAG;UAAE,CAACA,cAAc,CAAC,CAAC,CAAC,GAAG;QAAO;MACrD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFP,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC5CG,IAAI,CAAC,iDAAiD,EAAE,MAAM;MAC5D,MAAMO,yBAAyB,GAAG,IAAAR,iCAAO,EAAC,CAAC;MAE3C,MAAMS,oBAAoB,GAAGb,2BAA2B,CAAC;QACvDY;MACF,CAAC,CAAC;MAEFL,MAAM,CAACM,oBAAoB,CAAC,CAACL,aAAa,CACvC,KAAII,yBAA0B,EACjC,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _ = require("../../..");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const {
|
|
6
|
+
list: {
|
|
7
|
+
buildRequestTransformation,
|
|
8
|
+
buildResponseTransformation
|
|
9
|
+
}
|
|
10
|
+
} = _.preset;
|
|
8
11
|
describe('list-method transformations', () => {
|
|
9
12
|
describe('buildRequestTransformation', () => {
|
|
10
13
|
// eslint-disable-next-line max-len
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_","list","buildRequestTransformation","buildResponseTransformation","preset","describe","test","transformationString","expect","toStrictEqual","responseMessageResultPath","aString"],"sources":["../../../../../src/__tests__/transformations/preset/list-transformation.spec.ts"],"sourcesContent":["import { aString } from '@wix/motion-runtime-test-context';\n\nimport { preset } from '../../..';\n\nconst {\n list: { buildRequestTransformation, buildResponseTransformation },\n} = preset;\n\ndescribe('list-method transformations', () => {\n describe('buildRequestTransformation', () => {\n // eslint-disable-next-line max-len\n test('returns the passthrough request transformation', () => {\n const transformationString = buildRequestTransformation();\n\n expect(transformationString).toStrictEqual('$[0]');\n });\n });\n\n describe('buildResponseTransformation', () => {\n test('unwraps the value of the provided property-path', () => {\n const responseMessageResultPath = aString();\n\n const transformationString = buildResponseTransformation({\n responseMessageResultPath,\n });\n\n expect(transformationString).toStrictEqual(\n `$.${responseMessageResultPath}`,\n );\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AAEA,IAAAC,CAAA,GAAAD,OAAA;AAEA,MAAM;EACJE,IAAI,EAAE;IAAEC,0BAA0B;IAAEC;EAA4B;AAClE,CAAC,GAAGC,QAAM;AAEVC,QAAQ,CAAC,6BAA6B,EAAE,MAAM;EAC5CA,QAAQ,CAAC,4BAA4B,EAAE,MAAM;IAC3C;IACAC,IAAI,CAAC,gDAAgD,EAAE,MAAM;MAC3D,MAAMC,oBAAoB,GAAGL,0BAA0B,CAAC,CAAC;MAEzDM,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC,MAAM,CAAC;IACpD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFJ,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC5CC,IAAI,CAAC,iDAAiD,EAAE,MAAM;MAC5D,MAAMI,yBAAyB,GAAG,IAAAC,iCAAO,EAAC,CAAC;MAE3C,MAAMJ,oBAAoB,GAAGJ,2BAA2B,CAAC;QACvDO;MACF,CAAC,CAAC;MAEFF,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CACvC,KAAIC,yBAA0B,EACjC,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../../..");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const {
|
|
7
|
+
query: {
|
|
8
|
+
buildRequestTransformation,
|
|
9
|
+
buildResponseTransformation
|
|
10
|
+
}
|
|
11
|
+
} = _.preset;
|
|
9
12
|
describe('query-method transformations', () => {
|
|
10
13
|
describe('buildRequestTransformation', () => {
|
|
11
14
|
// eslint-disable-next-line max-len
|
|
@@ -30,9 +33,7 @@ describe('query-method transformations', () => {
|
|
|
30
33
|
});
|
|
31
34
|
});
|
|
32
35
|
describe('buildResponseTransformation', () => {
|
|
33
|
-
const
|
|
34
|
-
responseMessageResultPath = _times[0],
|
|
35
|
-
responseMessagePagingMetadataPath = _times[1];
|
|
36
|
+
const [responseMessageResultPath, responseMessagePagingMetadataPath] = (0, _lodash.times)(2, () => (0, _motionRuntimeTestContext.aString)());
|
|
36
37
|
test('unwraps the value of the provided property-path', () => {
|
|
37
38
|
const transformationObject = buildResponseTransformation({
|
|
38
39
|
responseMessageResultPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","query","buildRequestTransformation","buildResponseTransformation","preset","describe","test","requestQueryObjectPropertyName","aString","transformationString","expect","toStrictEqual","responseMessageResultPath","responseMessagePagingMetadataPath","times","transformationObject","items","pagingMetadata","itemTransformation"],"sources":["../../../../../src/__tests__/transformations/preset/query-transformation.spec.ts"],"sourcesContent":["import { aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { preset } from '../../..';\n\nconst {\n query: { buildRequestTransformation, buildResponseTransformation },\n} = preset;\n\ndescribe('query-method transformations', () => {\n describe('buildRequestTransformation', () => {\n // eslint-disable-next-line max-len\n test('sets the query object as a property named via requestQueryObjectPropertyName, and spreads the 2nd argument', () => {\n const requestQueryObjectPropertyName = aString();\n const transformationString = buildRequestTransformation({\n requestQueryObjectPropertyName,\n });\n\n expect(transformationString).toStrictEqual({\n [requestQueryObjectPropertyName]: '$[0]',\n '*': '$[1]',\n });\n });\n\n // eslint-disable-next-line max-len\n test(\"sets the given query tree under the 'query' property as a default, with the second argument spread into the payload\", () => {\n const transformationString = buildRequestTransformation();\n\n expect(transformationString).toStrictEqual({\n query: '$[0]',\n '*': '$[1]',\n });\n });\n });\n\n describe('buildResponseTransformation', () => {\n const [responseMessageResultPath, responseMessagePagingMetadataPath] =\n times(2, () => aString());\n\n test('unwraps the value of the provided property-path', () => {\n const transformationObject = buildResponseTransformation({\n responseMessageResultPath,\n responseMessagePagingMetadataPath,\n });\n\n expect(transformationObject).toStrictEqual({\n items: `$.${responseMessageResultPath}`,\n pagingMetadata: `$.${responseMessagePagingMetadataPath}`,\n });\n });\n\n test('adds an item-transformation when provided', () => {\n const itemTransformation = `$.some.path.${aString()}`;\n const transformationObject = buildResponseTransformation({\n responseMessageResultPath,\n responseMessagePagingMetadataPath,\n itemTransformation,\n });\n\n expect(transformationObject).toStrictEqual({\n items: {\n '@path': `$.${responseMessageResultPath}`,\n '@itemTransformation': itemTransformation,\n },\n pagingMetadata: `$.${responseMessagePagingMetadataPath}`,\n });\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,CAAA,GAAAF,OAAA;AAEA,MAAM;EACJG,KAAK,EAAE;IAAEC,0BAA0B;IAAEC;EAA4B;AACnE,CAAC,GAAGC,QAAM;AAEVC,QAAQ,CAAC,8BAA8B,EAAE,MAAM;EAC7CA,QAAQ,CAAC,4BAA4B,EAAE,MAAM;IAC3C;IACAC,IAAI,CAAC,4GAA4G,EAAE,MAAM;MACvH,MAAMC,8BAA8B,GAAG,IAAAC,iCAAO,EAAC,CAAC;MAChD,MAAMC,oBAAoB,GAAGP,0BAA0B,CAAC;QACtDK;MACF,CAAC,CAAC;MAEFG,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzC,CAACJ,8BAA8B,GAAG,MAAM;QACxC,GAAG,EAAE;MACP,CAAC,CAAC;IACJ,CAAC,CAAC;;IAEF;IACAD,IAAI,CAAC,qHAAqH,EAAE,MAAM;MAChI,MAAMG,oBAAoB,GAAGP,0BAA0B,CAAC,CAAC;MAEzDQ,MAAM,CAACD,oBAAoB,CAAC,CAACE,aAAa,CAAC;QACzCV,KAAK,EAAE,MAAM;QACb,GAAG,EAAE;MACP,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFI,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC5C,MAAM,CAACO,yBAAyB,EAAEC,iCAAiC,CAAC,GAClE,IAAAC,aAAK,EAAC,CAAC,EAAE,MAAM,IAAAN,iCAAO,EAAC,CAAC,CAAC;IAE3BF,IAAI,CAAC,iDAAiD,EAAE,MAAM;MAC5D,MAAMS,oBAAoB,GAAGZ,2BAA2B,CAAC;QACvDS,yBAAyB;QACzBC;MACF,CAAC,CAAC;MAEFH,MAAM,CAACK,oBAAoB,CAAC,CAACJ,aAAa,CAAC;QACzCK,KAAK,EAAG,KAAIJ,yBAA0B,EAAC;QACvCK,cAAc,EAAG,KAAIJ,iCAAkC;MACzD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFP,IAAI,CAAC,2CAA2C,EAAE,MAAM;MACtD,MAAMY,kBAAkB,GAAI,eAAc,IAAAV,iCAAO,EAAC,CAAE,EAAC;MACrD,MAAMO,oBAAoB,GAAGZ,2BAA2B,CAAC;QACvDS,yBAAyB;QACzBC,iCAAiC;QACjCK;MACF,CAAC,CAAC;MAEFR,MAAM,CAACK,oBAAoB,CAAC,CAACJ,aAAa,CAAC;QACzCK,KAAK,EAAE;UACL,OAAO,EAAG,KAAIJ,yBAA0B,EAAC;UACzC,qBAAqB,EAAEM;QACzB,CAAC;QACDD,cAAc,EAAG,KAAIJ,iCAAkC;MACzD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../../..");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const {
|
|
7
|
+
update: {
|
|
8
|
+
buildRequestTransformation,
|
|
9
|
+
buildResponseTransformation
|
|
10
|
+
}
|
|
11
|
+
} = _.preset;
|
|
9
12
|
describe('update-method transformations', () => {
|
|
10
13
|
describe('buildRequestTransformation', () => {
|
|
11
14
|
const requestMessageOptionsPath = (0, _motionRuntimeTestContext.aString)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","update","buildRequestTransformation","buildResponseTransformation","preset","describe","requestMessageOptionsPath","aString","requestMessageEntityPath","requestMessageEntityIdentifierField","test","transformedObject","expect","toStrictEqual","requestMessageEntityPathSegments","times","optionsPathSegments","transformationObject","join","sharedPath","responseMessageResultPath","transformationString"],"sources":["../../../../../src/__tests__/transformations/preset/update-transformation.spec.ts"],"sourcesContent":["import { aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { preset } from '../../..';\n\nconst {\n update: { buildRequestTransformation, buildResponseTransformation },\n} = preset;\n\ndescribe('update-method transformations', () => {\n describe('buildRequestTransformation', () => {\n const requestMessageOptionsPath = aString();\n const requestMessageEntityPath = aString();\n const requestMessageEntityIdentifierField = aString();\n\n test('creates a transformation mapping args into requestMessageIdentifierPath and requestMessageEntityPath', () => {\n const transformedObject = buildRequestTransformation({\n requestMessageEntityIdentifierField,\n requestMessageEntityPath,\n });\n\n expect(transformedObject).toStrictEqual({\n [requestMessageEntityPath]: {\n [requestMessageEntityIdentifierField]: '$[0]',\n '*': '$[1]',\n },\n });\n });\n\n test(`creates a transformation that maps the 3rd argument into requestMessageOptionsPath when provided`, () => {\n const transformedObject = buildRequestTransformation({\n requestMessageEntityIdentifierField,\n requestMessageEntityPath,\n requestMessageOptionsPath,\n });\n\n expect(transformedObject).toStrictEqual({\n [requestMessageEntityPath]: {\n [requestMessageEntityIdentifierField]: '$[0]',\n '*': '$[1]',\n },\n [requestMessageOptionsPath]: '$[2]',\n });\n });\n\n test('supports nested paths for requestMessageEntityPath and requestMessageOptionsPath', () => {\n // @ts-expect-error\n const requestMessageEntityPathSegments = times(2, aString);\n // @ts-expect-error\n const optionsPathSegments = times(2, aString);\n\n const transformationObject = buildRequestTransformation({\n requestMessageEntityIdentifierField,\n requestMessageEntityPath: requestMessageEntityPathSegments.join('.'),\n requestMessageOptionsPath: optionsPathSegments.join('.'),\n });\n\n expect(transformationObject).toStrictEqual({\n [requestMessageEntityPathSegments[0]]: {\n [requestMessageEntityPathSegments[1]]: {\n [requestMessageEntityIdentifierField]: '$[0]',\n '*': '$[1]',\n },\n },\n [optionsPathSegments[0]]: { [optionsPathSegments[1]]: '$[2]' },\n });\n });\n\n test('supports shared paths for requestMessageEntityPath and requestMessageOptionsPath', () => {\n const sharedPath = aString();\n\n const transformationObject = buildRequestTransformation({\n requestMessageEntityIdentifierField,\n requestMessageEntityPath: sharedPath,\n requestMessageOptionsPath: sharedPath,\n });\n\n expect(transformationObject).toStrictEqual({\n [sharedPath]: {\n [requestMessageEntityIdentifierField]: '$[0]',\n '*': ['$[1]', '$[2]'],\n },\n });\n });\n });\n\n describe('buildResponseTransformation', () => {\n test('unwraps the value of the provided property-path', () => {\n const responseMessageResultPath = aString();\n\n const transformationString = buildResponseTransformation({\n responseMessageResultPath,\n });\n\n expect(transformationString).toStrictEqual(\n `$.${responseMessageResultPath}`,\n );\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../..");
|
|
6
|
-
const
|
|
6
|
+
const {
|
|
7
|
+
validateRequestTransformation
|
|
8
|
+
} = _.validation;
|
|
7
9
|
describe('validateRequestTransformation', () => {
|
|
8
10
|
describe('valid transformations', () => {
|
|
9
11
|
const validResults = {
|