@finos/legend-application-studio 28.21.23 → 28.21.25
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/__lib__/LegendStudioDocumentation.d.ts +2 -2
- package/lib/__lib__/LegendStudioDocumentation.d.ts.map +1 -1
- package/lib/__lib__/LegendStudioDocumentation.js +1 -1
- package/lib/__lib__/LegendStudioDocumentation.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.js +2 -5
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.js +13 -239
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.js.map +1 -1
- package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.js +17 -3
- package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.d.ts +22 -0
- package/lib/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.d.ts.map +1 -0
- package/lib/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.js +134 -0
- package/lib/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.js.map +1 -0
- package/lib/components/editor/editor-group/testable/LakehouseTestableEditor.d.ts +89 -0
- package/lib/components/editor/editor-group/testable/LakehouseTestableEditor.d.ts.map +1 -0
- package/lib/components/editor/editor-group/testable/LakehouseTestableEditor.js +144 -0
- package/lib/components/editor/editor-group/testable/LakehouseTestableEditor.js.map +1 -0
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +14 -8
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
- package/lib/components/editor/ingest-definition-editor.css +1 -1
- package/lib/components/editor/ingest-definition-editor.css.map +1 -1
- package/lib/components/project-reviewer/ProjectReviewer.d.ts.map +1 -1
- package/lib/components/project-reviewer/ProjectReviewer.js +2 -1
- package/lib/components/project-reviewer/ProjectReviewer.js.map +1 -1
- package/lib/components/project-view/ProjectViewer.d.ts.map +1 -1
- package/lib/components/project-view/ProjectViewer.js +2 -2
- package/lib/components/project-view/ProjectViewer.js.map +1 -1
- package/lib/components/showcase/ShowcaseViewer.d.ts.map +1 -1
- package/lib/components/showcase/ShowcaseViewer.js +2 -2
- package/lib/components/showcase/ShowcaseViewer.js.map +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.d.ts +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.js +98 -43
- 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/package.json +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js +1 -2
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.js +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.d.ts +8 -30
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.js +7 -147
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js +32 -28
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.d.ts +8 -0
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.js +15 -0
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestTestableState.d.ts +86 -0
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestTestableState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestTestableState.js +420 -0
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestTestableState.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/testable/LakehouseTestableUtils.d.ts +62 -0
- package/lib/stores/editor/editor-state/element-editor-state/testable/LakehouseTestableUtils.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/testable/LakehouseTestableUtils.js +138 -0
- package/lib/stores/editor/editor-state/element-editor-state/testable/LakehouseTestableUtils.js.map +1 -0
- package/lib/stores/workspace-setup/WorkspaceSetupStore.d.ts +10 -1
- package/lib/stores/workspace-setup/WorkspaceSetupStore.d.ts.map +1 -1
- package/lib/stores/workspace-setup/WorkspaceSetupStore.js +105 -12
- package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
- package/package.json +11 -11
- package/src/__lib__/LegendStudioDocumentation.ts +1 -1
- package/src/components/editor/editor-group/data-editor/RelationElementsDataEditor.tsx +2 -5
- package/src/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.tsx +19 -869
- package/src/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.tsx +90 -34
- package/src/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.tsx +418 -0
- package/src/components/editor/editor-group/testable/LakehouseTestableEditor.tsx +564 -0
- package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +17 -9
- package/src/components/project-reviewer/ProjectReviewer.tsx +2 -0
- package/src/components/project-view/ProjectViewer.tsx +2 -1
- package/src/components/showcase/ShowcaseViewer.tsx +2 -1
- package/src/components/workspace-setup/WorkspaceSetup.tsx +169 -75
- package/src/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.ts +1 -2
- package/src/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.ts +1 -0
- package/src/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.ts +18 -204
- package/src/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.ts +41 -36
- package/src/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.ts +16 -0
- package/src/stores/editor/editor-state/element-editor-state/ingest/IngestTestableState.ts +654 -0
- package/src/stores/editor/editor-state/element-editor-state/testable/LakehouseTestableUtils.ts +224 -0
- package/src/stores/workspace-setup/WorkspaceSetupStore.ts +125 -8
- package/tsconfig.json +4 -0
|
@@ -16,8 +16,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
16
16
|
*/
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
18
|
import { useEditorStore } from '../../EditorStoreProvider.js';
|
|
19
|
-
import { Dialog, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, ModalTitle, PanelContent, PanelHeader, PanelHeaderActions, EyeIcon, ModalHeaderActions, CustomSelectorInput, } from '@finos/legend-art';
|
|
20
|
-
import { IngestDefinitionEditorState } from '../../../../stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.js';
|
|
19
|
+
import { Dialog, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, ModalTitle, PanelContent, PanelHeader, PanelHeaderActions, EyeIcon, ModalHeaderActions, CustomSelectorInput, FlaskIcon, clsx, } from '@finos/legend-art';
|
|
20
|
+
import { INGEST_DEFINITION_TAB, IngestDefinitionEditorState, } from '../../../../stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.js';
|
|
21
21
|
import { CodeEditor } from '@finos/legend-lego/code-editor';
|
|
22
22
|
import React, { useEffect, useState } from 'react';
|
|
23
23
|
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
|
@@ -25,6 +25,7 @@ import { flowResult } from 'mobx';
|
|
|
25
25
|
import { useApplicationNavigationContext } from '@finos/legend-application';
|
|
26
26
|
import { LEGEND_STUDIO_APPLICATION_NAVIGATION_CONTEXT_KEY } from '../../../../__lib__/LegendStudioApplicationNavigationContext.js';
|
|
27
27
|
import { LINEAGE_VIEW_MODE, LineageViewerContent, } from '@finos/legend-query-builder';
|
|
28
|
+
import { IngestTestableEditor } from './testable/IngestTestableEditor.js';
|
|
28
29
|
export const IngestLineageModal = observer((props) => {
|
|
29
30
|
const { ingestDefinitionEditorState } = props;
|
|
30
31
|
const matviewFunctions = ingestDefinitionEditorState.ingest.TEMPORARY_MATVIEW_FUNCTION_DATA_SETS;
|
|
@@ -79,6 +80,17 @@ export const IngestDefinitionEditor = observer(() => {
|
|
|
79
80
|
const ingestDefinitionEditorState = editorStore.tabManagerState.getCurrentEditorState(IngestDefinitionEditorState);
|
|
80
81
|
const ingestDef = ingestDefinitionEditorState.ingest;
|
|
81
82
|
const isValidForLineage = ingestDefinitionEditorState.validForLineageViewer;
|
|
83
|
+
const selectedTab = ingestDefinitionEditorState.selectedTab;
|
|
84
|
+
const sidebarTabs = [
|
|
85
|
+
{
|
|
86
|
+
label: INGEST_DEFINITION_TAB.DEFINITION,
|
|
87
|
+
icon: _jsx(EyeIcon, {}),
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
label: INGEST_DEFINITION_TAB.TESTING,
|
|
91
|
+
icon: _jsx(FlaskIcon, {}),
|
|
92
|
+
},
|
|
93
|
+
];
|
|
82
94
|
useEffect(() => {
|
|
83
95
|
ingestDefinitionEditorState.generateElementGrammar();
|
|
84
96
|
}, [ingestDefinitionEditorState]);
|
|
@@ -93,6 +105,8 @@ export const IngestDefinitionEditor = observer(() => {
|
|
|
93
105
|
editorStore.applicationStore.notificationService.notifyError('No MatView datasets available for lineage generation');
|
|
94
106
|
}
|
|
95
107
|
};
|
|
96
|
-
return (
|
|
108
|
+
return (_jsx("div", { className: "ingest-definition-editor", children: _jsxs("div", { className: "panel", children: [_jsx(PanelHeader, { title: "Ingest", titleContent: ingestDef.name, darkMode: true, isReadOnly: true }), _jsxs("div", { className: "panel ingest-definition-editor__content-panel", children: [_jsx("div", { className: "ingest-definition-editor__activity-bar", children: _jsx("div", { className: "ingest-definition-editor__activity-bar__items", children: sidebarTabs.map((activity) => (_jsxs("button", { className: clsx('ingest-definition-editor__activity-bar__item', {
|
|
109
|
+
'ingest-definition-editor__activity-bar__item--active': selectedTab === activity.label,
|
|
110
|
+
}), onClick: () => ingestDefinitionEditorState.setSelectedTab(activity.label), tabIndex: -1, title: activity.label, children: [activity.icon, activity.label] }, activity.label))) }) }), _jsxs("div", { className: "panel ingest-definition-editor__main-panel", children: [selectedTab === INGEST_DEFINITION_TAB.DEFINITION && (_jsxs(PanelContent, { children: [_jsx(PanelHeader, { title: "deployment", darkMode: true, children: _jsx(PanelHeaderActions, { children: _jsx("div", { className: "panel__header__actions", children: _jsx("div", { className: "btn__dropdown-combo btn__dropdown-combo--primary", children: _jsxs("button", { className: "btn__dropdown-combo__label", onClick: viewLineage, tabIndex: -1, disabled: !isValidForLineage, children: [_jsx(EyeIcon, { className: "btn__dropdown-combo__label__icon" }), _jsx("div", { className: "btn__dropdown-combo__label__title", children: "Lineage" })] }) }) }) }) }), _jsx(PanelContent, { children: _jsx(CodeEditor, { inputValue: ingestDefinitionEditorState.textContent, isReadOnly: true, language: CODE_EDITOR_LANGUAGE.PURE }) }), _jsx(IngestLineageModal, { ingestDefinitionEditorState: ingestDefinitionEditorState })] })), selectedTab === INGEST_DEFINITION_TAB.TESTING && (_jsx(IngestTestableEditor, { testableState: ingestDefinitionEditorState.ingestTestableState }))] })] })] }) }));
|
|
97
111
|
});
|
|
98
112
|
//# sourceMappingURL=IngestDefinitionEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IngestDefinitionEditor.js","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"IngestDefinitionEditor.js","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-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
|
+
import type { IngestTestableState } from '../../../../../stores/editor/editor-state/element-editor-state/ingest/IngestTestableState.js';
|
|
17
|
+
export declare const IngestTestableEditor: ((props: {
|
|
18
|
+
testableState: IngestTestableState;
|
|
19
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
20
|
+
displayName: string;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=IngestTestableEditor.d.ts.map
|
package/lib/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IngestTestableEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyBH,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,8FAA8F,CAAC;AAmRtG,eAAO,MAAM,oBAAoB,WACvB;IAAE,aAAa,EAAE,mBAAmB,CAAA;CAAE;;CAmG/C,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { observer } from 'mobx-react-lite';
|
|
18
|
+
import { flowResult } from 'mobx';
|
|
19
|
+
import { BlankPanelPlaceholder, clsx, ContextMenu, CustomSelectorInput, Dialog, MenuContent, MenuContentItem, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, ModalTitle, Panel, PanelFormTextField, PanelHeader, PanelHeaderActionItem, PanelHeaderActions, PlusIcon, } from '@finos/legend-art';
|
|
20
|
+
import { forwardRef, useRef, useState } from 'react';
|
|
21
|
+
import { useEditorStore } from '../../../EditorStoreProvider.js';
|
|
22
|
+
import { validateTestableId } from '../../../../../stores/editor/utils/TestableUtils.js';
|
|
23
|
+
import { RenameModal } from '../../testable/TestableSharedComponents.js';
|
|
24
|
+
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
25
|
+
import { testSuite_setId } from '../../../../../stores/graph-modifier/Testable_GraphModifierHelper.js';
|
|
26
|
+
import { LakehouseTestSuiteEditor } from '../../testable/LakehouseTestableEditor.js';
|
|
27
|
+
const CreateSuiteModal = observer((props) => {
|
|
28
|
+
const { testableState, onClose } = props;
|
|
29
|
+
const editorStore = useEditorStore();
|
|
30
|
+
const applicationStore = editorStore.applicationStore;
|
|
31
|
+
const inputRef = useRef(null);
|
|
32
|
+
const [testName, setTestName] = useState(undefined);
|
|
33
|
+
const [datasetName, setDatasetName] = useState(testableState.datasetNames[0]);
|
|
34
|
+
const existingIds = testableState.ingest.tests.map((suite) => suite.id);
|
|
35
|
+
const generateSuiteName = () => {
|
|
36
|
+
let idx = 1;
|
|
37
|
+
while (existingIds.includes(`suite_${idx}`)) {
|
|
38
|
+
idx++;
|
|
39
|
+
}
|
|
40
|
+
return `suite_${idx}`;
|
|
41
|
+
};
|
|
42
|
+
const testError = validateTestableId(testName, undefined);
|
|
43
|
+
const datasetOptions = testableState.datasetNames.map((name) => ({
|
|
44
|
+
value: name,
|
|
45
|
+
label: name,
|
|
46
|
+
}));
|
|
47
|
+
const selectedDatasetOption = datasetOptions.find((option) => option.value === datasetName) ?? null;
|
|
48
|
+
const isValid = testName && !testError && datasetName;
|
|
49
|
+
const create = () => {
|
|
50
|
+
if (!testName || !datasetName) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
flowResult(testableState.createSuite(generateSuiteName(), testName, datasetName))
|
|
54
|
+
.then((error) => {
|
|
55
|
+
if (error) {
|
|
56
|
+
applicationStore.notificationService.notifyError(error);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
onClose();
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
.catch(applicationStore.alertUnhandledError);
|
|
63
|
+
};
|
|
64
|
+
return (_jsx(Dialog, { open: true, onClose: onClose, classes: { container: 'search-modal__container' }, slotProps: {
|
|
65
|
+
transition: { onEnter: () => inputRef.current?.focus() },
|
|
66
|
+
paper: { classes: { root: 'search-modal__inner-container' } },
|
|
67
|
+
}, children: _jsxs(Modal, { darkMode: !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled, children: [_jsx(ModalHeader, { children: _jsx(ModalTitle, { title: "Create Test Suite" }) }), _jsxs(ModalBody, { children: [_jsx(PanelFormTextField, { ref: inputRef, name: "Test Name", prompt: "Name for the first test in this suite", placeholder: "e.g. test_1", value: testName, update: (value) => setTestName(value ?? ''), errorMessage: testError }), _jsxs("div", { className: "panel__content__form__section", children: [_jsx("div", { className: "panel__content__form__section__header__label", children: "MatView Dataset" }), _jsx("div", { className: "panel__content__form__section__header__prompt", children: "Select the MatView dataset tested by this first test" }), _jsx(CustomSelectorInput, { options: datasetOptions, onChange: (option) => setDatasetName(option?.value), value: selectedDatasetOption, placeholder: "Select dataset...", isClearable: false, darkMode: true, disabled: datasetOptions.length === 0 })] })] }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { disabled: !isValid, title: !isValid ? 'Fill in all required fields' : 'Create Suite', onClick: create, text: "Create" }), _jsx(ModalFooterButton, { onClick: onClose, text: "Close", type: "secondary" })] })] }) }));
|
|
68
|
+
});
|
|
69
|
+
// ─── Create Test Modal ────────────────────────────────────────────────────────
|
|
70
|
+
const CreateTestModal = observer((props) => {
|
|
71
|
+
const { suiteState, onClose } = props;
|
|
72
|
+
const editorStore = suiteState.editorStore;
|
|
73
|
+
const applicationStore = editorStore.applicationStore;
|
|
74
|
+
const inputRef = useRef(null);
|
|
75
|
+
const existingIds = suiteState.suite.tests.map((test) => test.id);
|
|
76
|
+
const [testName, setTestName] = useState(undefined);
|
|
77
|
+
const [datasetName, setDatasetName] = useState(suiteState.testableState.datasetNames[0]);
|
|
78
|
+
const testNameError = validateTestableId(testName, existingIds);
|
|
79
|
+
const datasetOptions = suiteState.testableState.datasetNames.map((name) => ({
|
|
80
|
+
value: name,
|
|
81
|
+
label: name,
|
|
82
|
+
}));
|
|
83
|
+
const selectedDatasetOption = datasetOptions.find((option) => option.value === datasetName) ?? null;
|
|
84
|
+
const isValid = testName && !testNameError && datasetName;
|
|
85
|
+
const create = () => {
|
|
86
|
+
if (!testName || !datasetName) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
flowResult(suiteState.addNewTest(testName, datasetName))
|
|
90
|
+
.then((error) => {
|
|
91
|
+
if (error) {
|
|
92
|
+
applicationStore.notificationService.notifyError(error);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
onClose();
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
.catch(applicationStore.alertUnhandledError);
|
|
99
|
+
};
|
|
100
|
+
return (_jsx(Dialog, { open: true, onClose: onClose, classes: { container: 'search-modal__container' }, slotProps: {
|
|
101
|
+
transition: { onEnter: () => inputRef.current?.focus() },
|
|
102
|
+
paper: { classes: { root: 'search-modal__inner-container' } },
|
|
103
|
+
}, children: _jsxs(Modal, { darkMode: !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled, children: [_jsx(ModalHeader, { children: _jsx(ModalTitle, { title: `Add Test to "${suiteState.suite.id}"` }) }), _jsxs(ModalBody, { children: [_jsx(PanelFormTextField, { ref: inputRef, name: "Test Name", prompt: "Unique identifier for the test", placeholder: "e.g. test_1", value: testName, update: (value) => setTestName(value ?? ''), errorMessage: testNameError }), _jsxs("div", { className: "panel__content__form__section", children: [_jsx("div", { className: "panel__content__form__section__header__label", children: "MatView Dataset" }), _jsx("div", { className: "panel__content__form__section__header__prompt", children: "Select which MatView dataset this test will verify" }), _jsx(CustomSelectorInput, { options: datasetOptions, onChange: (option) => setDatasetName(option?.value), value: selectedDatasetOption, placeholder: "Select dataset...", isClearable: false, darkMode: true, disabled: datasetOptions.length === 0 })] })] }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { disabled: !isValid, title: !isValid ? 'Fill in all required fields' : 'Create Test', onClick: create, text: "Create" }), _jsx(ModalFooterButton, { onClick: onClose, text: "Close", type: "secondary" })] })] }) }));
|
|
104
|
+
});
|
|
105
|
+
// ─── Suite Tab Context Menu ───────────────────────────────────────────────────
|
|
106
|
+
const SuiteHeaderTabContextMenu = observer(forwardRef(function SuiteHeaderTabContextMenu(props, ref) {
|
|
107
|
+
const { testSuite, testableState } = props;
|
|
108
|
+
const deleteSuite = () => {
|
|
109
|
+
const suiteState = testableState.suiteStates.find((state) => state.suite === testSuite);
|
|
110
|
+
if (suiteState) {
|
|
111
|
+
testableState.deleteSuite(suiteState);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
const rename = () => testableState.setSuiteToRename(testSuite);
|
|
115
|
+
return (_jsxs(MenuContent, { ref: ref, children: [_jsx(MenuContentItem, { onClick: rename, children: "Rename" }), _jsx(MenuContentItem, { onClick: deleteSuite, children: "Delete" })] }));
|
|
116
|
+
}));
|
|
117
|
+
// ─── Main Testing Tab ─────────────────────────────────────────────────────────
|
|
118
|
+
export const IngestTestableEditor = observer((props) => {
|
|
119
|
+
const { testableState } = props;
|
|
120
|
+
const selectedSuiteState = testableState.selectedSuiteState;
|
|
121
|
+
const isReadOnly = testableState.ingestDefinitionEditorState.isReadOnly;
|
|
122
|
+
const ingest = testableState.ingest;
|
|
123
|
+
const addSuite = () => {
|
|
124
|
+
testableState.setShowCreateSuiteModal(true);
|
|
125
|
+
};
|
|
126
|
+
const changeSuite = (suite) => {
|
|
127
|
+
testableState.changeSuite(suite);
|
|
128
|
+
};
|
|
129
|
+
const renameSuite = (value) => testSuite_setId(guaranteeNonNullable(testableState.suiteToRename), value);
|
|
130
|
+
return (_jsxs(Panel, { className: "service-test-suite-editor", children: [testableState.showCreateSuiteModal && (_jsx(CreateSuiteModal, { testableState: testableState, onClose: () => testableState.setShowCreateSuiteModal(false) })), testableState.showCreateTestModal && selectedSuiteState && (_jsx(CreateTestModal, { suiteState: selectedSuiteState, onClose: () => testableState.setShowCreateTestModal(false) })), _jsxs(PanelHeader, { children: [ingest.tests.length ? (_jsx(PanelHeader, { className: "service-test-suite-editor__header service-test-suite-editor__header--with-tabs", children: _jsx("div", { className: "uml-element-editor__tabs", children: ingest.tests.map((suite) => (_jsx("div", { onClick: () => changeSuite(suite), className: clsx('service-test-suite-editor__tab', {
|
|
131
|
+
'service-test-suite-editor__tab--active': selectedSuiteState?.suite === suite,
|
|
132
|
+
}), children: _jsx(ContextMenu, { className: "mapping-editor__header__tab__content", content: _jsx(SuiteHeaderTabContextMenu, { testableState: testableState, testSuite: suite }), children: suite.id }) }, suite.id))) }) })) : (_jsx("div", {})), _jsx(PanelHeaderActions, { children: _jsx(PanelHeaderActionItem, { onClick: addSuite, title: "Add Test Suite", children: _jsx(PlusIcon, {}) }) })] }), _jsxs(Panel, { className: "service-test-suite-editor", children: [selectedSuiteState && (_jsx(LakehouseTestSuiteEditor, { suiteState: selectedSuiteState, testableState: testableState, isReadOnly: isReadOnly })), !ingest.tests.length && (_jsx(BlankPanelPlaceholder, { text: "Add Test Suite", onClick: addSuite, clickActionType: "add", tooltipText: "Click to add test suite" })), testableState.suiteToRename && (_jsx(RenameModal, { val: testableState.suiteToRename.id, isReadOnly: isReadOnly, showModal: true, closeModal: () => testableState.setSuiteToRename(undefined), setValue: renameSuite }))] })] }));
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=IngestTestableEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IngestTestableEditor.js","sourceRoot":"","sources":["../../../../../../src/components/editor/editor-group/ingest-editor/testable/IngestTestableEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-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
|
+
import type { AtomicTest, TestSuite } from '@finos/legend-graph';
|
|
17
|
+
import type { ActionState, GeneratorFn } from '@finos/legend-shared';
|
|
18
|
+
import type { TestableTestEditorState } from '../../../../stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js';
|
|
19
|
+
import type { LakehouseElementTestDataState, LakehouseTestDataStateBase } from '../../../../stores/editor/editor-state/element-editor-state/testable/LakehouseTestableUtils.js';
|
|
20
|
+
import type { EditorStore } from '../../../../stores/editor/EditorStore.js';
|
|
21
|
+
/**
|
|
22
|
+
* Minimal interface for a suite state object accepted by LakehouseTestsEditor
|
|
23
|
+
* and LakehouseTestSuiteEditor. Satisfied by both IngestTestSuiteState and
|
|
24
|
+
* DataProductTestSuiteState.
|
|
25
|
+
*/
|
|
26
|
+
export interface LakehouseSuiteStateForEditor {
|
|
27
|
+
testDataState: LakehouseTestDataStateBase;
|
|
28
|
+
testStates: TestableTestEditorState[];
|
|
29
|
+
selectTestState: TestableTestEditorState | undefined;
|
|
30
|
+
runningSuiteState: ActionState;
|
|
31
|
+
runSuite(): GeneratorFn<void>;
|
|
32
|
+
changeTest(test: AtomicTest): void;
|
|
33
|
+
deleteTest(test: AtomicTest): void;
|
|
34
|
+
suite: TestSuite;
|
|
35
|
+
editorStore: EditorStore;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Minimal interface for the top-level testable state passed to the tests editor.
|
|
39
|
+
* Satisfied by both IngestTestableState and DataProductTestableState.
|
|
40
|
+
*/
|
|
41
|
+
export interface LakehouseTestableStateForEditor {
|
|
42
|
+
setShowCreateTestModal(val: boolean): void;
|
|
43
|
+
editorStore: EditorStore;
|
|
44
|
+
}
|
|
45
|
+
export declare const LakehouseElementTestDataItem: ((props: {
|
|
46
|
+
elementState: LakehouseElementTestDataState;
|
|
47
|
+
testDataState: LakehouseTestDataStateBase;
|
|
48
|
+
isReadOnly: boolean;
|
|
49
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
50
|
+
displayName: string;
|
|
51
|
+
};
|
|
52
|
+
export declare const LakehouseElementTestDataEditor: ((props: {
|
|
53
|
+
elementState: LakehouseElementTestDataState;
|
|
54
|
+
isReadOnly: boolean;
|
|
55
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
56
|
+
displayName: string;
|
|
57
|
+
};
|
|
58
|
+
export declare const LakehouseAddElementModal: ((props: {
|
|
59
|
+
testDataState: LakehouseTestDataStateBase;
|
|
60
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
61
|
+
displayName: string;
|
|
62
|
+
};
|
|
63
|
+
export declare const LakehouseTestDataEditor: ((props: {
|
|
64
|
+
testDataState: LakehouseTestDataStateBase;
|
|
65
|
+
isReadOnly: boolean;
|
|
66
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
67
|
+
displayName: string;
|
|
68
|
+
};
|
|
69
|
+
export declare const LakehouseTestEditor: ((props: {
|
|
70
|
+
testState: TestableTestEditorState;
|
|
71
|
+
isReadOnly: boolean;
|
|
72
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
73
|
+
displayName: string;
|
|
74
|
+
};
|
|
75
|
+
export declare const LakehouseTestsEditor: ((props: {
|
|
76
|
+
suiteState: LakehouseSuiteStateForEditor;
|
|
77
|
+
testableState: LakehouseTestableStateForEditor;
|
|
78
|
+
isReadOnly: boolean;
|
|
79
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
80
|
+
displayName: string;
|
|
81
|
+
};
|
|
82
|
+
export declare const LakehouseTestSuiteEditor: ((props: {
|
|
83
|
+
suiteState: LakehouseSuiteStateForEditor;
|
|
84
|
+
testableState: LakehouseTestableStateForEditor;
|
|
85
|
+
isReadOnly: boolean;
|
|
86
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
87
|
+
displayName: string;
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=LakehouseTestableEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LakehouseTestableEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/testable/LakehouseTestableEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyCH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6FAA6F,CAAC;AAM3I,OAAO,KAAK,EACV,6BAA6B,EAC7B,0BAA0B,EAC3B,MAAM,gGAAgG,CAAC;AAGxG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAI5E;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,0BAA0B,CAAC;IAC1C,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,eAAe,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACrD,iBAAiB,EAAE,WAAW,CAAC;IAC/B,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAE,WAAW,CAAC;CAC1B;AAID,eAAO,MAAM,4BAA4B,WAC/B;IACN,YAAY,EAAE,6BAA6B,CAAC;IAC5C,aAAa,EAAE,0BAA0B,CAAC;IAC1C,UAAU,EAAE,OAAO,CAAC;CACrB;;CA2CF,CAAC;AAIF,eAAO,MAAM,8BAA8B,WACjC;IACN,YAAY,EAAE,6BAA6B,CAAC;IAC5C,UAAU,EAAE,OAAO,CAAC;CACrB;;CAkBF,CAAC;AAIF,eAAO,MAAM,wBAAwB,WAC3B;IAAE,aAAa,EAAE,0BAA0B,CAAA;CAAE;;CAmEtD,CAAC;AAIF,eAAO,MAAM,uBAAuB,WAC1B;IACN,aAAa,EAAE,0BAA0B,CAAC;IAC1C,UAAU,EAAE,OAAO,CAAC;CACrB;;CAkFF,CAAC;AAIF,eAAO,MAAM,mBAAmB,WACtB;IAAE,SAAS,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE;;CAyBpE,CAAC;AA8EF,eAAO,MAAM,oBAAoB,WACvB;IACN,UAAU,EAAE,4BAA4B,CAAC;IACzC,aAAa,EAAE,+BAA+B,CAAC;IAC/C,UAAU,EAAE,OAAO,CAAC;CACrB;;CA6EF,CAAC;AAIF,eAAO,MAAM,wBAAwB,WAC3B;IACN,UAAU,EAAE,4BAA4B,CAAC;IACzC,aAAa,EAAE,+BAA+B,CAAC;IAC/C,UAAU,EAAE,OAAO,CAAC;CACrB;;CA0BF,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Shared React components for Lakehouse test editors (DataProduct and Ingest).
|
|
19
|
+
*
|
|
20
|
+
* Exports:
|
|
21
|
+
* - LakehouseElementTestDataItem — sidebar row for a single element's test data
|
|
22
|
+
* - LakehouseElementTestDataEditor — editor for a selected element's RelationElementsData
|
|
23
|
+
* - LakehouseAddElementModal — modal to add a new element to suite test data
|
|
24
|
+
* - LakehouseTestDataEditor — full test-data panel (element list + editor)
|
|
25
|
+
* - LakehouseTestEditor — assertion viewer for a single test
|
|
26
|
+
* - LakehouseTestsEditor — tests list + test-detail panel
|
|
27
|
+
* - LakehouseTestSuiteEditor — horizontal split: test data + tests
|
|
28
|
+
* - LakehouseSuiteStateForEditor — interface for suite state passed to shared components
|
|
29
|
+
* - LakehouseTestableStateForEditor — interface for top-level testable state
|
|
30
|
+
*/
|
|
31
|
+
import { observer } from 'mobx-react-lite';
|
|
32
|
+
import { flowResult } from 'mobx';
|
|
33
|
+
import { BlankPanelContent, BlankPanelPlaceholder, clsx, CustomSelectorInput, Dialog, ErrorWarnIcon, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, ModalTitle, PlusIcon, PlayIcon, ResizablePanel, ResizablePanelGroup, ResizablePanelSplitter, ResizablePanelSplitterLine, RunAllIcon, TimesIcon, } from '@finos/legend-art';
|
|
34
|
+
import { useState } from 'react';
|
|
35
|
+
import { TESTABLE_RESULT, getTestableResultFromTestResult, } from '../../../../stores/editor/sidebar-state/testable/GlobalTestRunnerState.js';
|
|
36
|
+
import { getTestableResultIcon } from '../../side-bar/testable/GlobalTestRunner.js';
|
|
37
|
+
import { RelationElementsDataEditor } from '../data-editor/RelationElementsDataEditor.js';
|
|
38
|
+
import { TestAssertionEditor } from './TestableSharedComponents.js';
|
|
39
|
+
// ─── Element test data: list item ─────────────────────────────────────────────
|
|
40
|
+
export const LakehouseElementTestDataItem = observer((props) => {
|
|
41
|
+
const { elementState, testDataState, isReadOnly } = props;
|
|
42
|
+
const isActive = testDataState.selectedElementTestDataState === elementState;
|
|
43
|
+
const select = () => testDataState.setSelectedElementTestDataState(elementState);
|
|
44
|
+
return (_jsx("div", { className: clsx('testable-test-explorer__item', {
|
|
45
|
+
'testable-test-explorer__item--active': isActive,
|
|
46
|
+
}), children: _jsxs("div", { className: "testable-test-explorer__item__label", onClick: select, tabIndex: -1, children: [_jsx("div", { className: "testable-test-explorer__item__label__text", children: _jsx("span", { title: elementState.element.path, children: elementState.element.name }) }), !isReadOnly && (_jsx("div", { className: "mapping-test-explorer__item__actions", children: _jsx("button", { className: "mapping-test-explorer__item__action", onClick: (e) => {
|
|
47
|
+
e.stopPropagation();
|
|
48
|
+
testDataState.deleteElement(elementState);
|
|
49
|
+
}, tabIndex: -1, title: "Delete", children: _jsx(TimesIcon, {}) }) }))] }) }));
|
|
50
|
+
});
|
|
51
|
+
// ─── Element test data: editor ────────────────────────────────────────────────
|
|
52
|
+
export const LakehouseElementTestDataEditor = observer((props) => {
|
|
53
|
+
const { elementState, isReadOnly } = props;
|
|
54
|
+
const dataState = elementState.relationElementsDataState;
|
|
55
|
+
if (!dataState) {
|
|
56
|
+
return (_jsx(BlankPanelContent, { children: "No relation data for this element" }));
|
|
57
|
+
}
|
|
58
|
+
return (_jsx(RelationElementsDataEditor, { dataState: dataState, isReadOnly: isReadOnly, hideColumnDefinitions: true }));
|
|
59
|
+
});
|
|
60
|
+
// ─── Add element modal ────────────────────────────────────────────────────────
|
|
61
|
+
export const LakehouseAddElementModal = observer((props) => {
|
|
62
|
+
const { testDataState } = props;
|
|
63
|
+
const applicationStore = testDataState.editorStore.applicationStore;
|
|
64
|
+
const options = testDataState.availableElementsToAdd.map((e) => ({
|
|
65
|
+
value: e.path,
|
|
66
|
+
label: e.path,
|
|
67
|
+
}));
|
|
68
|
+
const [selectedPath, setSelectedPath] = useState(options[0]?.value);
|
|
69
|
+
const close = () => testDataState.setShowAddElementModal(false);
|
|
70
|
+
const add = () => {
|
|
71
|
+
if (selectedPath) {
|
|
72
|
+
testDataState.addElement(selectedPath);
|
|
73
|
+
close();
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const onChange = (val) => {
|
|
77
|
+
setSelectedPath(val?.value);
|
|
78
|
+
};
|
|
79
|
+
return (_jsx(Dialog, { open: testDataState.showAddElementModal, onClose: close, classes: { container: 'search-modal__container' }, slotProps: {
|
|
80
|
+
paper: { classes: { root: 'search-modal__inner-container' } },
|
|
81
|
+
}, children: _jsxs(Modal, { darkMode: !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled, children: [_jsx(ModalHeader, { children: _jsx(ModalTitle, { title: "Add Element" }) }), _jsx(ModalBody, { children: _jsx(CustomSelectorInput, { className: "panel__content__form__section__dropdown", options: options, onChange: onChange, value: selectedPath
|
|
82
|
+
? { value: selectedPath, label: selectedPath }
|
|
83
|
+
: null, placeholder: "Select element...", darkMode: !applicationStore.layoutService
|
|
84
|
+
.TEMPORARY__isLightColorThemeEnabled }) }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { disabled: !selectedPath, onClick: add, text: "Add" }), _jsx(ModalFooterButton, { onClick: close, text: "Close", type: "secondary" })] })] }) }));
|
|
85
|
+
});
|
|
86
|
+
// ─── Test data editor (full panel: element list + per-element editor) ─────────
|
|
87
|
+
export const LakehouseTestDataEditor = observer((props) => {
|
|
88
|
+
const { testDataState, isReadOnly } = props;
|
|
89
|
+
const addElement = () => {
|
|
90
|
+
if (testDataState.availableElementsToAdd.length === 0) {
|
|
91
|
+
testDataState.editorStore.applicationStore.notificationService.notifyWarning('No elements available to add');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
testDataState.setShowAddElementModal(true);
|
|
95
|
+
};
|
|
96
|
+
const hasTestData = testDataState.elementTestDataStates.length > 0;
|
|
97
|
+
return (_jsxs("div", { className: clsx('service-test-data-editor panel', {
|
|
98
|
+
'service-test-data-editor--no-data': !hasTestData,
|
|
99
|
+
}), children: [_jsx("div", { className: "service-test-data-editor__data", children: _jsxs(ResizablePanelGroup, { orientation: "vertical", children: [_jsxs(ResizablePanel, { minSize: 100, size: 180, children: [_jsxs("div", { className: "binding-editor__header", children: [_jsx("div", { className: "binding-editor__header__title", children: _jsx("div", { className: "panel__header__title__content", children: "Test Data" }) }), !isReadOnly && (_jsx("div", { className: "panel__header__actions", children: _jsx("button", { className: "panel__header__action", tabIndex: -1, onClick: addElement, title: "Add Element", children: _jsx(PlusIcon, {}) }) }))] }), !hasTestData ? (_jsxs("div", { className: "service-test-data-editor__warning", children: [_jsx(ErrorWarnIcon, {}), _jsx("span", { children: "Add an element to configure test data" })] })) : (_jsx("div", { children: testDataState.elementTestDataStates.map((elementState) => (_jsx(LakehouseElementTestDataItem, { elementState: elementState, testDataState: testDataState, isReadOnly: isReadOnly }, elementState.element.path))) }))] }), _jsx(ResizablePanelSplitter, { children: _jsx(ResizablePanelSplitterLine, { color: "var(--color-dark-grey-200)" }) }), _jsx(ResizablePanel, { minSize: 200, children: testDataState.selectedElementTestDataState ? (_jsx(LakehouseElementTestDataEditor, { elementState: testDataState.selectedElementTestDataState, isReadOnly: isReadOnly })) : (_jsx(BlankPanelContent, { children: "Select an element to configure its test data" })) })] }) }), testDataState.showAddElementModal && (_jsx(LakehouseAddElementModal, { testDataState: testDataState }))] }));
|
|
100
|
+
});
|
|
101
|
+
// ─── Test editor: assertion viewer ────────────────────────────────────────────
|
|
102
|
+
export const LakehouseTestEditor = observer((props) => {
|
|
103
|
+
const { testState } = props;
|
|
104
|
+
const selectedAssertion = testState.selectedAsertionState;
|
|
105
|
+
return (_jsxs("div", { className: "function-test-editor panel", children: [_jsx("div", { className: "panel__header", children: _jsx("div", { className: "panel__header service-test-editor__header--with-tabs", children: _jsx("div", { className: "panel__header__title__content", children: "Assertion" }) }) }), _jsxs("div", { className: "panel", children: [selectedAssertion && (_jsx(TestAssertionEditor, { testAssertionState: selectedAssertion })), !selectedAssertion && (_jsx(BlankPanelPlaceholder, { text: "No assertion", tooltipText: "No assertion configured for this test" }))] })] }));
|
|
106
|
+
});
|
|
107
|
+
// ─── Test item: list row ──────────────────────────────────────────────────────
|
|
108
|
+
const LakehouseTestItem = observer((props) => {
|
|
109
|
+
const { testState, suiteState, isReadOnly } = props;
|
|
110
|
+
const isActive = suiteState.selectTestState === testState;
|
|
111
|
+
const isRunning = testState.runningTestAction.isInProgress;
|
|
112
|
+
const _testableResult = getTestableResultFromTestResult(testState.testResultState.result);
|
|
113
|
+
const testResult = isRunning
|
|
114
|
+
? TESTABLE_RESULT.IN_PROGRESS
|
|
115
|
+
: _testableResult;
|
|
116
|
+
const select = () => suiteState.changeTest(testState.test);
|
|
117
|
+
const runTest = () => {
|
|
118
|
+
flowResult(testState.runTest()).catch(testState.editorStore.applicationStore.alertUnhandledError);
|
|
119
|
+
};
|
|
120
|
+
const deleteTest = () => {
|
|
121
|
+
if (!isReadOnly) {
|
|
122
|
+
suiteState.deleteTest(testState.test);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
return (_jsxs("div", { className: clsx('testable-test-explorer__item', {
|
|
126
|
+
'testable-test-explorer__item--active': isActive,
|
|
127
|
+
}), children: [_jsxs("div", { className: "testable-test-explorer__item__label", onClick: select, tabIndex: -1, children: [_jsx("div", { className: "testable-test-explorer__item__label__icon", children: getTestableResultIcon(testResult) }), _jsx("div", { className: "testable-test-explorer__item__label__text", children: testState.test.id })] }), _jsxs("div", { className: "mapping-test-explorer__item__actions", children: [_jsx("button", { className: "mapping-test-explorer__item__action mapping-test-explorer__run-test-btn", onClick: runTest, disabled: isRunning, tabIndex: -1, title: `Run test ${testState.test.id}`, children: _jsx(PlayIcon, {}) }), !isReadOnly && (_jsx("button", { className: "mapping-test-explorer__item__action mapping-test-explorer__run-test-btn", onClick: deleteTest, tabIndex: -1, title: `Delete test ${testState.test.id}`, children: _jsx(TimesIcon, {}) }))] })] }));
|
|
128
|
+
});
|
|
129
|
+
// ─── Tests editor: test list + test detail ────────────────────────────────────
|
|
130
|
+
export const LakehouseTestsEditor = observer((props) => {
|
|
131
|
+
const { suiteState, testableState, isReadOnly } = props;
|
|
132
|
+
const selectedTest = suiteState.selectTestState;
|
|
133
|
+
return (_jsx("div", { className: "panel service-test-editor", children: _jsx("div", { className: "service-test-editor__content", children: _jsxs(ResizablePanelGroup, { orientation: "vertical", children: [_jsxs(ResizablePanel, { minSize: 100, size: 200, children: [_jsxs("div", { className: "binding-editor__header", children: [_jsx("div", { className: "binding-editor__header__title", children: _jsx("div", { className: "panel__header__title__content", children: "Tests" }) }), _jsxs("div", { className: "panel__header__actions", children: [_jsx("button", { className: "panel__header__action testable-test-explorer__play__all__icon", tabIndex: -1, onClick: () => {
|
|
134
|
+
flowResult(suiteState.runSuite()).catch(testableState.editorStore.applicationStore
|
|
135
|
+
.alertUnhandledError);
|
|
136
|
+
}, disabled: suiteState.runningSuiteState.isInProgress ||
|
|
137
|
+
suiteState.suite.tests.length === 0, title: "Run all tests in this suite", children: _jsx(RunAllIcon, {}) }), !isReadOnly && (_jsx("button", { className: "panel__header__action", tabIndex: -1, onClick: () => testableState.setShowCreateTestModal(true), title: "Add test to this suite", children: _jsx(PlusIcon, {}) }))] })] }), _jsx("div", { children: suiteState.testStates.map((testState) => (_jsx(LakehouseTestItem, { testState: testState, suiteState: suiteState, isReadOnly: isReadOnly }, testState.test.id))) })] }), _jsx(ResizablePanelSplitter, { children: _jsx(ResizablePanelSplitterLine, { color: "var(--color-dark-grey-200)" }) }), _jsx(ResizablePanel, { minSize: 56, children: selectedTest ? (_jsx(LakehouseTestEditor, { testState: selectedTest, isReadOnly: isReadOnly })) : (_jsx(BlankPanelPlaceholder, { text: "Select a test", tooltipText: "Select a test from the list above" })) })] }) }) }));
|
|
138
|
+
});
|
|
139
|
+
// ─── Suite editor: horizontal split (test data + tests) ───────────────────────
|
|
140
|
+
export const LakehouseTestSuiteEditor = observer((props) => {
|
|
141
|
+
const { suiteState, testableState, isReadOnly } = props;
|
|
142
|
+
return (_jsx("div", { className: "service-test-suite-editor", children: _jsxs(ResizablePanelGroup, { orientation: "horizontal", children: [_jsx(ResizablePanel, { size: 580, minSize: 28, children: _jsx(LakehouseTestDataEditor, { testDataState: suiteState.testDataState, isReadOnly: isReadOnly }) }), _jsx(ResizablePanelSplitter, { children: _jsx(ResizablePanelSplitterLine, { color: "var(--color-dark-grey-200)" }) }), _jsx(ResizablePanel, { minSize: 56, children: _jsx(LakehouseTestsEditor, { suiteState: suiteState, testableState: testableState, isReadOnly: isReadOnly }) })] }) }));
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=LakehouseTestableEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LakehouseTestableEditor.js","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/testable/LakehouseTestableEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestableSharedComponents.d.ts","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/testable/TestableSharedComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyBH,OAAO,EACL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"TestableSharedComponents.d.ts","sourceRoot":"","sources":["../../../../../src/components/editor/editor-group/testable/TestableSharedComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyBH,OAAO,EACL,KAAK,WAAW,EAGhB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAIxB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAOL,KAAK,wBAAwB,EAM9B,MAAM,4FAA4F,CAAC;AAOpG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6FAA6F,CAAC;AAE3I,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAK5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAU7F,eAAO,MAAM,sBAAsB,WACzB;IACN,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC;IACzC,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;;CA+EF,CAAC;AAEF,eAAO,MAAM,WAAW,WACd;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACxD;;CAsDF,CAAC;AA8oBF,eAAO,MAAM,wBAAwB;uBAIZ,uBAAuB;wBACtB,wBAAwB;2GAiBjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,WACpB;IACN,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;CACrB;;CAsDF,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB;IAAE,kBAAkB,EAAE,wBAAwB,CAAA;CAAE;;CA2GzD,CAAC;AAEF,eAAO,MAAM,kCAAkC,WACrC;IACN,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;;CA8DF,CAAC"}
|