@finos/legend-graph 31.4.1 → 31.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/graph/BasicModel.d.ts.map +1 -1
- package/lib/graph/BasicModel.js +5 -1
- package/lib/graph/BasicModel.js.map +1 -1
- package/lib/graph/Core_HashUtils.d.ts +4 -0
- package/lib/graph/Core_HashUtils.d.ts.map +1 -1
- package/lib/graph/Core_HashUtils.js +5 -0
- package/lib/graph/Core_HashUtils.js.map +1 -1
- package/lib/graph/MetaModelConst.d.ts +2 -1
- package/lib/graph/MetaModelConst.d.ts.map +1 -1
- package/lib/graph/MetaModelConst.js +1 -0
- package/lib/graph/MetaModelConst.js.map +1 -1
- package/lib/graph/helpers/PureLanguageHelper.d.ts +1 -0
- package/lib/graph/helpers/PureLanguageHelper.d.ts.map +1 -1
- package/lib/graph/helpers/PureLanguageHelper.js +3 -1
- package/lib/graph/helpers/PureLanguageHelper.js.map +1 -1
- package/lib/graph/metamodel/pure/functionActivator/SnowflakeAppType.d.ts +20 -0
- package/lib/graph/metamodel/pure/functionActivator/SnowflakeAppType.d.ts.map +1 -0
- package/lib/graph/metamodel/pure/functionActivator/SnowflakeAppType.js +21 -0
- package/lib/graph/metamodel/pure/functionActivator/SnowflakeAppType.js.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.d.ts +4 -1
- package/lib/graph/metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.d.ts.map +1 -1
- package/lib/graph/metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.js +2 -0
- package/lib/graph/metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.js.map +1 -1
- package/lib/graph/metamodel/pure/packageableElements/function/SnowflakeApp.d.ts +2 -0
- package/lib/graph/metamodel/pure/packageableElements/function/SnowflakeApp.d.ts.map +1 -1
- package/lib/graph/metamodel/pure/packageableElements/function/SnowflakeApp.js +2 -0
- package/lib/graph/metamodel/pure/packageableElements/function/SnowflakeApp.js.map +1 -1
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.d.ts +26 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.d.ts.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.js +31 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.js.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTest.d.ts +32 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTest.d.ts.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTest.js +46 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTest.js.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.d.ts +22 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.d.ts.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.js +31 -0
- package/lib/graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.js.map +1 -0
- package/lib/graph-manager/action/changeDetection/DomainObserverHelper.d.ts.map +1 -1
- package/lib/graph-manager/action/changeDetection/DomainObserverHelper.js +1 -0
- package/lib/graph-manager/action/changeDetection/DomainObserverHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppType.d.ts +20 -0
- package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppType.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppType.js +21 -0
- package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppType.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_ConcreteFunctionDefinition.d.ts +2 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_ConcreteFunctionDefinition.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_ConcreteFunctionDefinition.js +2 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_ConcreteFunctionDefinition.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.d.ts +2 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.js +2 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionStoreTestData.d.ts +24 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionStoreTestData.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionStoreTestData.js +31 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionStoreTestData.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTest.d.ts +32 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTest.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTest.js +46 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTest.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTestSuite.d.ts +22 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTestSuite.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTestSuite.js +31 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTestSuite.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.js +44 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.d.ts +3 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.js +13 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js +5 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js +4 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js +5 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.d.ts +3 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.js +43 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.d.ts +3 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.js +13 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +2 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js +2 -2
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.d.ts +19 -17
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.js +5 -2
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionSeriaizationHelper.d.ts +23 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionSeriaizationHelper.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionSeriaizationHelper.js +47 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionSeriaizationHelper.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.d.ts +2 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.js +14 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.js.map +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
- package/src/graph/BasicModel.ts +5 -1
- package/src/graph/Core_HashUtils.ts +6 -0
- package/src/graph/MetaModelConst.ts +1 -0
- package/src/graph/helpers/PureLanguageHelper.ts +11 -6
- package/src/graph/metamodel/pure/functionActivator/SnowflakeAppType.ts +20 -0
- package/src/graph/metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.ts +5 -1
- package/src/graph/metamodel/pure/packageableElements/function/SnowflakeApp.ts +3 -0
- package/src/graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.ts +36 -0
- package/src/graph/metamodel/pure/packageableElements/function/test/FunctionTest.ts +52 -0
- package/src/graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.ts +34 -0
- package/src/graph-manager/action/changeDetection/DomainObserverHelper.ts +1 -0
- package/src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppType.ts +20 -0
- package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_ConcreteFunctionDefinition.ts +3 -0
- package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.ts +3 -0
- package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionStoreTestData.ts +34 -0
- package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTest.ts +53 -0
- package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTestSuite.ts +34 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.ts +59 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.ts +19 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.ts +8 -1
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.ts +4 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.ts +7 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.ts +68 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.ts +19 -1
- package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +2 -1
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.ts +2 -2
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.ts +18 -5
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionSeriaizationHelper.ts +100 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.ts +15 -0
- package/src/index.ts +5 -1
- package/tsconfig.json +9 -0
package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.ts
CHANGED
|
@@ -54,6 +54,17 @@ import { V1_DerivedProperty } from '../../../model/packageableElements/domain/V1
|
|
|
54
54
|
import type { V1_RawVariable } from '../../../model/rawValueSpecification/V1_RawVariable.js';
|
|
55
55
|
import type { V1_GraphTransformerContext } from './V1_GraphTransformerContext.js';
|
|
56
56
|
import { isStubbed_RawLambda } from '../../../../../../../graph/helpers/creator/RawValueSpecificationCreatorHelper.js';
|
|
57
|
+
import type { FunctionTestSuite } from '../../../../../../../graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.js';
|
|
58
|
+
import { V1_FunctionTestSuite } from '../../../model/packageableElements/function/test/V1_FunctionTestSuite.js';
|
|
59
|
+
import { FunctionTest } from '../../../../../../../graph/metamodel/pure/packageableElements/function/test/FunctionTest.js';
|
|
60
|
+
import {
|
|
61
|
+
V1_FunctionParameterValue,
|
|
62
|
+
V1_FunctionTest,
|
|
63
|
+
} from '../../../model/packageableElements/function/test/V1_FunctionTest.js';
|
|
64
|
+
import { UnsupportedOperationError } from '@finos/legend-shared';
|
|
65
|
+
import { V1_FunctionStoreTestData } from '../../../model/packageableElements/function/test/V1_FunctionStoreTestData.js';
|
|
66
|
+
import { V1_transformEmbeddedData } from './V1_DataElementTransformer.js';
|
|
67
|
+
import { V1_transformTestAssertion } from './V1_TestTransformer.js';
|
|
57
68
|
|
|
58
69
|
export const V1_transformProfile = (element: Profile): V1_Profile => {
|
|
59
70
|
const profile = new V1_Profile();
|
|
@@ -224,6 +235,49 @@ export const V1_transformAssociation = (
|
|
|
224
235
|
return association;
|
|
225
236
|
};
|
|
226
237
|
|
|
238
|
+
const V1_transformFunctionTest = (element: FunctionTest): V1_FunctionTest => {
|
|
239
|
+
const functionTest = new V1_FunctionTest();
|
|
240
|
+
functionTest.id = element.id;
|
|
241
|
+
functionTest.doc = element.doc;
|
|
242
|
+
functionTest.assertions = element.assertions.map((assertion) =>
|
|
243
|
+
V1_transformTestAssertion(assertion),
|
|
244
|
+
);
|
|
245
|
+
functionTest.parameters = element.parameters?.map((p) => {
|
|
246
|
+
const parameterValue = new V1_FunctionParameterValue();
|
|
247
|
+
parameterValue.name = p.name;
|
|
248
|
+
parameterValue.value = p.value;
|
|
249
|
+
return parameterValue;
|
|
250
|
+
});
|
|
251
|
+
return functionTest;
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
const V1_transformFunctionSuite = (
|
|
255
|
+
element: FunctionTestSuite,
|
|
256
|
+
context: V1_GraphTransformerContext,
|
|
257
|
+
): V1_FunctionTestSuite => {
|
|
258
|
+
const testSuite = new V1_FunctionTestSuite();
|
|
259
|
+
testSuite.id = element.id;
|
|
260
|
+
testSuite.doc = element.doc;
|
|
261
|
+
if (element.testData?.length) {
|
|
262
|
+
testSuite.testData = element.testData.map((elementData) => {
|
|
263
|
+
const pTestData = new V1_FunctionStoreTestData();
|
|
264
|
+
pTestData.doc = elementData.doc;
|
|
265
|
+
pTestData.store = elementData.store.valueForSerialization ?? '';
|
|
266
|
+
pTestData.data = V1_transformEmbeddedData(elementData.data, context);
|
|
267
|
+
return pTestData;
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
testSuite.tests = element.tests.map((el) => {
|
|
271
|
+
if (el instanceof FunctionTest) {
|
|
272
|
+
return V1_transformFunctionTest(el);
|
|
273
|
+
}
|
|
274
|
+
throw new UnsupportedOperationError(
|
|
275
|
+
'Unsupported function test to transform',
|
|
276
|
+
);
|
|
277
|
+
});
|
|
278
|
+
return testSuite;
|
|
279
|
+
};
|
|
280
|
+
|
|
227
281
|
export const V1_transformFunction = (
|
|
228
282
|
element: ConcreteFunctionDefinition,
|
|
229
283
|
context: V1_GraphTransformerContext,
|
|
@@ -243,5 +297,10 @@ export const V1_transformFunction = (
|
|
|
243
297
|
_function.returnMultiplicity = V1_transformMultiplicity(
|
|
244
298
|
element.returnMultiplicity,
|
|
245
299
|
);
|
|
300
|
+
if (element.tests.length) {
|
|
301
|
+
_function.tests = element.tests.map((suite) =>
|
|
302
|
+
V1_transformFunctionSuite(suite, context),
|
|
303
|
+
);
|
|
304
|
+
}
|
|
246
305
|
return _function;
|
|
247
306
|
};
|
|
@@ -14,9 +14,12 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { UnsupportedOperationError } from '@finos/legend-shared';
|
|
17
18
|
import type { SnowflakeAppDeploymentConfiguration } from '../../../../../../../graph/metamodel/pure/functionActivator/SnowflakeAppDeploymentConfiguration.js';
|
|
18
19
|
import { V1_SnowflakeAppDeploymentConfiguration } from '../../../engine/functionActivator/V1_SnowflakeAppDeploymentConfiguration.js';
|
|
19
20
|
import { V1_transformConnectionPointer } from './V1_ConnectionTransformer.js';
|
|
21
|
+
import { V1_SnowflakeAppType } from '../../../engine/functionActivator/V1_SnowflakeAppType.js';
|
|
22
|
+
import { SnowflakeAppType } from '../../../../../../../graph/metamodel/pure/functionActivator/SnowflakeAppType.js';
|
|
20
23
|
|
|
21
24
|
export const V1_transformSnowflakeAppDeploymentConfiguration = (
|
|
22
25
|
element: SnowflakeAppDeploymentConfiguration,
|
|
@@ -31,3 +34,19 @@ export const V1_transformSnowflakeAppDeploymentConfiguration = (
|
|
|
31
34
|
|
|
32
35
|
return protocol;
|
|
33
36
|
};
|
|
37
|
+
|
|
38
|
+
export const V1_transformSnowflakeAppType = (
|
|
39
|
+
value: SnowflakeAppType,
|
|
40
|
+
): V1_SnowflakeAppType => {
|
|
41
|
+
switch (value) {
|
|
42
|
+
case SnowflakeAppType.FULL:
|
|
43
|
+
return V1_SnowflakeAppType.FULL;
|
|
44
|
+
case SnowflakeAppType.STAGE:
|
|
45
|
+
return V1_SnowflakeAppType.STAGE;
|
|
46
|
+
default:
|
|
47
|
+
throw new UnsupportedOperationError(
|
|
48
|
+
`Can't transform SnowflakeApp type`,
|
|
49
|
+
value,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
@@ -78,7 +78,10 @@ import { V1_INTERNAL__UnknownStore } from '../../../model/packageableElements/st
|
|
|
78
78
|
import { generateFunctionPrettyName } from '../../../../../../../graph/helpers/PureLanguageHelper.js';
|
|
79
79
|
import { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
|
|
80
80
|
import type { SnowflakeApp } from '../../../../../../../graph/metamodel/pure/packageableElements/function/SnowflakeApp.js';
|
|
81
|
-
import {
|
|
81
|
+
import {
|
|
82
|
+
V1_transformSnowflakeAppDeploymentConfiguration,
|
|
83
|
+
V1_transformSnowflakeAppType,
|
|
84
|
+
} from './V1_FunctionActivatorTransformer.js';
|
|
82
85
|
|
|
83
86
|
class V1_PackageableElementTransformer
|
|
84
87
|
implements PackageableElementVisitor<V1_PackageableElement>
|
|
@@ -137,6 +140,7 @@ class V1_PackageableElementTransformer
|
|
|
137
140
|
protocol.function = generateFunctionPrettyName(element.function.value, {
|
|
138
141
|
fullPath: true,
|
|
139
142
|
spacing: false,
|
|
143
|
+
notIncludeParamName: true,
|
|
140
144
|
});
|
|
141
145
|
protocol.applicationName = element.applicationName;
|
|
142
146
|
protocol.description = element.description;
|
|
@@ -145,6 +149,9 @@ class V1_PackageableElementTransformer
|
|
|
145
149
|
V1_transformSnowflakeAppDeploymentConfiguration(
|
|
146
150
|
element.activationConfiguration,
|
|
147
151
|
);
|
|
152
|
+
if (element.type) {
|
|
153
|
+
protocol.type = V1_transformSnowflakeAppType(element.type);
|
|
154
|
+
}
|
|
148
155
|
return protocol;
|
|
149
156
|
}
|
|
150
157
|
|
package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.ts
CHANGED
|
@@ -76,6 +76,7 @@ import type { V1_INTERNAL__UnknownStore } from '../../../model/packageableElemen
|
|
|
76
76
|
import { INTERNAL__UnknownStore } from '../../../../../../../graph/metamodel/pure/packageableElements/store/INTERNAL__UnknownStore.js';
|
|
77
77
|
import type { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
|
|
78
78
|
import { SnowflakeApp } from '../../../../../../../graph/metamodel/pure/packageableElements/function/SnowflakeApp.js';
|
|
79
|
+
import { V1_buildSnowflakeAppType } from './helpers/V1_FunctionActivatorBuilderHelper.js';
|
|
79
80
|
|
|
80
81
|
export class V1_ElementFirstPassBuilder
|
|
81
82
|
implements V1_PackageableElementVisitor<PackageableElement>
|
|
@@ -159,6 +160,9 @@ export class V1_ElementFirstPassBuilder
|
|
|
159
160
|
metamodel.applicationName = element.applicationName;
|
|
160
161
|
metamodel.description = element.description;
|
|
161
162
|
metamodel.owner = element.owner;
|
|
163
|
+
if (element.type) {
|
|
164
|
+
metamodel.type = V1_buildSnowflakeAppType(element.type);
|
|
165
|
+
}
|
|
162
166
|
return metamodel;
|
|
163
167
|
}
|
|
164
168
|
|
|
@@ -50,6 +50,7 @@ import {
|
|
|
50
50
|
V1_buildVariable,
|
|
51
51
|
V1_buildUnit,
|
|
52
52
|
V1_buildTaggedValue,
|
|
53
|
+
V1_buildFunctionSuite,
|
|
53
54
|
} from './helpers/V1_DomainBuilderHelper.js';
|
|
54
55
|
import {
|
|
55
56
|
V1_buildServiceExecution,
|
|
@@ -156,6 +157,7 @@ export class V1_ElementSecondPassBuilder
|
|
|
156
157
|
generateFunctionPrettyName(fn, {
|
|
157
158
|
fullPath: true,
|
|
158
159
|
spacing: false,
|
|
160
|
+
notIncludeParamName: true,
|
|
159
161
|
}) === element.function.replaceAll(/\s*/gu, ''),
|
|
160
162
|
),
|
|
161
163
|
),
|
|
@@ -321,6 +323,11 @@ export class V1_ElementSecondPassBuilder
|
|
|
321
323
|
);
|
|
322
324
|
func.expressionSequence = protocol.body;
|
|
323
325
|
func.functionName = getFunctionName(func, func.name);
|
|
326
|
+
if (protocol.tests?.length) {
|
|
327
|
+
func.tests = protocol.tests.map((l) =>
|
|
328
|
+
V1_buildFunctionSuite(l, this.context),
|
|
329
|
+
);
|
|
330
|
+
}
|
|
324
331
|
}
|
|
325
332
|
|
|
326
333
|
visit_FlatData(element: V1_FlatData): void {
|
|
@@ -58,6 +58,18 @@ import {
|
|
|
58
58
|
} from '../../../../../../../../graph/helpers/DomainHelper.js';
|
|
59
59
|
import { AggregationKind } from '../../../../../../../../graph/metamodel/pure/packageableElements/domain/AggregationKind.js';
|
|
60
60
|
import { GraphBuilderError } from '../../../../../../../GraphManagerUtils.js';
|
|
61
|
+
import type { V1_FunctionTestSuite } from '../../../../model/packageableElements/function/test/V1_FunctionTestSuite.js';
|
|
62
|
+
import { FunctionTestSuite } from '../../../../../../../../graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.js';
|
|
63
|
+
import type { V1_FunctionStoreTestData } from '../../../../model/packageableElements/function/test/V1_FunctionStoreTestData.js';
|
|
64
|
+
import { FunctionStoreTestData } from '../../../../../../../../graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.js';
|
|
65
|
+
import { V1_buildEmbeddedData } from './V1_DataElementBuilderHelper.js';
|
|
66
|
+
import { V1_FunctionTest } from '../../../../model/packageableElements/function/test/V1_FunctionTest.js';
|
|
67
|
+
import {
|
|
68
|
+
FunctionParameterValue,
|
|
69
|
+
FunctionTest,
|
|
70
|
+
} from '../../../../../../../../graph/metamodel/pure/packageableElements/function/test/FunctionTest.js';
|
|
71
|
+
import { V1_buildTestAssertion } from './V1_TestBuilderHelper.js';
|
|
72
|
+
import type { TestSuite } from '../../../../../../../../graph/metamodel/pure/test/Test.js';
|
|
61
73
|
|
|
62
74
|
export const V1_buildTaggedValue = (
|
|
63
75
|
taggedValue: V1_TaggedValue,
|
|
@@ -335,3 +347,59 @@ export const V1_getAppliedProperty = (
|
|
|
335
347
|
`Property '${name}' not found in class '${parentClass.path}'`,
|
|
336
348
|
);
|
|
337
349
|
};
|
|
350
|
+
|
|
351
|
+
// Function Suite
|
|
352
|
+
const V1_buildFunctionTest = (
|
|
353
|
+
element: V1_FunctionTest,
|
|
354
|
+
parentSuite: TestSuite,
|
|
355
|
+
context: V1_GraphBuilderContext,
|
|
356
|
+
): FunctionTest => {
|
|
357
|
+
const functionTest = new FunctionTest();
|
|
358
|
+
functionTest.id = element.id;
|
|
359
|
+
functionTest.__parent = parentSuite;
|
|
360
|
+
functionTest.doc = element.doc;
|
|
361
|
+
functionTest.assertions = element.assertions.map((assertion) =>
|
|
362
|
+
V1_buildTestAssertion(assertion, functionTest, context),
|
|
363
|
+
);
|
|
364
|
+
functionTest.parameters = element.parameters?.map((param) => {
|
|
365
|
+
const parameterValue = new FunctionParameterValue();
|
|
366
|
+
parameterValue.name = param.name;
|
|
367
|
+
parameterValue.value = param.value;
|
|
368
|
+
return parameterValue;
|
|
369
|
+
});
|
|
370
|
+
return functionTest;
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
const V1_buildFunctionStoreTestData = (
|
|
374
|
+
element: V1_FunctionStoreTestData,
|
|
375
|
+
context: V1_GraphBuilderContext,
|
|
376
|
+
): FunctionStoreTestData => {
|
|
377
|
+
const storeTestData = new FunctionStoreTestData();
|
|
378
|
+
storeTestData.doc = element.doc;
|
|
379
|
+
storeTestData.store = context.resolveStore(element.store);
|
|
380
|
+
storeTestData.data = V1_buildEmbeddedData(element.data, context);
|
|
381
|
+
return storeTestData;
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
export const V1_buildFunctionSuite = (
|
|
385
|
+
element: V1_FunctionTestSuite,
|
|
386
|
+
context: V1_GraphBuilderContext,
|
|
387
|
+
): FunctionTestSuite => {
|
|
388
|
+
const functionSuite = new FunctionTestSuite();
|
|
389
|
+
functionSuite.id = element.id;
|
|
390
|
+
functionSuite.doc = element.doc;
|
|
391
|
+
if (element.testData?.length) {
|
|
392
|
+
functionSuite.testData = element.testData.map((e) =>
|
|
393
|
+
V1_buildFunctionStoreTestData(e, context),
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
functionSuite.tests = element.tests.map((test) => {
|
|
397
|
+
if (test instanceof V1_FunctionTest) {
|
|
398
|
+
return V1_buildFunctionTest(test, functionSuite, context);
|
|
399
|
+
}
|
|
400
|
+
throw new UnsupportedOperationError(
|
|
401
|
+
'Unable to build function test: Unsupported function test type',
|
|
402
|
+
);
|
|
403
|
+
});
|
|
404
|
+
return functionSuite;
|
|
405
|
+
};
|
|
@@ -19,7 +19,9 @@ import { SnowflakeAppDeploymentConfiguration } from '../../../../../../../../gra
|
|
|
19
19
|
import type { V1_SnowflakeAppDeploymentConfiguration } from '../../../../engine/functionActivator/V1_SnowflakeAppDeploymentConfiguration.js';
|
|
20
20
|
import type { V1_GraphBuilderContext } from '../V1_GraphBuilderContext.js';
|
|
21
21
|
import { V1_buildConnection } from './V1_ConnectionBuilderHelper.js';
|
|
22
|
-
import { guaranteeType } from '@finos/legend-shared';
|
|
22
|
+
import { UnsupportedOperationError, guaranteeType } from '@finos/legend-shared';
|
|
23
|
+
import { V1_SnowflakeAppType } from '../../../../engine/functionActivator/V1_SnowflakeAppType.js';
|
|
24
|
+
import { SnowflakeAppType } from '../../../../../../../../graph/metamodel/pure/functionActivator/SnowflakeAppType.js';
|
|
23
25
|
|
|
24
26
|
export const V1_buildSnowflakeAppDeploymentConfiguration = (
|
|
25
27
|
element: V1_SnowflakeAppDeploymentConfiguration,
|
|
@@ -37,3 +39,19 @@ export const V1_buildSnowflakeAppDeploymentConfiguration = (
|
|
|
37
39
|
}
|
|
38
40
|
return metamodel;
|
|
39
41
|
};
|
|
42
|
+
|
|
43
|
+
export const V1_buildSnowflakeAppType = (
|
|
44
|
+
element: V1_SnowflakeAppType,
|
|
45
|
+
): SnowflakeAppType => {
|
|
46
|
+
switch (element) {
|
|
47
|
+
case V1_SnowflakeAppType.FULL:
|
|
48
|
+
return SnowflakeAppType.FULL;
|
|
49
|
+
case V1_SnowflakeAppType.STAGE:
|
|
50
|
+
return SnowflakeAppType.STAGE;
|
|
51
|
+
default:
|
|
52
|
+
throw new UnsupportedOperationError(
|
|
53
|
+
`Can't build V1_SnowflakeApp type`,
|
|
54
|
+
element,
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
@@ -74,6 +74,7 @@ import {
|
|
|
74
74
|
} from '../../../../model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js';
|
|
75
75
|
import type { STO_Relational_PureProtocolProcessorPlugin_Extension } from '../../../../../extensions/STO_Relational_PureProtocolProcessorPlugin_Extension.js';
|
|
76
76
|
import { INTERNAL__UnknownDatasourceSpecification } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/INTERNAL__UnknownDatasourceSpecification.js';
|
|
77
|
+
import { INTERNAL__UnknownAuthenticationStrategy } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/INTERNAL__UnknownAuthenticationStrategy.js';
|
|
77
78
|
import { V1_INTERNAL__UnknownDatasourceSpecification } from '../../../../model/packageableElements/store/relational/connection/V1_INTERNAL__UnknownDatasourceSpecification.js';
|
|
78
79
|
import { V1_INTERNAL__UnknownAuthenticationStrategy } from '../../../../model/packageableElements/store/relational/connection/V1_INTERNAL__UnknownAuthenticationStrategy.js';
|
|
79
80
|
|
|
@@ -306,7 +307,7 @@ export const V1_buildAuthenticationStrategy = (
|
|
|
306
307
|
context: V1_GraphBuilderContext,
|
|
307
308
|
): AuthenticationStrategy => {
|
|
308
309
|
if (protocol instanceof V1_INTERNAL__UnknownAuthenticationStrategy) {
|
|
309
|
-
const metamodel = new
|
|
310
|
+
const metamodel = new INTERNAL__UnknownAuthenticationStrategy();
|
|
310
311
|
metamodel.content = protocol.content;
|
|
311
312
|
return metamodel;
|
|
312
313
|
} else if (protocol instanceof V1_DefaultH2AuthenticationStrategy) {
|
|
@@ -193,7 +193,7 @@ class V1_PackageableElementSerializer
|
|
|
193
193
|
visit_ConcreteFunctionDefinition(
|
|
194
194
|
element: V1_ConcreteFunctionDefinition,
|
|
195
195
|
): PlainObject<V1_PackageableElement> {
|
|
196
|
-
return serialize(V1_functionModelSchema, element);
|
|
196
|
+
return serialize(V1_functionModelSchema(this.plugins), element);
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
visit_FlatData(element: V1_FlatData): PlainObject<V1_PackageableElement> {
|
|
@@ -304,7 +304,7 @@ export const V1_deserializePackageableElement = (
|
|
|
304
304
|
case V1_ASSOCIATION_ELEMENT_PROTOCOL_TYPE:
|
|
305
305
|
return deserialize(V1_associationModelSchema, json);
|
|
306
306
|
case V1_FUNCTION_ELEMENT_PROTOCOL_TYPE:
|
|
307
|
-
return deserialize(V1_functionModelSchema, json);
|
|
307
|
+
return deserialize(V1_functionModelSchema(plugins), json);
|
|
308
308
|
case V1_FLAT_DATA_ELEMENT_PROTOCOL_TYPE:
|
|
309
309
|
return deserialize(V1_flatDataModelSchema, json);
|
|
310
310
|
case V1_DATABASE_ELEMENT_PROTOCOL_TYPE:
|
|
@@ -22,11 +22,13 @@ import {
|
|
|
22
22
|
alias,
|
|
23
23
|
optional,
|
|
24
24
|
SKIP,
|
|
25
|
+
type ModelSchema,
|
|
25
26
|
} from 'serializr';
|
|
26
27
|
import {
|
|
27
28
|
customEquivalentList,
|
|
28
29
|
customList,
|
|
29
30
|
customListWithSchema,
|
|
31
|
+
optionalCustomList,
|
|
30
32
|
usingConstantValueSchema,
|
|
31
33
|
usingModelSchema,
|
|
32
34
|
} from '@finos/legend-shared';
|
|
@@ -55,6 +57,12 @@ import {
|
|
|
55
57
|
import { V1_INTERNAL__UnknownFunctionActivator } from '../../../model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
|
|
56
58
|
import { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
|
|
57
59
|
import { V1_SnowflakeAppDeploymentConfigurationAppModelSchema } from './V1_FunctionActivatorSerializationHelper.js';
|
|
60
|
+
import {
|
|
61
|
+
V1_deserializeTestSuite,
|
|
62
|
+
V1_serializeTestSuite,
|
|
63
|
+
} from './V1_TestSerializationHelper.js';
|
|
64
|
+
import type { PureProtocolProcessorPlugin } from '../../../../PureProtocolProcessorPlugin.js';
|
|
65
|
+
import type { V1_TestSuite } from '../../../model/test/V1_TestSuite.js';
|
|
58
66
|
|
|
59
67
|
export const V1_CLASS_ELEMENT_PROTOCOL_TYPE = 'class';
|
|
60
68
|
export const V1_PROFILE_ELEMENT_PROTOCOL_TYPE = 'profile';
|
|
@@ -158,6 +166,7 @@ export const V1_snowflakeAppModelSchema = createModelSchema(V1_SnowflakeApp, {
|
|
|
158
166
|
activationConfiguration: usingModelSchema(
|
|
159
167
|
V1_SnowflakeAppDeploymentConfigurationAppModelSchema,
|
|
160
168
|
),
|
|
169
|
+
type: optional(primitive()),
|
|
161
170
|
});
|
|
162
171
|
|
|
163
172
|
// ------------------------------------- Class -------------------------------------
|
|
@@ -280,9 +289,10 @@ export const V1_associationModelSchema = createModelSchema(V1_Association, {
|
|
|
280
289
|
|
|
281
290
|
// ------------------------------------- Function -------------------------------------
|
|
282
291
|
|
|
283
|
-
export const V1_functionModelSchema =
|
|
284
|
-
|
|
285
|
-
|
|
292
|
+
export const V1_functionModelSchema = (
|
|
293
|
+
plugins: PureProtocolProcessorPlugin[],
|
|
294
|
+
): ModelSchema<V1_ConcreteFunctionDefinition> =>
|
|
295
|
+
createModelSchema(V1_ConcreteFunctionDefinition, {
|
|
286
296
|
_type: usingConstantValueSchema(V1_FUNCTION_ELEMENT_PROTOCOL_TYPE),
|
|
287
297
|
body: list(raw()),
|
|
288
298
|
name: primitive(),
|
|
@@ -298,8 +308,11 @@ export const V1_functionModelSchema = createModelSchema(
|
|
|
298
308
|
taggedValues: customListWithSchema(V1_taggedValueModelSchema, {
|
|
299
309
|
INTERNAL__forceReturnEmptyInTest: true,
|
|
300
310
|
}),
|
|
301
|
-
|
|
302
|
-
)
|
|
311
|
+
tests: optionalCustomList(
|
|
312
|
+
(value: V1_TestSuite) => V1_serializeTestSuite(value, plugins),
|
|
313
|
+
(value) => V1_deserializeTestSuite(value, plugins),
|
|
314
|
+
),
|
|
315
|
+
});
|
|
303
316
|
|
|
304
317
|
export const V1_INTERNAL__UnknownFunctionActivatorModelSchema =
|
|
305
318
|
createModelSchema(V1_INTERNAL__UnknownFunctionActivator, {
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
createModelSchema,
|
|
19
|
+
type ModelSchema,
|
|
20
|
+
optional,
|
|
21
|
+
primitive,
|
|
22
|
+
list,
|
|
23
|
+
custom,
|
|
24
|
+
raw,
|
|
25
|
+
} from 'serializr';
|
|
26
|
+
import type { PureProtocolProcessorPlugin } from '../../../../PureProtocolProcessorPlugin.js';
|
|
27
|
+
import { V1_FunctionTestSuite } from '../../../model/packageableElements/function/test/V1_FunctionTestSuite.js';
|
|
28
|
+
import {
|
|
29
|
+
V1_TestSuiteType,
|
|
30
|
+
V1_deserializeAtomicTest,
|
|
31
|
+
V1_deserializeTestAssertion,
|
|
32
|
+
V1_serializeAtomicTest,
|
|
33
|
+
V1_serializeTestAssertion,
|
|
34
|
+
} from './V1_TestSerializationHelper.js';
|
|
35
|
+
import {
|
|
36
|
+
customListWithSchema,
|
|
37
|
+
usingConstantValueSchema,
|
|
38
|
+
usingModelSchema,
|
|
39
|
+
} from '@finos/legend-shared';
|
|
40
|
+
import { V1_FunctionStoreTestData } from '../../../model/packageableElements/function/test/V1_FunctionStoreTestData.js';
|
|
41
|
+
import {
|
|
42
|
+
V1_deserializeEmbeddedDataType,
|
|
43
|
+
V1_serializeEmbeddedDataType,
|
|
44
|
+
} from './V1_DataElementSerializationHelper.js';
|
|
45
|
+
import {
|
|
46
|
+
V1_FunctionParameterValue,
|
|
47
|
+
V1_FunctionTest,
|
|
48
|
+
} from '../../../model/packageableElements/function/test/V1_FunctionTest.js';
|
|
49
|
+
import { ATOMIC_TEST_TYPE } from '../../../../../../../graph/MetaModelConst.js';
|
|
50
|
+
|
|
51
|
+
export const V1_parameterValueModelSchema = createModelSchema(
|
|
52
|
+
V1_FunctionParameterValue,
|
|
53
|
+
{
|
|
54
|
+
name: primitive(),
|
|
55
|
+
value: raw(),
|
|
56
|
+
},
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
export const V1_functionTestModelSchema = createModelSchema(V1_FunctionTest, {
|
|
60
|
+
_type: usingConstantValueSchema(ATOMIC_TEST_TYPE.Function_Test),
|
|
61
|
+
assertions: list(
|
|
62
|
+
custom(
|
|
63
|
+
(val) => V1_serializeTestAssertion(val),
|
|
64
|
+
(val) => V1_deserializeTestAssertion(val),
|
|
65
|
+
),
|
|
66
|
+
),
|
|
67
|
+
id: primitive(),
|
|
68
|
+
doc: optional(primitive()),
|
|
69
|
+
parameters: customListWithSchema(V1_parameterValueModelSchema),
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const V1_FunctionStoreTestDataModelSchema = (
|
|
73
|
+
plugins: PureProtocolProcessorPlugin[],
|
|
74
|
+
): ModelSchema<V1_FunctionStoreTestData> =>
|
|
75
|
+
createModelSchema(V1_FunctionStoreTestData, {
|
|
76
|
+
data: custom(
|
|
77
|
+
(val) => V1_serializeEmbeddedDataType(val, plugins),
|
|
78
|
+
(val) => V1_deserializeEmbeddedDataType(val, plugins),
|
|
79
|
+
),
|
|
80
|
+
doc: optional(primitive()),
|
|
81
|
+
store: primitive(),
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
export const V1_functionTestSuiteModelSchema = (
|
|
85
|
+
plugins: PureProtocolProcessorPlugin[],
|
|
86
|
+
): ModelSchema<V1_FunctionTestSuite> =>
|
|
87
|
+
createModelSchema(V1_FunctionTestSuite, {
|
|
88
|
+
_type: usingConstantValueSchema(V1_TestSuiteType.FUNCTION_TEST_SUITE),
|
|
89
|
+
doc: optional(primitive()),
|
|
90
|
+
id: primitive(),
|
|
91
|
+
testData: optional(
|
|
92
|
+
list(usingModelSchema(V1_FunctionStoreTestDataModelSchema(plugins))),
|
|
93
|
+
),
|
|
94
|
+
tests: list(
|
|
95
|
+
custom(
|
|
96
|
+
(val) => V1_serializeAtomicTest(val, plugins),
|
|
97
|
+
(val) => V1_deserializeAtomicTest(val, plugins),
|
|
98
|
+
),
|
|
99
|
+
),
|
|
100
|
+
});
|
|
@@ -65,6 +65,12 @@ import {
|
|
|
65
65
|
V1_serviceTestModelSchema,
|
|
66
66
|
V1_serviceTestSuiteModelSchema,
|
|
67
67
|
} from './V1_ServiceSerializationHelper.js';
|
|
68
|
+
import { V1_FunctionTestSuite } from '../../../model/packageableElements/function/test/V1_FunctionTestSuite.js';
|
|
69
|
+
import {
|
|
70
|
+
V1_functionTestModelSchema,
|
|
71
|
+
V1_functionTestSuiteModelSchema,
|
|
72
|
+
} from './V1_FunctionSeriaizationHelper.js';
|
|
73
|
+
import { V1_FunctionTest } from '../../../model/packageableElements/function/test/V1_FunctionTest.js';
|
|
68
74
|
|
|
69
75
|
enum V1_AssertionStatusType {
|
|
70
76
|
ASSERT_FAIL = 'assertFail',
|
|
@@ -89,6 +95,7 @@ enum V1_TestResultType {
|
|
|
89
95
|
export enum V1_TestSuiteType {
|
|
90
96
|
SERVICE_TEST_SUITE = 'serviceTestSuite',
|
|
91
97
|
MAPPING_TEST_SUITE = 'mappingTestSuite',
|
|
98
|
+
FUNCTION_TEST_SUITE = 'functionTestSuite',
|
|
92
99
|
}
|
|
93
100
|
|
|
94
101
|
export const V1_uniqueTestIdModelSchema = createModelSchema(V1_UniqueTestId, {
|
|
@@ -233,6 +240,8 @@ export const V1_serializeAtomicTest = (
|
|
|
233
240
|
return serialize(V1_serviceTestModelSchema, protocol);
|
|
234
241
|
} else if (protocol instanceof V1_MappingTest) {
|
|
235
242
|
return serialize(V1_mappingTestModelSchema(plugins), protocol);
|
|
243
|
+
} else if (protocol instanceof V1_FunctionTest) {
|
|
244
|
+
return serialize(V1_functionTestModelSchema, protocol);
|
|
236
245
|
}
|
|
237
246
|
const extraAtomicTestSerializers = plugins.flatMap(
|
|
238
247
|
(plugin) =>
|
|
@@ -260,6 +269,8 @@ export const V1_deserializeAtomicTest = (
|
|
|
260
269
|
switch (json._type) {
|
|
261
270
|
case ATOMIC_TEST_TYPE.Service_Test:
|
|
262
271
|
return deserialize(V1_serviceTestModelSchema, json);
|
|
272
|
+
case ATOMIC_TEST_TYPE.Function_Test:
|
|
273
|
+
return deserialize(V1_functionTestModelSchema, json);
|
|
263
274
|
case ATOMIC_TEST_TYPE.Mapping_Test:
|
|
264
275
|
return deserialize(V1_mappingTestModelSchema(plugins), json);
|
|
265
276
|
default: {
|
|
@@ -323,6 +334,8 @@ export const V1_serializeTestSuite = (
|
|
|
323
334
|
return serialize(V1_serviceTestSuiteModelSchema(plugins), protocol);
|
|
324
335
|
} else if (protocol instanceof V1_MappingTestSuite) {
|
|
325
336
|
return serialize(V1_mappingTestSuiteModelSchema(plugins), protocol);
|
|
337
|
+
} else if (protocol instanceof V1_FunctionTestSuite) {
|
|
338
|
+
return serialize(V1_functionTestSuiteModelSchema(plugins), protocol);
|
|
326
339
|
}
|
|
327
340
|
throw new UnsupportedOperationError(`Can't serialize test suite`, protocol);
|
|
328
341
|
};
|
|
@@ -336,6 +349,8 @@ export const V1_deserializeTestSuite = (
|
|
|
336
349
|
return deserialize(V1_serviceTestSuiteModelSchema(plugins), json);
|
|
337
350
|
case V1_TestSuiteType.MAPPING_TEST_SUITE:
|
|
338
351
|
return deserialize(V1_mappingTestSuiteModelSchema(plugins), json);
|
|
352
|
+
case V1_TestSuiteType.FUNCTION_TEST_SUITE:
|
|
353
|
+
return deserialize(V1_functionTestSuiteModelSchema(plugins), json);
|
|
339
354
|
default:
|
|
340
355
|
throw new UnsupportedOperationError(
|
|
341
356
|
`Can't deserialize test suite of type '${json._type}'`,
|
package/src/index.ts
CHANGED
|
@@ -77,6 +77,8 @@ export { FunctionActivator } from './graph/metamodel/pure/packageableElements/fu
|
|
|
77
77
|
export { INTERNAL__UnknownFunctionActivator } from './graph/metamodel/pure/packageableElements/function/INTERNAL__UnknownFunctionActivator.js';
|
|
78
78
|
export { SnowflakeApp } from './graph/metamodel/pure/packageableElements/function/SnowflakeApp.js';
|
|
79
79
|
export { SnowflakeAppDeploymentConfiguration } from './graph/metamodel/pure/functionActivator/SnowflakeAppDeploymentConfiguration.js';
|
|
80
|
+
export { SnowflakeAppType } from './graph/metamodel/pure/functionActivator/SnowflakeAppType.js';
|
|
81
|
+
|
|
80
82
|
// --------------------------------------------- VALUE SPECIFICATION --------------------------------------------------
|
|
81
83
|
|
|
82
84
|
// metamodels
|
|
@@ -510,7 +512,9 @@ export * from './graph/metamodel/pure/packageableElements/mapping/MappingTest.js
|
|
|
510
512
|
export * from './graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.js';
|
|
511
513
|
export * from './graph/metamodel/pure/packageableElements/mapping/MappingStoreTestData.js';
|
|
512
514
|
export { type EmbeddedSetImplementation } from './graph/metamodel/pure/packageableElements/mapping/EmbeddedSetImplementation.js';
|
|
513
|
-
|
|
515
|
+
export * from './graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.js';
|
|
516
|
+
export * from './graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.js';
|
|
517
|
+
export * from './graph/metamodel/pure/packageableElements/function/test/FunctionTest.js';
|
|
514
518
|
export {
|
|
515
519
|
type RawMappingModelCoverageAnalysisResult,
|
|
516
520
|
MappingModelCoverageAnalysisResult,
|
package/tsconfig.json
CHANGED
|
@@ -114,6 +114,7 @@
|
|
|
114
114
|
"./src/graph/metamodel/pure/executionPlan/result/VoidResultType.ts",
|
|
115
115
|
"./src/graph/metamodel/pure/functionActivator/DeploymentConfiguration.ts",
|
|
116
116
|
"./src/graph/metamodel/pure/functionActivator/SnowflakeAppDeploymentConfiguration.ts",
|
|
117
|
+
"./src/graph/metamodel/pure/functionActivator/SnowflakeAppType.ts",
|
|
117
118
|
"./src/graph/metamodel/pure/packageableElements/INTERNAL__UnknownPackageableElement.ts",
|
|
118
119
|
"./src/graph/metamodel/pure/packageableElements/PackageableElement.ts",
|
|
119
120
|
"./src/graph/metamodel/pure/packageableElements/PackageableElementReference.ts",
|
|
@@ -162,6 +163,9 @@
|
|
|
162
163
|
"./src/graph/metamodel/pure/packageableElements/function/FunctionActivator.ts",
|
|
163
164
|
"./src/graph/metamodel/pure/packageableElements/function/INTERNAL__UnknownFunctionActivator.ts",
|
|
164
165
|
"./src/graph/metamodel/pure/packageableElements/function/SnowflakeApp.ts",
|
|
166
|
+
"./src/graph/metamodel/pure/packageableElements/function/test/FunctionStoreTestData.ts",
|
|
167
|
+
"./src/graph/metamodel/pure/packageableElements/function/test/FunctionTest.ts",
|
|
168
|
+
"./src/graph/metamodel/pure/packageableElements/function/test/FunctionTestSuite.ts",
|
|
165
169
|
"./src/graph/metamodel/pure/packageableElements/generationSpecification/AbstractGenerationSpecification.ts",
|
|
166
170
|
"./src/graph/metamodel/pure/packageableElements/generationSpecification/GenerationSpecification.ts",
|
|
167
171
|
"./src/graph/metamodel/pure/packageableElements/generationSpecification/ModelGenerationSpecification.ts",
|
|
@@ -412,6 +416,7 @@
|
|
|
412
416
|
"./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorInfo.ts",
|
|
413
417
|
"./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorInput.ts",
|
|
414
418
|
"./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppDeploymentConfiguration.ts",
|
|
419
|
+
"./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppType.ts",
|
|
415
420
|
"./src/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.ts",
|
|
416
421
|
"./src/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.ts",
|
|
417
422
|
"./src/graph-manager/protocol/pure/v1/engine/generation/V1_FileGenerationInput.ts",
|
|
@@ -527,6 +532,9 @@
|
|
|
527
532
|
"./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_FunctionActivator.ts",
|
|
528
533
|
"./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.ts",
|
|
529
534
|
"./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.ts",
|
|
535
|
+
"./src/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionStoreTestData.ts",
|
|
536
|
+
"./src/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTest.ts",
|
|
537
|
+
"./src/graph-manager/protocol/pure/v1/model/packageableElements/function/test/V1_FunctionTestSuite.ts",
|
|
530
538
|
"./src/graph-manager/protocol/pure/v1/model/packageableElements/generationSpecification/V1_AbstractGenerationSpecification.ts",
|
|
531
539
|
"./src/graph-manager/protocol/pure/v1/model/packageableElements/generationSpecification/V1_GenerationSpecification.ts",
|
|
532
540
|
"./src/graph-manager/protocol/pure/v1/model/packageableElements/generationSpecification/V1_ModelGenerationSpecification.ts",
|
|
@@ -767,6 +775,7 @@
|
|
|
767
775
|
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.ts",
|
|
768
776
|
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FileGenerationSerializationHelper.ts",
|
|
769
777
|
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionActivatorSerializationHelper.ts",
|
|
778
|
+
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionSeriaizationHelper.ts",
|
|
770
779
|
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_GenerationSpecificationSerializationHelper.ts",
|
|
771
780
|
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.ts",
|
|
772
781
|
"./src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MilestoningSerializationHelper.ts",
|