@finos/legend-application-studio 28.13.11 → 28.13.13

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.
Files changed (61) hide show
  1. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.d.ts.map +1 -1
  2. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js +4 -3
  3. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js.map +1 -1
  4. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.d.ts +1 -1
  5. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.d.ts.map +1 -1
  6. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.js +6 -13
  7. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.js.map +1 -1
  8. package/lib/components/editor/editor-group/mapping-editor/{DEPRECATED__MappingTestEditor.d.ts → legacy/DEPRECATED__MappingTestEditor.d.ts} +1 -1
  9. package/lib/components/editor/editor-group/mapping-editor/legacy/DEPRECATED__MappingTestEditor.d.ts.map +1 -0
  10. package/lib/components/editor/editor-group/mapping-editor/{DEPRECATED__MappingTestEditor.js → legacy/DEPRECATED__MappingTestEditor.js} +9 -9
  11. package/lib/components/editor/editor-group/mapping-editor/legacy/DEPRECATED__MappingTestEditor.js.map +1 -0
  12. package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.d.ts +24 -0
  13. package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.d.ts.map +1 -0
  14. package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.js +42 -0
  15. package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.js.map +1 -0
  16. package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
  17. package/lib/components/workspace-setup/WorkspaceSetup.js +1 -1
  18. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  19. package/lib/index.css +2 -2
  20. package/lib/index.css.map +1 -1
  21. package/lib/index.d.ts +1 -1
  22. package/lib/index.d.ts.map +1 -1
  23. package/lib/index.js +1 -1
  24. package/lib/index.js.map +1 -1
  25. package/lib/package.json +1 -1
  26. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.d.ts +6 -1
  27. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
  28. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js +24 -5
  29. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  30. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts +9 -9
  31. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  32. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.js +4 -4
  33. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  34. package/lib/stores/editor/editor-state/element-editor-state/mapping/{DEPRECATED__MappingTestState.d.ts → legacy/DEPRECATED__MappingTestState.d.ts} +12 -12
  35. package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/DEPRECATED__MappingTestState.d.ts.map +1 -0
  36. package/lib/stores/editor/editor-state/element-editor-state/mapping/{DEPRECATED__MappingTestState.js → legacy/DEPRECATED__MappingTestState.js} +9 -9
  37. package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/DEPRECATED__MappingTestState.js.map +1 -0
  38. package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.d.ts +72 -0
  39. package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.d.ts.map +1 -0
  40. package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.js +281 -0
  41. package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.js.map +1 -0
  42. package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.d.ts +5 -5
  43. package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.d.ts.map +1 -1
  44. package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.js.map +1 -1
  45. package/package.json +11 -11
  46. package/src/components/editor/editor-group/mapping-editor/MappingEditor.tsx +9 -2
  47. package/src/components/editor/editor-group/mapping-editor/MappingTestsExplorer.tsx +16 -26
  48. package/src/components/editor/editor-group/mapping-editor/{DEPRECATED__MappingTestEditor.tsx → legacy/DEPRECATED__MappingTestEditor.tsx} +9 -9
  49. package/src/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.tsx +156 -0
  50. package/src/components/workspace-setup/WorkspaceSetup.tsx +5 -1
  51. package/src/index.ts +1 -1
  52. package/src/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.ts +37 -10
  53. package/src/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.ts +14 -14
  54. package/src/stores/editor/editor-state/element-editor-state/mapping/{DEPRECATED__MappingTestState.ts → legacy/DEPRECATED__MappingTestState.ts} +23 -22
  55. package/src/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.ts +383 -0
  56. package/src/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.ts +8 -8
  57. package/tsconfig.json +4 -2
  58. package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.d.ts.map +0 -1
  59. package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js.map +0 -1
  60. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts.map +0 -1
  61. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js.map +0 -1
