@finos/legend-application-studio 28.14.0 → 28.14.2

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 (63) hide show
  1. package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.d.ts +1 -1
  2. package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.d.ts.map +1 -1
  3. package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js +93 -14
  4. package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js.map +1 -1
  5. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.d.ts.map +1 -1
  6. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js +7 -1
  7. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js.map +1 -1
  8. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.d.ts +1 -13
  9. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
  10. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js +7 -21
  11. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js.map +1 -1
  12. package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts +12 -1
  13. package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
  14. package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +13 -3
  15. package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
  16. package/lib/index.css +2 -2
  17. package/lib/index.css.map +1 -1
  18. package/lib/package.json +1 -1
  19. package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts +34 -10
  20. package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts.map +1 -1
  21. package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js +174 -95
  22. package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js.map +1 -1
  23. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.d.ts +1 -8
  24. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.d.ts.map +1 -1
  25. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.js +1 -70
  26. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.js.map +1 -1
  27. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.d.ts +1 -1
  28. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.d.ts.map +1 -1
  29. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.js +2 -4
  30. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.js.map +1 -1
  31. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts +2 -0
  32. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts.map +1 -1
  33. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js +6 -0
  34. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  35. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts +0 -8
  36. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts.map +1 -1
  37. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js +3 -73
  38. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js.map +1 -1
  39. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.d.ts +12 -2
  40. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.d.ts.map +1 -1
  41. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js +120 -16
  42. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js.map +1 -1
  43. package/lib/stores/editor/utils/TestableUtils.d.ts +7 -1
  44. package/lib/stores/editor/utils/TestableUtils.d.ts.map +1 -1
  45. package/lib/stores/editor/utils/TestableUtils.js +71 -2
  46. package/lib/stores/editor/utils/TestableUtils.js.map +1 -1
  47. package/lib/stores/graph-modifier/DomainGraphModifierHelper.d.ts +6 -1
  48. package/lib/stores/graph-modifier/DomainGraphModifierHelper.d.ts.map +1 -1
  49. package/lib/stores/graph-modifier/DomainGraphModifierHelper.js +16 -1
  50. package/lib/stores/graph-modifier/DomainGraphModifierHelper.js.map +1 -1
  51. package/package.json +4 -4
  52. package/src/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.tsx +376 -61
  53. package/src/components/editor/editor-group/service-editor/ServiceRegistrationEditor.tsx +38 -1
  54. package/src/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.tsx +18 -92
  55. package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +74 -1
  56. package/src/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.ts +280 -131
  57. package/src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.ts +2 -94
  58. package/src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.ts +5 -5
  59. package/src/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.ts +7 -0
  60. package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.ts +1 -143
  61. package/src/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.ts +159 -19
  62. package/src/stores/editor/utils/TestableUtils.ts +144 -4
  63. package/src/stores/graph-modifier/DomainGraphModifierHelper.ts +33 -0
@@ -35,11 +35,6 @@ import {
35
35
  RefreshIcon,
36
36
  TimesIcon,
37
37
  FilledWindowMaximizeIcon,
38
- Modal,
39
- ModalHeader,
40
- ModalFooter,
41
- ModalBody,
42
- ModalTitle,
43
38
  PlayIcon,
44
39
  } from '@finos/legend-art';
