@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.
- package/lib/components/editor/editor-group/mapping-editor/MappingEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js +4 -3
- package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.d.ts +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.js +6 -13
- package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/{DEPRECATED__MappingTestEditor.d.ts → legacy/DEPRECATED__MappingTestEditor.d.ts} +1 -1
- package/lib/components/editor/editor-group/mapping-editor/legacy/DEPRECATED__MappingTestEditor.d.ts.map +1 -0
- package/lib/components/editor/editor-group/mapping-editor/{DEPRECATED__MappingTestEditor.js → legacy/DEPRECATED__MappingTestEditor.js} +9 -9
- package/lib/components/editor/editor-group/mapping-editor/legacy/DEPRECATED__MappingTestEditor.js.map +1 -0
- package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.d.ts +24 -0
- package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.d.ts.map +1 -0
- package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.js +42 -0
- package/lib/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.js.map +1 -0
- package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.js +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.d.ts +6 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js +24 -5
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts +9 -9
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.js +4 -4
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/{DEPRECATED__MappingTestState.d.ts → legacy/DEPRECATED__MappingTestState.d.ts} +12 -12
- package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/DEPRECATED__MappingTestState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/{DEPRECATED__MappingTestState.js → legacy/DEPRECATED__MappingTestState.js} +9 -9
- package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/DEPRECATED__MappingTestState.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.d.ts +72 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.js +281 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.js.map +1 -0
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.d.ts +5 -5
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.d.ts.map +1 -1
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.js.map +1 -1
- package/package.json +11 -11
- package/src/components/editor/editor-group/mapping-editor/MappingEditor.tsx +9 -2
- package/src/components/editor/editor-group/mapping-editor/MappingTestsExplorer.tsx +16 -26
- package/src/components/editor/editor-group/mapping-editor/{DEPRECATED__MappingTestEditor.tsx → legacy/DEPRECATED__MappingTestEditor.tsx} +9 -9
- package/src/components/editor/editor-group/mapping-editor/legacy/MappingTestMigrationTool.tsx +156 -0
- package/src/components/workspace-setup/WorkspaceSetup.tsx +5 -1
- package/src/index.ts +1 -1
- package/src/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.ts +37 -10
- package/src/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.ts +14 -14
- package/src/stores/editor/editor-state/element-editor-state/mapping/{DEPRECATED__MappingTestState.ts → legacy/DEPRECATED__MappingTestState.ts} +23 -22
- package/src/stores/editor/editor-state/element-editor-state/mapping/legacy/MappingTestMigrationState.ts +383 -0
- package/src/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.ts +8 -8
- package/tsconfig.json +4 -2
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.d.ts.map +0 -1
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js.map +0 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts.map +0 -1
- 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 '
|
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 '
|
42
|
+
import type { EditorStore } from '../../../../EditorStore.js';
|
43
43
|
import { observable, flow, action, makeObservable, flowResult } from 'mobx';
|
44
|
-
import { createMockDataForMappingElementSource } from '
|
44
|
+
import { createMockDataForMappingElementSource } from '../../../../utils/MockDataUtils.js';
|
45
45
|
import {
|
46
46
|
type RawLambda,
|
47
47
|
type Runtime,
|
48
|
-
type
|
49
|
-
type
|
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
|
-
|
57
|
-
|
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 '
|
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 '
|
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 '
|
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 '
|
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:
|
197
|
+
inputData: DEPRECATED__InputData;
|
198
198
|
|
199
199
|
constructor(
|
200
200
|
editorStore: EditorStore,
|
201
201
|
mapping: Mapping,
|
202
|
-
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:
|
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:
|
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:
|
356
|
+
assert: DEPRECATED__MappingTestAssert;
|
357
357
|
|
358
|
-
constructor(assert:
|
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:
|
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:
|
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
|
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
|
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
|
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
|
21
|
+
type DEPRECATED__InputData,
|
22
22
|
type InstanceSetImplementation,
|
23
23
|
type Mapping,
|
24
24
|
type DEPRECATED__MappingTest,
|
25
|
-
type
|
25
|
+
type DEPRECATED__MappingTestAssert,
|
26
26
|
type PropertyMapping,
|
27
27
|
type RawLambda,
|
28
28
|
type SetImplementation,
|
29
|
-
type
|
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
|
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:
|
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:
|
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:
|
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:
|
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",
|
package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.d.ts.map
DELETED
@@ -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"}
|
package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js.map
DELETED
@@ -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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"}
|