@@ -17,7 +17,7 @@
17
17
  import type {
18
18
  MappingEditorState,
19
19
  MappingElementSource,
20
- } from './MappingEditorState.js';
20
+ } from '../MappingEditorState.js';
21
21
  import {
22
22
  type GeneratorFn,
23
23
  LogEvent,
@@ -39,22 +39,22 @@ import {
39
39
  ContentType,
40
40
  StopWatch,
41
41
  } from '@finos/legend-shared';
42
- import type { EditorStore } from '../../../EditorStore.js';
42
+ import type { EditorStore } from '../../../../EditorStore.js';
43
43
  import { observable, flow, action, makeObservable, flowResult } from 'mobx';
44
- import { createMockDataForMappingElementSource } from '../../../utils/MockDataUtils.js';
44
+ import { createMockDataForMappingElementSource } from '../../../../utils/MockDataUtils.js';
45
45
  import {
46
46
  type RawLambda,
47
47
  type Runtime,
48
- type InputData,
49
- type MappingTestAssert,
48
+ type DEPRECATED__InputData,
49
+ type DEPRECATED__MappingTestAssert,
50
50
  type Mapping,
51
51
  type ExecutionResult,
52
52
  extractExecutionResultValues,
53
53
  GRAPH_MANAGER_EVENT,
54
54
  LAMBDA_PIPE,
55
55
  Class,
56
- ExpectedOutputMappingTestAssert,
57
- ObjectInputData,
56
+ DEPRECATED__ExpectedOutputMappingTestAssert,
57
+ DEPRECATED__ObjectInputData,
58
58
  ObjectInputType,
59
59
  IdentifiedConnection,
60
60
  EngineRuntime,
@@ -81,7 +81,7 @@ import {
81
81
  reportGraphAnalytics,
82
82
  } from '@finos/legend-graph';
83
83
  import { DEFAULT_TAB_SIZE } from '@finos/legend-application';
84
- import { flatData_setData } from '../../../../graph-modifier/STO_FlatData_GraphModifierHelper.js';
84
+ import { flatData_setData } from '../../../../../graph-modifier/STO_FlatData_GraphModifierHelper.js';
85
85
  import {
86
86
  expectedOutputMappingTestAssert_setExpectedOutput,
87
87
  mappingTest_setAssert,
@@ -89,19 +89,19 @@ import {
89
89
  objectInputData_setData,
90
90
  runtime_addIdentifiedConnection,
91
91
  runtime_addMapping,
92
- } from '../../../../graph-modifier/DSL_Mapping_GraphModifierHelper.js';
92
+ } from '../../../../../graph-modifier/DSL_Mapping_GraphModifierHelper.js';
93
93
  import {
94
94
  localH2DatasourceSpecification_setTestDataSetupCsv,
95
95
  localH2DatasourceSpecification_setTestDataSetupSqls,
96
96
  relationalInputData_setData,
97
- } from '../../../../graph-modifier/STO_Relational_GraphModifierHelper.js';
97
+ } from '../../../../../graph-modifier/STO_Relational_GraphModifierHelper.js';
98
98
  import {
99
99
  LambdaEditorState,
100
100
  QueryBuilderTelemetryHelper,
101
101
  QUERY_BUILDER_EVENT,
102
102
  ExecutionPlanState,
103
103
  } from '@finos/legend-query-builder';
104
- import { MappingEditorTabState } from './MappingTabManagerState.js';
104
+ import { MappingEditorTabState } from '../MappingTabManagerState.js';
105
105
 
106
106
  export enum TEST_RESULT {
107
107
  NONE = 'NONE', // test has not run yet
@@ -194,12 +194,12 @@ abstract class MappingTestInputDataState {
194
194
  readonly uuid = uuid();
195
195
  editorStore: EditorStore;
196
196
  mapping: Mapping;
197
- inputData: InputData;
197
+ inputData: DEPRECATED__InputData;
198
198
 
199
199
  constructor(
200
200
  editorStore: EditorStore,
201
201
  mapping: Mapping,
202
- inputData: InputData,
202
+ inputData: DEPRECATED__InputData,
203
203
  ) {
204
204
  this.editorStore = editorStore;
205
205
  this.mapping = mapping;
@@ -210,7 +210,7 @@ abstract class MappingTestInputDataState {
210
210
  }
211
211
 
212
212
  export class MappingTestObjectInputDataState extends MappingTestInputDataState {
213
- declare inputData: ObjectInputData;
213
+ declare inputData: DEPRECATED__ObjectInputData;
214
214
  /**
215
215
  * @workaround https://github.com/finos/legend-studio/issues/68
216
216
  */
@@ -219,7 +219,7 @@ export class MappingTestObjectInputDataState extends MappingTestInputDataState {
219
219
  constructor(
220
220
  editorStore: EditorStore,
221
221
  mapping: Mapping,
222
- inputData: ObjectInputData,
222
+ inputData: DEPRECATED__ObjectInputData,
223
223
  ) {
224
224
  super(editorStore, mapping, inputData);
225
225
 
@@ -353,21 +353,21 @@ export class MappingTestRelationalInputDataState extends MappingTestInputDataSta
353
353
 
354
354
  abstract class MappingTestAssertionState {
355
355
  readonly uuid = uuid();
356
- assert: MappingTestAssert;
356
+ assert: DEPRECATED__MappingTestAssert;
357
357
 
358
- constructor(assert: MappingTestAssert) {
358
+ constructor(assert: DEPRECATED__MappingTestAssert) {
359
359
  this.assert = assert;
360
360
  }
361
361
  }
362
362
 
363
363
  export class MappingTestExpectedOutputAssertionState extends MappingTestAssertionState {
364
- declare assert: ExpectedOutputMappingTestAssert;
364
+ declare assert: DEPRECATED__ExpectedOutputMappingTestAssert;
365
365
  /**
366
366
  * @workaround https://github.com/finos/legend-studio/issues/68
367
367
  */
368
368
  expectedResult: string;
369
369
 
370
- constructor(assert: ExpectedOutputMappingTestAssert) {
370
+ constructor(assert: DEPRECATED__ExpectedOutputMappingTestAssert) {
371
371
  super(assert);
372
372
 
373
373
  makeObservable(this, {
@@ -399,6 +399,7 @@ export enum MAPPING_TEST_EDITOR_TAB_TYPE {
399
399
  SETUP = 'Test Setup',
400
400
  RESULT = 'Test Result',
401
401
  }
402
+
402
403
  /**
403
404
  * TODO: Remove once migration from `MappingTest_Legacy` to `MappingTest` is complete
404
405
  * @deprecated
@@ -513,7 +514,7 @@ export class DEPRECATED__MappingTestState extends MappingEditorTabState {
513
514
  'Mapping test input data must contain at least one item',
514
515
  );
515
516
  const inputData = this.test.inputData[0];
516
- if (inputData instanceof ObjectInputData) {
517
+ if (inputData instanceof DEPRECATED__ObjectInputData) {
517
518
  return new MappingTestObjectInputDataState(
518
519
  this.editorStore,
519
520
  this.mappingEditorState.mapping,
@@ -540,7 +541,7 @@ export class DEPRECATED__MappingTestState extends MappingEditorTabState {
540
541
 
541
542
  buildAssertionState(): MappingTestAssertionState {
542
543
  const testAssertion = this.test.assert;
543
- if (testAssertion instanceof ExpectedOutputMappingTestAssert) {
544
+ if (testAssertion instanceof DEPRECATED__ExpectedOutputMappingTestAssert) {
544
545
  return new MappingTestExpectedOutputAssertionState(testAssertion);
545
546
  }
546
547
  throw new UnsupportedOperationError(
@@ -584,7 +585,7 @@ export class DEPRECATED__MappingTestState extends MappingEditorTabState {
584
585
  const newInputDataState = new MappingTestObjectInputDataState(
585
586
  this.editorStore,
586
587
  this.mappingEditorState.mapping,
587
- new ObjectInputData(
588
+ new DEPRECATED__ObjectInputData(
588
589
  PackageableElementExplicitReference.create(source ?? stub_Class()),
589
590
  ObjectInputType.JSON,
590
591
  tryToMinifyJSONString('{}'),
@@ -0,0 +1,383 @@
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
+ type DEPRECATED__MappingTest,
19
+ type DEPRECATED__InputData,
20
+ type Mapping,
21
+ FlatDataInputData,
22
+ MappingTestSuite,
23
+ MappingTest,
24
+ EqualToJson,
25
+ StoreTestData,
26
+ DEPRECATED__ObjectInputData,
27
+ PackageableElementExplicitReference,
28
+ ModelStore,
29
+ ModelStoreData,
30
+ ModelEmbeddedData,
31
+ ExternalFormatData,
32
+ ObjectInputType,
33
+ DEPRECATED__ExpectedOutputMappingTestAssert,
34
+ RelationalInputData,
35
+ } from '@finos/legend-graph';
36
+ import type { EditorStore } from '../../../../EditorStore.js';
37
+ import type { MappingEditorState } from '../MappingEditorState.js';
38
+ import {
39
+ ContentType,
40
+ guaranteeNonNullable,
41
+ uniq,
42
+ type GeneratorFn,
43
+ guaranteeType,
44
+ ActionState,
45
+ assertErrorThrown,
46
+ } from '@finos/legend-shared';
47
+ import { action, computed, flow, makeObservable, observable } from 'mobx';
48
+ import {
49
+ mapping_addDEPRECATEDTest,
50
+ mapping_addTestSuite,
51
+ mapping_deleteTest,
52
+ mapping_deleteTestSuite,
53
+ } from '../../../../../graph-modifier/DSL_Mapping_GraphModifierHelper.js';
54
+
55
+ enum UNSUPPORTED_REASON {
56
+ FLAT_DATA = 'FLAT_DATA',
57
+ MULTI_INPUT_DATA = 'MULTI_INPUT_DATA',
58
+ RELATIONAL = 'RELATIONAL',
59
+ }
60
+
61
+ class SupportedMigrationTestState {
62
+ test: DEPRECATED__MappingTest;
63
+ inputData: DEPRECATED__InputData;
64
+
65
+ constructor(test: DEPRECATED__MappingTest, inputData: DEPRECATED__InputData) {
66
+ this.test = test;
67
+ this.inputData = inputData;
68
+ }
69
+ }
70
+ export enum MIGRATE_PHASE {
71
+ OVERVIEW = 'OVERVIEW',
72
+ CONFIRM = 'CONFIRM',
73
+ }
74
+ export class MappingTestConfirmationState {
75
+ editorStore: EditorStore;
76
+ migrationState: MappingTestMigrationState;
77
+ before: string | undefined;
78
+ after: string | undefined;
79
+ // diffs
80
+ suitesToAdd: MappingTestSuite[];
81
+ testsToDelete: DEPRECATED__MappingTest[];
82
+ migrated = false;
83
+ calculatingDiffs = ActionState.create();
84
+
85
+ constructor(migrationState: MappingTestMigrationState) {
86
+ makeObservable(this, {
87
+ init: flow,
88
+ migrate: action,
89
+ reverse: action,
90
+ before: observable,
91
+ after: observable,
92
+ suitesToAdd: observable,
93
+ testsToDelete: observable,
94
+ });
95
+ this.migrationState = migrationState;
96
+ this.editorStore = migrationState.editorStore;
97
+ this.suitesToAdd = migrationState.migrate();
98
+ this.testsToDelete = this.migrationState.migrateableTests;
99
+ this.init();
100
+ }
101
+
102
+ *init(): GeneratorFn<void> {
103
+ try {
104
+ this.calculatingDiffs.inProgress();
105
+ // before
106
+ const beforeEntity =
107
+ this.migrationState.editorStore.graphManagerState.graphManager.elementToEntity(
108
+ this.migrationState.mapping,
109
+ );
110
+ this.migrate();
111
+ // after
112
+ const after =
113
+ this.migrationState.editorStore.graphManagerState.graphManager.elementToEntity(
114
+ this.migrationState.mapping,
115
+ );
116
+ const beforeP =
117
+ this.editorStore.graphManagerState.graphManager.entitiesToPureCode([
118
+ beforeEntity,
119
+ ]);
120
+ const afterP =
121
+ this.editorStore.graphManagerState.graphManager.entitiesToPureCode([
122
+ after,
123
+ ]);
124
+ const [beforeGrammar, afterGrammar] = (yield Promise.all([
125
+ beforeP,
126
+ afterP,
127
+ ])) as [string, string];
128
+
129
+ // done
130
+ this.before = beforeGrammar;
131
+ this.after = afterGrammar;
132
+ this.reverse();
133
+ } catch (error) {
134
+ assertErrorThrown(error);
135
+ this.editorStore.applicationStore.notificationService.notifyError(
136
+ `Error calcuating mapping diffs: ${error.message}`,
137
+ );
138
+ } finally {
139
+ this.calculatingDiffs.complete();
140
+ }
141
+ }
142
+
143
+ migrate(): void {
144
+ // add
145
+ this.suitesToAdd.forEach((suite) =>
146
+ mapping_addTestSuite(
147
+ this.migrationState.mapping,
148
+ suite,
149
+ this.editorStore.changeDetectionState.observerContext,
150
+ ),
151
+ );
152
+ // delete
153
+ this.testsToDelete.forEach((test) =>
154
+ mapping_deleteTest(this.migrationState.mapping, test),
155
+ );
156
+ this.migrated = true;
157
+ }
158
+
159
+ reverse(): void {
160
+ // add
161
+ this.suitesToAdd.forEach((suite) =>
162
+ mapping_deleteTestSuite(this.migrationState.mapping, suite),
163
+ );
164
+ // delete
165
+ this.testsToDelete.forEach((test) =>
166
+ mapping_addDEPRECATEDTest(
167
+ this.migrationState.mapping,
168
+ test,
169
+ this.editorStore.changeDetectionState.observerContext,
170
+ ),
171
+ );
172
+ this.migrated = false;
173
+ }
174
+ }
175
+
176
+ export class MappingTestMigrationState {
177
+ readonly editorStore: EditorStore;
178
+ readonly mappingEditorState: MappingEditorState;
179
+ unsupported: Map<UNSUPPORTED_REASON, DEPRECATED__MappingTest[]>;
180
+ queryToSuiteMap: Map<string, SupportedMigrationTestState[]>;
181
+ suitesAdded: MappingTestSuite[] | undefined;
182
+
183
+ // phases
184
+ steps: [MIGRATE_PHASE, MIGRATE_PHASE] = [
185
+ MIGRATE_PHASE.OVERVIEW,
186
+ MIGRATE_PHASE.CONFIRM,
187
+ ];
188
+ currentStep: MIGRATE_PHASE = MIGRATE_PHASE.OVERVIEW;
189
+ confirmationState: MappingTestConfirmationState | undefined;
190
+
191
+ constructor(
192
+ editorStore: EditorStore,
193
+ mappingEditorState: MappingEditorState,
194
+ unsupported: Map<UNSUPPORTED_REASON, DEPRECATED__MappingTest[]>,
195
+ supported: Map<string, SupportedMigrationTestState[]>,
196
+ ) {
197
+ makeObservable(this, {
198
+ suitesAdded: observable,
199
+ currentStep: observable,
200
+ confirmationState: observable,
201
+ handleNext: action,
202
+ activeStep: computed,
203
+ disableBack: computed,
204
+ disableNext: computed,
205
+ handleBack: action,
206
+ });
207
+ this.editorStore = editorStore;
208
+ this.mappingEditorState = mappingEditorState;
209
+ this.unsupported = unsupported;
210
+ this.queryToSuiteMap = supported;
211
+ }
212
+
213
+ get activeStep(): number {
214
+ return this.steps.findIndex((e) => e === this.currentStep);
215
+ }
216
+
217
+ get disableBack(): boolean {
218
+ if (this.currentStep === MIGRATE_PHASE.OVERVIEW) {
219
+ return true;
220
+ }
221
+ return false;
222
+ }
223
+
224
+ get disableNext(): boolean {
225
+ return !this.migrateableTests.length;
226
+ }
227
+
228
+ get nextText(): string {
229
+ if (this.currentStep === MIGRATE_PHASE.CONFIRM) {
230
+ return 'Confirm';
231
+ }
232
+
233
+ return 'Next';
234
+ }
235
+
236
+ handleBack(): void {
237
+ if (this.currentStep === MIGRATE_PHASE.CONFIRM) {
238
+ this.confirmationState?.reverse();
239
+ this.confirmationState = undefined;
240
+ this.currentStep = MIGRATE_PHASE.OVERVIEW;
241
+ }
242
+ }
243
+
244
+ handleNext(): void {
245
+ if (this.currentStep === MIGRATE_PHASE.OVERVIEW) {
246
+ this.confirmationState = new MappingTestConfirmationState(this);
247
+ this.currentStep = MIGRATE_PHASE.CONFIRM;
248
+ } else {
249
+ this.confirmationState?.migrate();
250
+ this.mappingEditorState.closeMigrationTool();
251
+ this.mappingEditorState.DEPRECATED_mappingTestStates =
252
+ this.mappingEditorState.buildLegacyTestsStates();
253
+ }
254
+ }
255
+
256
+ static build(
257
+ editorStore: EditorStore,
258
+ mappingEditorState: MappingEditorState,
259
+ ): MappingTestMigrationState {
260
+ const unsupportedTests = new Map<
261
+ UNSUPPORTED_REASON,
262
+ DEPRECATED__MappingTest[]
263
+ >();
264
+ const supported = new Map<string, SupportedMigrationTestState[]>();
265
+ mappingEditorState.mapping.test.forEach((test) => {
266
+ let testUnsupportedReason: UNSUPPORTED_REASON | undefined = undefined;
267
+ const nullableInputData = test.inputData[0];
268
+ if (test.inputData.length !== 1 || !nullableInputData) {
269
+ testUnsupportedReason = UNSUPPORTED_REASON.MULTI_INPUT_DATA;
270
+ } else if (nullableInputData instanceof FlatDataInputData) {
271
+ testUnsupportedReason = UNSUPPORTED_REASON.FLAT_DATA;
272
+ } else if (nullableInputData instanceof RelationalInputData) {
273
+ testUnsupportedReason = UNSUPPORTED_REASON.FLAT_DATA;
274
+ }
275
+ if (testUnsupportedReason) {
276
+ const unsupportedTest =
277
+ unsupportedTests.get(testUnsupportedReason) ?? [];
278
+ unsupportedTest.push(test);
279
+ unsupportedTests.set(testUnsupportedReason, unsupportedTest);
280
+ return;
281
+ }
282
+ const inputData = guaranteeNonNullable(nullableInputData);
283
+ const testQuery = test.query;
284
+ // we will use hash code to see if the same query exists
285
+ const suites = supported.get(testQuery.hashCode) ?? [];
286
+ suites.push(new SupportedMigrationTestState(test, inputData));
287
+ supported.set(testQuery.hashCode, suites);
288
+ });
289
+
290
+ return new MappingTestMigrationState(
291
+ editorStore,
292
+ mappingEditorState,
293
+ unsupportedTests,
294
+ supported,
295
+ );
296
+ }
297
+
298
+ migrate(): MappingTestSuite[] {
299
+ const suites: MappingTestSuite[] = [];
300
+ this.suiteValuesToMigrate.forEach((testsWithQuery) => {
301
+ if (!testsWithQuery.length) {
302
+ return;
303
+ }
304
+ const test = guaranteeNonNullable(testsWithQuery[0]);
305
+ const query = test.test.query;
306
+ const suite = new MappingTestSuite();
307
+ suite.func = query;
308
+ testsWithQuery.forEach((legacyTestState) => {
309
+ const legacyTest = legacyTestState.test;
310
+ const legacyAssertion = guaranteeType(
311
+ legacyTest.assert,
312
+ DEPRECATED__ExpectedOutputMappingTestAssert,
313
+ );
314
+ const mappingTest = new MappingTest();
315
+ const assertion = new EqualToJson();
316
+ mappingTest.id = legacyTest.name;
317
+ assertion.id = legacyTest.name;
318
+ mappingTest.assertions = [assertion];
319
+ assertion.parentTest = mappingTest;
320
+ assertion.expected = new ExternalFormatData();
321
+ assertion.expected.contentType = ContentType.APPLICATION_JSON;
322
+ assertion.expected.data = legacyAssertion.expectedOutput;
323
+ const inputData = legacyTestState.inputData;
324
+ const storeTestData = new StoreTestData();
325
+ if (inputData instanceof DEPRECATED__ObjectInputData) {
326
+ storeTestData.store = PackageableElementExplicitReference.create(
327
+ ModelStore.INSTANCE,
328
+ );
329
+ const modelStoreData = new ModelStoreData();
330
+ const modelEmbeddedData = new ModelEmbeddedData();
331
+ modelEmbeddedData.model = PackageableElementExplicitReference.create(
332
+ inputData.sourceClass.value,
333
+ );
334
+ const externalFormatData = new ExternalFormatData();
335
+ if (inputData.inputType === ObjectInputType.XML) {
336
+ externalFormatData.contentType = ContentType.APPLICATION_XML;
337
+ } else {
338
+ externalFormatData.contentType = ContentType.APPLICATION_JSON;
339
+ }
340
+ externalFormatData.data = inputData.data;
341
+ modelEmbeddedData.data = externalFormatData;
342
+ modelStoreData.modelData = [modelEmbeddedData];
343
+ storeTestData.data = modelStoreData;
344
+ } else if (inputData instanceof RelationalInputData) {
345
+ storeTestData.store = PackageableElementExplicitReference.create(
346
+ inputData.database.value,
347
+ );
348
+ }
349
+ mappingTest.storeTestData = [storeTestData];
350
+ mappingTest.__parent = suite;
351
+ suite.tests.push(mappingTest);
352
+ });
353
+ // calculate ID
354
+ let id = 'suite';
355
+ if (suite.tests.length === 1) {
356
+ id = `${guaranteeNonNullable(suite.tests[0]).id}_${id}`;
357
+ } else {
358
+ id = `suite_${suites.length}`;
359
+ }
360
+ suite.id = id;
361
+ suites.push(suite);
362
+ });
363
+ return suites;
364
+ }
365
+
366
+ get suiteValuesToMigrate(): SupportedMigrationTestState[][] {
367
+ return Array.from(this.queryToSuiteMap.values());
368
+ }
369
+
370
+ get unSupportedTestsToMigrate(): DEPRECATED__MappingTest[] {
371
+ return uniq(Array.from(this.unsupported.values()).flat());
372
+ }
373
+
374
+ get mapping(): Mapping {
375
+ return this.mappingEditorState.mapping;
376
+ }
377
+
378
+ get migrateableTests(): DEPRECATED__MappingTest[] {
379
+ return this.mapping.test.filter(
380
+ (t) => !this.unSupportedTestsToMigrate.includes(t),
381
+ );
382
+ }
383
+ }
@@ -18,15 +18,15 @@ import {
18
18
  type Enum,
19
19
  type EnumerationMapping,
20
20
  type EnumValueMapping,
21
- type InputData,
21
+ type DEPRECATED__InputData,
22
22
  type InstanceSetImplementation,
23
23
  type Mapping,
24
24
  type DEPRECATED__MappingTest,
25
- type MappingTestAssert,
25
+ type DEPRECATED__MappingTestAssert,
26
26
  type PropertyMapping,
27
27
  type RawLambda,
28
28
  type SetImplementation,
29
- type ExpectedOutputMappingTestAssert,
29
+ type DEPRECATED__ExpectedOutputMappingTestAssert,
30
30
  type OperationSetImplementation,
31
31
  type OperationType,
32
32
  type SetImplementationContainer,
@@ -44,7 +44,7 @@ import {
44
44
  type Class,
45
45
  type PureInstanceSetImplementation,
46
46
  type PurePropertyMapping,
47
- type ObjectInputData,
47
+ type DEPRECATED__ObjectInputData,
48
48
  type ObserverContext,
49
49
  type Type,
50
50
  PackageableElementExplicitReference,
@@ -331,7 +331,7 @@ export const mappingTest_setName = action(
331
331
  export const mappingTest_setInputData = action(
332
332
  (
333
333
  test: DEPRECATED__MappingTest,
334
- value: InputData[],
334
+ value: DEPRECATED__InputData[],
335
335
  observeContext: ObserverContext,
336
336
  ): void => {
337
337
  test.inputData = value.map((i) => observe_InputData(i, observeContext));
@@ -347,14 +347,14 @@ export const DEPRECATED_mappingTest_setQuery = action(
347
347
  export const mappingTest_setAssert = action(
348
348
  (
349
349
  test: DEPRECATED__MappingTest,
350
- value: MappingTestAssert,
350
+ value: DEPRECATED__MappingTestAssert,
351
351
  observerContext: ObserverContext,
352
352
  ): void => {
353
353
  test.assert = observe_MappingTestAssert(value, observerContext);
354
354
  },
355
355
  );
356
356
  export const expectedOutputMappingTestAssert_setExpectedOutput = action(
357
- (e: ExpectedOutputMappingTestAssert, val: string): void => {
357
+ (e: DEPRECATED__ExpectedOutputMappingTestAssert, val: string): void => {
358
358
  e.expectedOutput = val;
359
359
  },
360
360
  );
@@ -471,7 +471,7 @@ export const setImpl_nominateRoot = action(
471
471
  // --------------------------------------------- M2M -------------------------------------
472
472
 
473
473
  export const objectInputData_setData = action(
474
- (o: ObjectInputData, val: string): void => {
474
+ (o: DEPRECATED__ObjectInputData, val: string): void => {
475
475
  o.data = val;
476
476
  },
477
477
  );
package/tsconfig.json CHANGED
@@ -108,7 +108,6 @@
108
108
  "./src/stores/editor/editor-state/element-editor-state/function-activator/INTERNAL__UnknownFunctionActivatorEditorState.ts",
109
109
  "./src/stores/editor/editor-state/element-editor-state/function-activator/SnowflakeAppFunctionActivatorEditorState.ts",
110
110
  "./src/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.ts",
111
- "./src/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.ts",
112
111
  "./src/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.ts",
113
112
  "./src/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.ts",
114
113
  "./src/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.ts",
@@ -118,6 +117,8 @@
118
117
  "./src/stores/editor/editor-state/element-editor-state/mapping/MappingTabManagerState.ts",
119
118
  "./src/stores/editor/editor-state/element-editor-state/mapping/PureInstanceSetImplementationState.ts",
120
119
  "./src/stores/editor/editor-state/element-editor-state/mapping/UnsupportedInstanceSetImplementationState.ts",
120
+ "./src/stores/editor/editor-state/element-editor-state/mapping/legacy/DEPRECATED__MappingTestState.ts",
121
+ "./src/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.ts",
121
122
  "./src/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.ts",
122
123
  "./src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.ts",
123
124
  "./src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.ts",
@@ -233,7 +234,6 @@
233
234
  "./src/components/editor/editor-group/function-activator/SnowflakeAppFunctionActivatorEditor.tsx",
234
235
  "./src/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.tsx",
235
236
  "./src/components/editor/editor-group/mapping-editor/ClassMappingEditor.tsx",
236
- "./src/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.tsx",
237
237
  "./src/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.tsx",
238
238
  "./src/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.tsx",
239
239
  "./src/components/editor/editor-group/mapping-editor/FlatDataRecordTypeTree.tsx",
@@ -250,6 +250,8 @@
250
250
  "./src/components/editor/editor-group/mapping-editor/PropertyMappingsEditor.tsx",
251
251
  "./src/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.tsx",
252
252
  "./src/components/editor/editor-group/mapping-editor/TypeTree.tsx",
253
+ "./src/components/editor/editor-group/mapping-editor/legacy/DEPRECATED__MappingTestEditor.tsx",
254
+ "./src/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.tsx",
253
255
  "./src/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.tsx",
254
256
  "./src/components/editor/editor-group/mapping-editor/relational/TableOrViewSourceTree.tsx",
255
257
  "./src/components/editor/editor-group/project-configuration-editor/ProjectConfigurationEditor.tsx",
@@ -1 +0,0 @@
1
- {"version":3,"file":"DEPRECATED__MappingTestEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EACL,KAAK,4BAA4B,IAAI,4BAA4B,EAGjE,+BAA+B,EAC/B,iCAAiC,EACjC,uCAAuC,EACvC,mCAAmC,EACpC,MAAM,qGAAqG,CAAC;AA+T7G,eAAO,MAAM,6CAA6C,WAChD;IACN,cAAc,EAAE,+BAA+B,CAAC;IAChD,UAAU,EAAE,OAAO,CAAC;CACrB;;CAmBF,CAAC;AAEF,eAAO,MAAM,+CAA+C,WAClD;IACN,cAAc,EAAE,iCAAiC,CAAC;IAClD,UAAU,EAAE,OAAO,CAAC;CACrB;;CAkBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iDAAiD,WACpD;IACN,cAAc,EAAE,mCAAmC,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;CACrB;;CAoBF,CAAC;AA4CF,eAAO,MAAM,uCAAuC,WAC1C;IAAE,SAAS,EAAE,4BAA4B,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE;;CAqGzE,CAAC;AAEF,eAAO,MAAM,qDAAqD,WACxD;IACN,SAAS,EAAE,4BAA4B,CAAC;IACxC,cAAc,EAAE,uCAAuC,CAAC;IACxD,UAAU,EAAE,OAAO,CAAC;CACrB;;CAwEF,CAAC;AAEF,eAAO,MAAM,uCAAuC,WAC1C;IAAE,SAAS,EAAE,4BAA4B,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE;;CAezE,CAAC;AAEF,eAAO,MAAM,8BAA8B,WACjC;IAAE,SAAS,EAAE,4BAA4B,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE;;CAgDzE,CAAC;AAEF,eAAO,MAAM,6BAA6B,WAChC;IAAE,SAAS,EAAE,4BAA4B,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE;;CA+KzE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DEPRECATED__MappingTestEditor.js","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.tsx"],"names":[],"mappings":"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"}