45
40
  import {
@@ -47,13 +42,13 @@ import {
47
42
  PrimitiveInstanceValue,
48
43
  PrimitiveType,
49
44
  PureMultiExecution,
45
+ resolveServiceQueryRawLambda,
50
46
  } from '@finos/legend-graph';
51
47
  import {
52
48
  BasicValueSpecificationEditor,
53
49
  instanceValue_setValue,
54
50
  } from '@finos/legend-query-builder';
55
51
  import {
56
- ContentType,
57
52
  filterByType,
58
53
  guaranteeNonNullable,
59
54
  prettyCONSTName,
@@ -79,15 +74,16 @@ import {
79
74
  } from '../../../../../stores/editor/sidebar-state/testable/GlobalTestRunnerState.js';
80
75
  import { getTestableResultIcon } from '../../../side-bar/testable/GlobalTestRunner.js';
81
76
  import {
77
+ ExternalFormatParameterEditorModal,
82
78
  RenameModal,
83
79
  TestAssertionEditor,
84
80
  TestAssertionItem,
85
81
  } from '../../testable/TestableSharedComponents.js';
86
- import {
87
- CODE_EDITOR_LANGUAGE,
88
- CodeEditor,
89
- } from '@finos/legend-lego/code-editor';
90
82
  import { LEGEND_STUDIO_TEST_ID } from '../../../../../__lib__/LegendStudioTesting.js';
83
+ import {
84
+ getContentTypeWithParamFromQuery,
85
+ type TestParamContentType,
86
+ } from '../../../../../stores/editor/utils/TestableUtils.js';
91
87
 
92
88
  export const NewParameterModal = observer(
93
89
  (props: { setupState: ServiceTestSetupState; isReadOnly: boolean }) => {
@@ -140,86 +136,12 @@ export const NewParameterModal = observer(
140
136
  },
141
137
  );
142
138
 
143
- export const ExternalFormatParameterEditorModal = observer(
144
- (props: {
145
- paramState: ServiceValueSpecificationTestParameterState;
146
- isReadOnly: boolean;
147
- onClose: () => void;
148
- updateParamValue: (val: string) => void;
149
- contentTypeParamPair: {
150
- contentType: string;
151
- param: string;
152
- };
153
- }) => {
154
- const {
155
- paramState,
156
- isReadOnly,
157
- onClose,
158
- updateParamValue,
159
- contentTypeParamPair,
160
- } = props;
161
- const paramValue =
162
- paramState.varExpression.genericType?.value.rawType === PrimitiveType.BYTE
163
- ? atob(
164
- (paramState.valueSpec as PrimitiveInstanceValue)
165
- .values[0] as string,
166
- )
167
- : ((paramState.valueSpec as PrimitiveInstanceValue)
168
- .values[0] as string);
169
- return (
170
- <Dialog
171
- open={true}
172
- onClose={onClose}
173
- classes={{ container: 'search-modal__container' }}
174
- PaperProps={{ classes: { root: 'search-modal__inner-container' } }}
175
- >
176
- <Modal
177
- darkMode={true}
178
- className={clsx('editor-modal lambda-editor__popup__modal')}
179
- >
180
- <ModalHeader>
181
- <ModalTitle title="Edit Parameter Value" />
182
- </ModalHeader>
183
- <ModalBody>
184
- <div className="service-test-editor__setup__parameter__code-editor__container">
185
- <div className="service-test-editor__setup__parameter__code-editor__container__content">
186
- <CodeEditor
187
- key={paramState.uuid}
188
- inputValue={paramValue}
189
- updateInput={updateParamValue}
190
- isReadOnly={isReadOnly}
191
- language={
192
- contentTypeParamPair.contentType ===
193
- ContentType.APPLICATION_JSON.toString()
194
- ? CODE_EDITOR_LANGUAGE.JSON
195
- : CODE_EDITOR_LANGUAGE.TEXT
196
- }
197
- />
198
- </div>
199
- </div>
200
- </ModalBody>
201
- <ModalFooter>
202
- <button className="btn btn--dark" onClick={onClose}>
203
- Close
204
- </button>
205
- </ModalFooter>
206
- </Modal>
207
- </Dialog>
208
- );
209
- },
210
- );
211
-
212
139
  const ServiceTestParameterEditor = observer(
213
140
  (props: {
214
141
  isReadOnly: boolean;
215
142
  paramState: ServiceValueSpecificationTestParameterState;
216
143
  serviceTestState: ServiceTestState;
217
- contentTypeParamPair:
218
- | {
219
- contentType: string;
220
- param: string;
221
- }
222
- | undefined;
144
+ contentTypeParamPair: TestParamContentType | undefined;
223
145
  }) => {
224
146
  const { serviceTestState, paramState, isReadOnly, contentTypeParamPair } =
225
147
  props;
@@ -290,7 +212,8 @@ const ServiceTestParameterEditor = observer(
290
212
  />
291
213
  {showPopUp && (
292
214
  <ExternalFormatParameterEditorModal
293
- paramState={paramState}
215
+ valueSpec={paramState.valueSpec}
216
+ varExpression={paramState.varExpression}
294
217
  isReadOnly={isReadOnly}
295
218
  onClose={closePopUp}
296
219
  updateParamValue={updateParamValue}
@@ -525,12 +448,15 @@ const ServiceTestSetupEditor = observer(
525
448
  isReadOnly={isReadOnly}
526
449
  paramState={paramState}
527
450
  serviceTestState={serviceTestState}
528
- contentTypeParamPair={setupState
529
- .getContentTypeWithParamFromQuery()
530
- .find(
531
- (pair) =>
532
- pair.param === paramState.parameterValue.name,
533
- )}
451
+ contentTypeParamPair={getContentTypeWithParamFromQuery(
452
+ resolveServiceQueryRawLambda(
453
+ serviceTestState.service,
454
+ ),
455
+ serviceTestState.editorStore,
456
+ ).find(
457
+ (pair) =>
458
+ pair.param === paramState.parameterValue.name,
459
+ )}
534
460
  />
535
461
  ))}
536
462
  </div>
@@ -27,6 +27,7 @@ import {
27
27
  ModalFooter,
28
28
  ModalFooterButton,
29
29
  ModalHeader,
30
+ ModalTitle,
30
31
  PanelContent,
31
32
  PanelFormTextField,
32
33
  PanelHeader,
@@ -35,8 +36,16 @@ import {
35
36
  RefreshIcon,
36
37
  WrenchIcon,
37
38
  } from '@finos/legend-art';
38
- import { type DataElement, TestError } from '@finos/legend-graph';
39
39
  import {
40
+ type DataElement,
41
+ type ValueSpecification,
42
+ type VariableExpression,
43
+ type PrimitiveInstanceValue,
44
+ TestError,
45
+ PrimitiveType,
46
+ } from '@finos/legend-graph';
47
+ import {
48
+ ContentType,
40
49
  prettyCONSTName,
41
50
  tryToFormatLosslessJSONString,
42
51
  } from '@finos/legend-shared';
@@ -67,6 +76,7 @@ import {
67
76
  buildElementOption,
68
77
  getPackageableElementOptionFormatter,
69
78
  } from '@finos/legend-lego/graph-editor';
79
+ import type { TestParamContentType } from '../../../../stores/editor/utils/TestableUtils.js';
70
80
 
71
81
  export const SharedDataElementModal = observer(
72
82
  (props: {
@@ -597,3 +607,66 @@ export const TestAssertionEditor = observer(
597
607
  );
598
608
  },
599
609
  );
610
+
611
+ export const ExternalFormatParameterEditorModal = observer(
612
+ (props: {
613
+ valueSpec: ValueSpecification;
614
+ varExpression: VariableExpression;
615
+ isReadOnly: boolean;
616
+ onClose: () => void;
617
+ updateParamValue: (val: string) => void;
618
+ contentTypeParamPair: TestParamContentType;
619
+ }) => {
620
+ const {
621
+ valueSpec,
622
+ varExpression,
623
+ isReadOnly,
624
+ onClose,
625
+ updateParamValue,
626
+ contentTypeParamPair,
627
+ } = props;
628
+ const paramValue =
629
+ varExpression.genericType?.value.rawType === PrimitiveType.BYTE
630
+ ? atob((valueSpec as PrimitiveInstanceValue).values[0] as string)
631
+ : ((valueSpec as PrimitiveInstanceValue).values[0] as string);
632
+ return (
633
+ <Dialog
634
+ open={true}
635
+ onClose={onClose}
636
+ classes={{ container: 'search-modal__container' }}
637
+ PaperProps={{ classes: { root: 'search-modal__inner-container' } }}
638
+ >
639
+ <Modal
640
+ darkMode={true}
641
+ className={clsx('editor-modal lambda-editor__popup__modal')}
642
+ >
643
+ <ModalHeader>
644
+ <ModalTitle title="Edit Parameter Value" />
645
+ </ModalHeader>
646
+ <ModalBody>
647
+ <div className="service-test-editor__setup__parameter__code-editor__container">
648
+ <div className="service-test-editor__setup__parameter__code-editor__container__content">
649
+ <CodeEditor
650
+ inputValue={paramValue}
651
+ updateInput={updateParamValue}
652
+ isReadOnly={isReadOnly}
653
+ language={
654
+ contentTypeParamPair.contentType ===
655
+ ContentType.APPLICATION_JSON.toString()
656
+ ? CODE_EDITOR_LANGUAGE.JSON
657
+ : CODE_EDITOR_LANGUAGE.TEXT
658
+ }
659
+ />
660
+ </div>
661
+ </div>
662
+ </ModalBody>
663
+ <ModalFooter>
664
+ <button className="btn btn--dark" onClick={onClose}>
665
+ Close
666
+ </button>
667
+ </ModalFooter>
668
+ </Modal>
669
+ </Dialog>
670
+ );
671
+ },
672
+ );