@finos/legend-application-studio 26.1.7 → 26.1.9

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 (318) hide show
  1. package/lib/__lib__/DSL_ExternalFormat_LegendStudioDocumentation.js +1 -1
  2. package/lib/__lib__/DSL_ExternalFormat_LegendStudioDocumentation.js.map +1 -1
  3. package/lib/__lib__/LegendStudioApplicationNavigationContext.js +1 -1
  4. package/lib/__lib__/LegendStudioApplicationNavigationContext.js.map +1 -1
  5. package/lib/__lib__/LegendStudioCommand.js +1 -1
  6. package/lib/__lib__/LegendStudioCommand.js.map +1 -1
  7. package/lib/__lib__/LegendStudioDocumentation.js +1 -1
  8. package/lib/__lib__/LegendStudioDocumentation.js.map +1 -1
  9. package/lib/__lib__/LegendStudioEvent.js +1 -1
  10. package/lib/__lib__/LegendStudioEvent.js.map +1 -1
  11. package/lib/__lib__/LegendStudioNavigation.js +1 -1
  12. package/lib/__lib__/LegendStudioNavigation.js.map +1 -1
  13. package/lib/__lib__/LegendStudioSetting.js +1 -1
  14. package/lib/__lib__/LegendStudioSetting.js.map +1 -1
  15. package/lib/__lib__/LegendStudioTesting.d.ts +1 -1
  16. package/lib/__lib__/LegendStudioTesting.d.ts.map +1 -1
  17. package/lib/__lib__/LegendStudioTesting.js +2 -2
  18. package/lib/__lib__/LegendStudioTesting.js.map +1 -1
  19. package/lib/__lib__/STO_Relational_LegendStudioCommand.js +1 -1
  20. package/lib/__lib__/STO_Relational_LegendStudioCommand.js.map +1 -1
  21. package/lib/application/LegendStudioApplicationConfig.d.ts.map +1 -1
  22. package/lib/application/LegendStudioApplicationConfig.js +2 -4
  23. package/lib/application/LegendStudioApplicationConfig.js.map +1 -1
  24. package/lib/components/LegendStudioWebApplication.d.ts.map +1 -1
  25. package/lib/components/LegendStudioWebApplication.js +16 -4
  26. package/lib/components/LegendStudioWebApplication.js.map +1 -1
  27. package/lib/components/editor/ActivityBar.js +1 -1
  28. package/lib/components/editor/ActivityBar.js.map +1 -1
  29. package/lib/components/editor/editor-group/GenerationSpecificationEditor.d.ts.map +1 -1
  30. package/lib/components/editor/editor-group/GenerationSpecificationEditor.js +1 -1
  31. package/lib/components/editor/editor-group/GenerationSpecificationEditor.js.map +1 -1
  32. package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.d.ts.map +1 -1
  33. package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.js +2 -2
  34. package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.js.map +1 -1
  35. package/lib/components/editor/editor-group/ModelImporter.d.ts.map +1 -1
  36. package/lib/components/editor/editor-group/ModelImporter.js +5 -5
  37. package/lib/components/editor/editor-group/ModelImporter.js.map +1 -1
  38. package/lib/components/editor/editor-group/RuntimeEditor.d.ts.map +1 -1
  39. package/lib/components/editor/editor-group/RuntimeEditor.js +6 -6
  40. package/lib/components/editor/editor-group/RuntimeEditor.js.map +1 -1
  41. package/lib/components/editor/editor-group/connection-editor/ConnectionEditor.d.ts.map +1 -1
  42. package/lib/components/editor/editor-group/connection-editor/ConnectionEditor.js +2 -2
  43. package/lib/components/editor/editor-group/connection-editor/ConnectionEditor.js.map +1 -1
  44. package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.d.ts.map +1 -1
  45. package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.js +2 -2
  46. package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.js.map +1 -1
  47. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  48. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js +2 -2
  49. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  50. package/lib/components/editor/editor-group/data-editor/DataElementEditor.d.ts.map +1 -1
  51. package/lib/components/editor/editor-group/data-editor/DataElementEditor.js +2 -2
  52. package/lib/components/editor/editor-group/data-editor/DataElementEditor.js.map +1 -1
  53. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts +15 -2
  54. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
  55. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js +46 -5
  56. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js.map +1 -1
  57. package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.d.ts.map +1 -1
  58. package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.js +18 -3
  59. package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.js.map +1 -1
  60. package/lib/components/editor/editor-group/element-generation-editor/ElementXTGenerationEditor.d.ts.map +1 -1
  61. package/lib/components/editor/editor-group/element-generation-editor/ElementXTGenerationEditor.js +3 -3
  62. package/lib/components/editor/editor-group/element-generation-editor/ElementXTGenerationEditor.js.map +1 -1
  63. package/lib/components/editor/editor-group/element-generation-editor/FileSystemViewer.d.ts.map +1 -1
  64. package/lib/components/editor/editor-group/element-generation-editor/FileSystemViewer.js +4 -4
  65. package/lib/components/editor/editor-group/element-generation-editor/FileSystemViewer.js.map +1 -1
  66. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_NewSchemaSetDriver.d.ts.map +1 -1
  67. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_NewSchemaSetDriver.js +2 -2
  68. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_NewSchemaSetDriver.js.map +1 -1
  69. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.d.ts.map +1 -1
  70. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.js +5 -5
  71. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.js.map +1 -1
  72. package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.js +1 -1
  73. package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.js.map +1 -1
  74. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.d.ts.map +1 -1
  75. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js +2 -2
  76. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js.map +1 -1
  77. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  78. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js +3 -3
  79. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  80. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.d.ts.map +1 -1
  81. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js +0 -3
  82. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js.map +1 -1
  83. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  84. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.js +7 -7
  85. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  86. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.d.ts.map +1 -1
  87. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js +36 -72
  88. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js.map +1 -1
  89. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.d.ts.map +1 -1
  90. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.js +2 -2
  91. package/lib/components/editor/editor-group/mapping-editor/MappingTestsExplorer.js.map +1 -1
  92. package/lib/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.d.ts.map +1 -1
  93. package/lib/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.js +3 -3
  94. package/lib/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.js.map +1 -1
  95. package/lib/components/editor/editor-group/project-configuration-editor/ProjectConfigurationEditor.d.ts.map +1 -1
  96. package/lib/components/editor/editor-group/project-configuration-editor/ProjectConfigurationEditor.js +5 -5
  97. package/lib/components/editor/editor-group/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  98. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
  99. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js +3 -3
  100. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  101. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.d.ts.map +1 -1
  102. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js +3 -3
  103. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js.map +1 -1
  104. package/lib/components/editor/editor-group/service-editor/ServiceEditor.d.ts.map +1 -1
  105. package/lib/components/editor/editor-group/service-editor/ServiceEditor.js +2 -2
  106. package/lib/components/editor/editor-group/service-editor/ServiceEditor.js.map +1 -1
  107. package/lib/components/editor/editor-group/service-editor/ServiceExecutionEditor.d.ts.map +1 -1
  108. package/lib/components/editor/editor-group/service-editor/ServiceExecutionEditor.js +2 -2
  109. package/lib/components/editor/editor-group/service-editor/ServiceExecutionEditor.js.map +1 -1
  110. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestDataEditor.d.ts +5 -0
  111. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestDataEditor.d.ts.map +1 -1
  112. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestDataEditor.js +53 -8
  113. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestDataEditor.js.map +1 -1
  114. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestableEditor.d.ts.map +1 -1
  115. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestableEditor.js +6 -4
  116. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestableEditor.js.map +1 -1
  117. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
  118. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js +7 -3
  119. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js.map +1 -1
  120. package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
  121. package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +3 -3
  122. package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
  123. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.d.ts.map +1 -1
  124. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js +2 -2
  125. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js.map +1 -1
  126. package/lib/components/editor/editor-group/uml-editor/ClassEditor.d.ts.map +1 -1
  127. package/lib/components/editor/editor-group/uml-editor/ClassEditor.js +7 -7
  128. package/lib/components/editor/editor-group/uml-editor/ClassEditor.js.map +1 -1
  129. package/lib/components/editor/editor-group/uml-editor/EnumerationEditor.d.ts.map +1 -1
  130. package/lib/components/editor/editor-group/uml-editor/EnumerationEditor.js +5 -5
  131. package/lib/components/editor/editor-group/uml-editor/EnumerationEditor.js.map +1 -1
  132. package/lib/components/editor/editor-group/uml-editor/ProfileEditor.d.ts.map +1 -1
  133. package/lib/components/editor/editor-group/uml-editor/ProfileEditor.js +2 -2
  134. package/lib/components/editor/editor-group/uml-editor/ProfileEditor.js.map +1 -1
  135. package/lib/components/editor/editor-group/uml-editor/PropertyEditor.d.ts.map +1 -1
  136. package/lib/components/editor/editor-group/uml-editor/PropertyEditor.js +2 -2
  137. package/lib/components/editor/editor-group/uml-editor/PropertyEditor.js.map +1 -1
  138. package/lib/components/editor/side-bar/SideBar.js +1 -1
  139. package/lib/components/editor/side-bar/SideBar.js.map +1 -1
  140. package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
  141. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +9 -9
  142. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
  143. package/lib/components/extensions/Core_LegendStudioApplicationPlugin.js +1 -2
  144. package/lib/components/extensions/Core_LegendStudioApplicationPlugin.js.map +1 -1
  145. package/lib/index.css +2 -2
  146. package/lib/index.css.map +1 -1
  147. package/lib/package.json +7 -7
  148. package/lib/stores/editor/EditorConfig.d.ts +3 -3
  149. package/lib/stores/editor/EditorConfig.d.ts.map +1 -1
  150. package/lib/stores/editor/EditorConfig.js +10 -10
  151. package/lib/stores/editor/EditorConfig.js.map +1 -1
  152. package/lib/stores/editor/EditorGraphState.js +2 -2
  153. package/lib/stores/editor/EditorGraphState.js.map +1 -1
  154. package/lib/stores/editor/EditorStore.d.ts.map +1 -1
  155. package/lib/stores/editor/EditorStore.js +4 -10
  156. package/lib/stores/editor/EditorStore.js.map +1 -1
  157. package/lib/stores/editor/ExplorerTreeState.js +1 -1
  158. package/lib/stores/editor/ExplorerTreeState.js.map +1 -1
  159. package/lib/stores/editor/NewElementState.js +1 -1
  160. package/lib/stores/editor/NewElementState.js.map +1 -1
  161. package/lib/stores/editor/editor-state/ExternalFormatState.js +1 -1
  162. package/lib/stores/editor/editor-state/ExternalFormatState.js.map +1 -1
  163. package/lib/stores/editor/editor-state/ModelImporterState.js +2 -2
  164. package/lib/stores/editor/editor-state/ModelImporterState.js.map +1 -1
  165. package/lib/stores/editor/editor-state/element-editor-state/ElementEditorState.js +1 -1
  166. package/lib/stores/editor/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
  167. package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js +1 -1
  168. package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js.map +1 -1
  169. package/lib/stores/editor/editor-state/element-editor-state/UMLEditorState.js +1 -1
  170. package/lib/stores/editor/editor-state/element-editor-state/UMLEditorState.js.map +1 -1
  171. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js +4 -4
  172. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
  173. package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js +1 -1
  174. package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js.map +1 -1
  175. package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts +22 -1
  176. package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts.map +1 -1
  177. package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js +56 -5
  178. package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js.map +1 -1
  179. package/lib/stores/editor/editor-state/element-editor-state/external-format/DSL_ExternalFormat_BindingEditorState.js +1 -1
  180. package/lib/stores/editor/editor-state/element-editor-state/external-format/DSL_ExternalFormat_BindingEditorState.js.map +1 -1
  181. package/lib/stores/editor/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js +1 -1
  182. package/lib/stores/editor/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js.map +1 -1
  183. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js +2 -2
  184. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js.map +1 -1
  185. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js +3 -3
  186. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  187. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.d.ts +12 -12
  188. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.d.ts.map +1 -1
  189. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.js +114 -62
  190. package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.js.map +1 -1
  191. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.d.ts +4 -2
  192. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.d.ts.map +1 -1
  193. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js +24 -10
  194. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js.map +1 -1
  195. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.d.ts +5 -2
  196. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.d.ts.map +1 -1
  197. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.js +23 -16
  198. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.js.map +1 -1
  199. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts +3 -2
  200. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts.map +1 -1
  201. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js +14 -10
  202. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js.map +1 -1
  203. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.d.ts +3 -2
  204. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.d.ts.map +1 -1
  205. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.js +29 -8
  206. package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.js.map +1 -1
  207. package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.d.ts +2 -2
  208. package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.d.ts.map +1 -1
  209. package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.js +9 -7
  210. package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
  211. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.d.ts +14 -2
  212. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.d.ts.map +1 -1
  213. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js +76 -6
  214. package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js.map +1 -1
  215. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js +1 -1
  216. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js.map +1 -1
  217. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.js +1 -1
  218. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.js.map +1 -1
  219. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.js +1 -1
  220. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.js.map +1 -1
  221. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +1 -1
  222. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
  223. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js +1 -1
  224. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js.map +1 -1
  225. package/lib/stores/editor/panel-group/DevToolPanelState.d.ts +1 -0
  226. package/lib/stores/editor/panel-group/DevToolPanelState.d.ts.map +1 -1
  227. package/lib/stores/editor/panel-group/DevToolPanelState.js +12 -0
  228. package/lib/stores/editor/panel-group/DevToolPanelState.js.map +1 -1
  229. package/lib/stores/editor/sidebar-state/BulkServiceRegistrationState.js +1 -1
  230. package/lib/stores/editor/sidebar-state/BulkServiceRegistrationState.js.map +1 -1
  231. package/lib/stores/editor/sidebar-state/ProjectOverviewState.js +1 -1
  232. package/lib/stores/editor/sidebar-state/ProjectOverviewState.js.map +1 -1
  233. package/lib/stores/editor/sidebar-state/testable/GlobalTestRunnerState.js +1 -1
  234. package/lib/stores/editor/sidebar-state/testable/GlobalTestRunnerState.js.map +1 -1
  235. package/lib/stores/editor/utils/DnDUtils.js +1 -1
  236. package/lib/stores/editor/utils/DnDUtils.js.map +1 -1
  237. package/lib/stores/editor/utils/MockDataUtils.d.ts +4 -1
  238. package/lib/stores/editor/utils/MockDataUtils.d.ts.map +1 -1
  239. package/lib/stores/editor/utils/MockDataUtils.js +71 -3
  240. package/lib/stores/editor/utils/MockDataUtils.js.map +1 -1
  241. package/lib/stores/editor/utils/ModelClassifierUtils.js +3 -3
  242. package/lib/stores/editor/utils/ModelClassifierUtils.js.map +1 -1
  243. package/lib/stores/editor/utils/TestableUtils.d.ts +1 -2
  244. package/lib/stores/editor/utils/TestableUtils.d.ts.map +1 -1
  245. package/lib/stores/editor/utils/TestableUtils.js +4 -13
  246. package/lib/stores/editor/utils/TestableUtils.js.map +1 -1
  247. package/lib/stores/graph-modifier/DSL_Data_GraphModifierHelper.d.ts +6 -2
  248. package/lib/stores/graph-modifier/DSL_Data_GraphModifierHelper.d.ts.map +1 -1
  249. package/lib/stores/graph-modifier/DSL_Data_GraphModifierHelper.js +23 -4
  250. package/lib/stores/graph-modifier/DSL_Data_GraphModifierHelper.js.map +1 -1
  251. package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.js +1 -1
  252. package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.js.map +1 -1
  253. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts +1 -0
  254. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts.map +1 -1
  255. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js +3 -0
  256. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js.map +1 -1
  257. package/lib/stores/project-view/ProjectViewerStore.d.ts.map +1 -1
  258. package/lib/stores/project-view/ProjectViewerStore.js +4 -9
  259. package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
  260. package/package.json +17 -17
  261. package/src/__lib__/LegendStudioTesting.ts +1 -1
  262. package/src/application/LegendStudioApplicationConfig.ts +1 -2
  263. package/src/components/LegendStudioWebApplication.tsx +25 -6
  264. package/src/components/editor/ActivityBar.tsx +1 -1
  265. package/src/components/editor/editor-group/GenerationSpecificationEditor.tsx +6 -11
  266. package/src/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.tsx +10 -10
  267. package/src/components/editor/editor-group/ModelImporter.tsx +17 -15
  268. package/src/components/editor/editor-group/RuntimeEditor.tsx +19 -28
  269. package/src/components/editor/editor-group/connection-editor/ConnectionEditor.tsx +10 -10
  270. package/src/components/editor/editor-group/connection-editor/DatabaseBuilder.tsx +9 -18
  271. package/src/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.tsx +13 -0
  272. package/src/components/editor/editor-group/data-editor/DataElementEditor.tsx +5 -4
  273. package/src/components/editor/editor-group/data-editor/EmbeddedDataEditor.tsx +129 -3
  274. package/src/components/editor/editor-group/data-editor/RelationalCSVDataEditor.tsx +65 -0
  275. package/src/components/editor/editor-group/element-generation-editor/ElementXTGenerationEditor.tsx +10 -11
  276. package/src/components/editor/editor-group/element-generation-editor/FileSystemViewer.tsx +13 -13
  277. package/src/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_NewSchemaSetDriver.tsx +6 -3
  278. package/src/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.tsx +29 -36
  279. package/src/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.tsx +9 -8
  280. package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx +13 -12
  281. package/src/components/editor/editor-group/mapping-editor/MappingEditor.tsx +0 -6
  282. package/src/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.tsx +27 -37
  283. package/src/components/editor/editor-group/mapping-editor/MappingTestableEditor.tsx +159 -366
  284. package/src/components/editor/editor-group/mapping-editor/MappingTestsExplorer.tsx +3 -2
  285. package/src/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.tsx +9 -8
  286. package/src/components/editor/editor-group/project-configuration-editor/ProjectConfigurationEditor.tsx +17 -14
  287. package/src/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.tsx +17 -21
  288. package/src/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.tsx +18 -19
  289. package/src/components/editor/editor-group/service-editor/ServiceEditor.tsx +3 -2
  290. package/src/components/editor/editor-group/service-editor/ServiceExecutionEditor.tsx +9 -8
  291. package/src/components/editor/editor-group/service-editor/testable/ServiceTestDataEditor.tsx +187 -61
  292. package/src/components/editor/editor-group/service-editor/testable/ServiceTestableEditor.tsx +42 -35
  293. package/src/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.tsx +85 -83
  294. package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +6 -8
  295. package/src/components/editor/editor-group/uml-editor/AssociationEditor.tsx +7 -6
  296. package/src/components/editor/editor-group/uml-editor/ClassEditor.tsx +13 -12
  297. package/src/components/editor/editor-group/uml-editor/EnumerationEditor.tsx +24 -27
  298. package/src/components/editor/editor-group/uml-editor/ProfileEditor.tsx +5 -4
  299. package/src/components/editor/editor-group/uml-editor/PropertyEditor.tsx +5 -4
  300. package/src/components/editor/side-bar/SideBar.tsx +1 -1
  301. package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +18 -20
  302. package/src/stores/editor/EditorConfig.ts +3 -3
  303. package/src/stores/editor/EditorStore.ts +5 -23
  304. package/src/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.ts +75 -4
  305. package/src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.ts +157 -69
  306. package/src/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.ts +45 -10
  307. package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.ts +37 -15
  308. package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.ts +16 -9
  309. package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.ts +57 -6
  310. package/src/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.ts +10 -6
  311. package/src/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.ts +92 -3
  312. package/src/stores/editor/panel-group/DevToolPanelState.ts +25 -0
  313. package/src/stores/editor/utils/MockDataUtils.ts +109 -1
  314. package/src/stores/editor/utils/TestableUtils.ts +4 -19
  315. package/src/stores/graph-modifier/DSL_Data_GraphModifierHelper.ts +45 -6
  316. package/src/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.ts +1 -1
  317. package/src/stores/graph-modifier/STO_Relational_GraphModifierHelper.ts +6 -0
  318. package/src/stores/project-view/ProjectViewerStore.ts +3 -25
@@ -20,6 +20,7 @@ import {
20
20
  type PlainObject,
21
21
  assertErrorThrown,
22
22
  guaranteeType,
23
+ returnUndefOnError,
23
24
  } from '@finos/legend-shared';
24
25
  import type { EditorStore } from '../../../EditorStore.js';
25
26
  import {
@@ -33,16 +34,19 @@ import { ServiceRegistrationState } from '../../../editor-state/element-editor-s
33
34
  import { ElementEditorState } from '../../../editor-state/element-editor-state/ElementEditorState.js';
34
35
  import {
35
36
  type PackageableElement,
36
- type RawLambda,
37
+ type ValueSpecification,
37
38
  Service,
38
39
  PureSingleExecution,
39
40
  PureMultiExecution,
40
- PureExecution,
41
41
  isStubbed_RawLambda,
42
+ getValueSpecificationReturnType,
43
+ type Type,
44
+ resolveServiceQueryRawLambda,
42
45
  } from '@finos/legend-graph';
43
46
  import { ServiceTestableState } from './testable/ServiceTestableState.js';
44
47
  import { User } from '@finos/legend-server-sdlc';
45
48
  import { ServicePostValidationsState } from './ServicePostValidationState.js';
49
+ import { valueSpecReturnTDS } from '@finos/legend-query-builder';
46
50
 
47
51
  export enum SERVICE_TAB {
48
52
  GENERAL = 'GENERAL',
@@ -52,6 +56,45 @@ export enum SERVICE_TAB {
52
56
  POST_VALIDATION = 'POST_VALIDATION',
53
57
  }
54
58
 
59
+ export const resolveServiceQueryValueSpec = (
60
+ service: Service,
61
+ editorStore: EditorStore,
62
+ ): ValueSpecification | undefined => {
63
+ const rawLambda = resolveServiceQueryRawLambda(service);
64
+ if (rawLambda) {
65
+ return editorStore.graphManagerState.graphManager.buildValueSpecification(
66
+ editorStore.graphManagerState.graphManager.serializeRawValueSpecification(
67
+ rawLambda,
68
+ ),
69
+ editorStore.graphManagerState.graph,
70
+ );
71
+ }
72
+ return undefined;
73
+ };
74
+
75
+ export const resolveServiceQueryReturnType = (
76
+ service: Service,
77
+ editorStore: EditorStore,
78
+ ): Type | undefined => {
79
+ const valueSpec = resolveServiceQueryValueSpec(service, editorStore);
80
+ if (valueSpec) {
81
+ return returnUndefOnError(() => getValueSpecificationReturnType(valueSpec));
82
+ }
83
+ return undefined;
84
+ };
85
+
86
+ export const isServiceQueryTDS = (
87
+ service: Service,
88
+ editorStore: EditorStore,
89
+ ): boolean => {
90
+ const valueSpec = resolveServiceQueryValueSpec(service, editorStore);
91
+ return Boolean(
92
+ valueSpec
93
+ ? valueSpecReturnTDS(valueSpec, editorStore.graphManagerState.graph)
94
+ : undefined,
95
+ );
96
+ };
97
+
55
98
  export const MINIMUM_SERVICE_OWNERS = 2;
56
99
  export class ServiceEditorState extends ElementEditorState {
57
100
  executionState: ServiceExecutionState;
@@ -146,14 +189,6 @@ export class ServiceEditorState extends ElementEditorState {
146
189
  );
147
190
  }
148
191
 
149
- get serviceQuery(): RawLambda | undefined {
150
- const execution = this.service.execution;
151
- if (execution instanceof PureExecution) {
152
- return execution.func;
153
- }
154
- return undefined;
155
- }
156
-
157
192
  *searchUsers(name: string): GeneratorFn<User[]> {
158
193
  try {
159
194
  return (
@@ -34,6 +34,8 @@ import {
34
34
  ConnectionPointer,
35
35
  reportGraphAnalytics,
36
36
  observe_ValueSpecification,
37
+ getAllIdentifiedConnectionsFromRuntime,
38
+ getAllIdentifiedServiceConnections,
37
39
  } from '@finos/legend-graph';
38
40
  import {
39
41
  type GeneratorFn,
@@ -44,7 +46,6 @@ import {
44
46
  guaranteeNonNullable,
45
47
  returnUndefOnError,
46
48
  getNullableFirstEntry,
47
- uniq,
48
49
  } from '@finos/legend-shared';
49
50
  import { action, flow, flowResult, makeObservable, observable } from 'mobx';
50
51
  import type { EditorStore } from '../../../../EditorStore.js';
@@ -55,7 +56,6 @@ import {
55
56
  import {
56
57
  TEMPORARY__createRelationalDataFromCSV,
57
58
  EmbeddedDataConnectionTypeVisitor,
58
- getAllIdentifiedConnectionsFromRuntime,
59
59
  TEMPORARY__EmbeddedDataConnectionVisitor,
60
60
  } from '../../../../utils/TestableUtils.js';
61
61
  import { EmbeddedDataType } from '../../../ExternalFormatState.js';
@@ -74,6 +74,18 @@ import {
74
74
  getExecutionQueryFromRawLambda,
75
75
  } from '@finos/legend-query-builder';
76
76
 
77
+ export const createConnectionTestData = (
78
+ val: IdentifiedConnection,
79
+ embeddedDataType: string,
80
+ editorStore: EditorStore,
81
+ ): ConnectionTestData => {
82
+ const connectionTestData = new ConnectionTestData();
83
+ connectionTestData.connectionId = val.id;
84
+ const testData = createEmbeddedData(embeddedDataType, editorStore);
85
+ connectionTestData.testData = testData;
86
+ return connectionTestData;
87
+ };
88
+
77
89
  export class ServiceTestDataParametersState extends LambdaParametersState {
78
90
  connectionTestDataState: ConnectionTestDataState;
79
91
 
@@ -140,6 +152,7 @@ export class ConnectionTestDataState {
140
152
  readonly connectionData: ConnectionTestData;
141
153
  readonly parametersState: ServiceTestDataParametersState;
142
154
  readonly generatingTestDataState = ActionState.create();
155
+ useSharedModal = false;
143
156
 
144
157
  embeddedEditorState: EmbeddedDataEditorState;
145
158
  anonymizeGeneratedData = true;
@@ -151,8 +164,10 @@ export class ConnectionTestDataState {
151
164
  makeObservable(this, {
152
165
  generatingTestDataState: observable,
153
166
  embeddedEditorState: observable,
167
+ useSharedModal: observable,
154
168
  anonymizeGeneratedData: observable,
155
169
  setAnonymizeGeneratedData: action,
170
+ changeEmbeddedData: action,
156
171
  generateTestData: flow,
157
172
  generateTestDataForDatabaseConnection: flow,
158
173
  });
@@ -171,6 +186,10 @@ export class ConnectionTestDataState {
171
186
  );
172
187
  }
173
188
 
189
+ setUseSharedModal(val: boolean): void {
190
+ this.useSharedModal = val;
191
+ }
192
+
174
193
  setAnonymizeGeneratedData(val: boolean): void {
175
194
  this.anonymizeGeneratedData = val;
176
195
  }
@@ -290,6 +309,18 @@ export class ConnectionTestDataState {
290
309
  }
291
310
  }
292
311
 
312
+ changeEmbeddedData(val: EmbeddedData): void {
313
+ service_setConnectionTestDataEmbeddedData(
314
+ this.connectionData,
315
+ val,
316
+ this.editorStore.changeDetectionState.observerContext,
317
+ );
318
+ this.embeddedEditorState = new EmbeddedDataEditorState(
319
+ this.testDataState.editorStore,
320
+ this.connectionData.testData,
321
+ );
322
+ }
323
+
293
324
  resolveConnectionValue(id: string): Connection | undefined {
294
325
  const connection = this.getAllIdentifiedConnections().find(
295
326
  (c) => c.id === id,
@@ -358,7 +389,10 @@ export class NewConnectionDataState {
358
389
 
359
390
  openModal(): void {
360
391
  this.setModal(true);
361
- this.connection = this.testSuiteState.allIdentifiedConnections[0];
392
+ const service =
393
+ this.testSuiteState.testSuiteState.testableState.serviceEditorState
394
+ .service;
395
+ this.connection = getAllIdentifiedServiceConnections(service)[0];
362
396
  if (this.connection) {
363
397
  this.handleConnectionChange(this.connection);
364
398
  }
@@ -469,16 +503,4 @@ export class ServiceTestDataState {
469
503
  this.setSelectedDataState(new ConnectionTestDataState(this, val));
470
504
  }
471
505
  }
472
- get allIdentifiedConnections(): IdentifiedConnection[] {
473
- const service =
474
- this.testSuiteState.testableState.serviceEditorState.service;
475
- const execution = service.execution;
476
- let runtimes: Runtime[] = [];
477
- if (execution instanceof PureSingleExecution && execution.runtime) {
478
- runtimes = [execution.runtime];
479
- } else if (execution instanceof PureMultiExecution) {
480
- runtimes = execution.executionParameters.map((t) => t.runtime);
481
- }
482
- return uniq(runtimes.flatMap(getAllIdentifiedConnectionsFromRuntime));
483
- }
484
506
  }
@@ -31,9 +31,13 @@ import {
31
31
  LambdaFunctionInstanceValue,
32
32
  SimpleFunctionExpression,
33
33
  CollectionInstanceValue,
34
+ resolveServiceQueryRawLambda,
34
35
  } from '@finos/legend-graph';
35
36
  import { action, flow, makeObservable, observable } from 'mobx';
36
- import { TestableTestEditorState } from '../../testable/TestableEditorState.js';
37
+ import {
38
+ TESTABLE_TEST_TAB,
39
+ TestableTestEditorState,
40
+ } from '../../testable/TestableEditorState.js';
37
41
  import type { ServiceTestSuiteState } from './ServiceTestableState.js';
38
42
  import {
39
43
  service_addAssertKeyForTest,
@@ -70,9 +74,9 @@ export enum SERIALIZATION_FORMAT {
70
74
  }
71
75
 
72
76
  export enum SERIALIZATION_FORMAT_LABEL {
73
- DEFAULT = 'DEFAULT',
74
77
  PURE = 'PURE',
75
- TDS = 'TDS',
78
+ TABULAR_DATA = 'TABULAR DATA',
79
+ DEFAULT = 'DEFAULT',
76
80
  }
77
81
 
78
82
  const getSerializationFormatLabel = (val: string): string => {
@@ -82,7 +86,7 @@ const getSerializationFormatLabel = (val: string): string => {
82
86
  case SERIALIZATION_FORMAT.PURE:
83
87
  return SERIALIZATION_FORMAT.PURE;
84
88
  case SERIALIZATION_FORMAT.PURE_TDSOBJECT:
85
- return SERIALIZATION_FORMAT_LABEL.TDS;
89
+ return SERIALIZATION_FORMAT_LABEL.TABULAR_DATA;
86
90
  default:
87
91
  return val;
88
92
  }
@@ -200,8 +204,7 @@ export class ServiceTestSetupState {
200
204
  }
201
205
 
202
206
  get queryVariableExpressions(): VariableExpression[] {
203
- const query =
204
- this.testState.suiteState.testableState.serviceEditorState.serviceQuery;
207
+ const query = resolveServiceQueryRawLambda(this.testState.service);
205
208
  return query
206
209
  ? buildLambdaVariableExpressions(
207
210
  query,
@@ -240,8 +243,7 @@ export class ServiceTestSetupState {
240
243
  binding: Binding;
241
244
  param: string;
242
245
  }[] {
243
- const query =
244
- this.testState.suiteState.testableState.serviceEditorState.serviceQuery;
246
+ const query = resolveServiceQueryRawLambda(this.testState.service);
245
247
  if (query && !isStubbed_RawLambda(query)) {
246
248
  // safely pass unsupported funtions when building ValueSpecification from Rawlambda
247
249
  try {
@@ -292,7 +294,7 @@ export class ServiceTestSetupState {
292
294
  if (currentExpression.parametersValues[1] instanceof InstanceValue) {
293
295
  if (
294
296
  currentExpression.parametersValues[1].values[0] instanceof
295
- PackageableElementImplicitReference<Binding> &&
297
+ PackageableElementImplicitReference &&
296
298
  currentExpression.parametersValues[2] instanceof VariableExpression
297
299
  ) {
298
300
  res.push({
@@ -560,5 +562,10 @@ export class ServiceTestState extends TestableTestEditorState {
560
562
  this.suiteState = suiteState;
561
563
  this.testable = suiteState.testableState.serviceEditorState.service;
562
564
  this.setupState = new ServiceTestSetupState(this);
565
+ this.selectedTab = TESTABLE_TEST_TAB.SETUP;
566
+ }
567
+
568
+ get service(): Service {
569
+ return this.suiteState.testableState.service;
563
570
  }
564
571
  }
@@ -28,6 +28,7 @@ import {
28
28
  TestError,
29
29
  MultiExecutionServiceTestResult,
30
30
  TestExecutionStatus,
31
+ getAllIdentifiedServiceConnections,
31
32
  } from '@finos/legend-graph';
32
33
  import {
33
34
  type GeneratorFn,
@@ -39,31 +40,77 @@ import {
39
40
  isNonNullable,
40
41
  generateEnumerableNameFromToken,
41
42
  getNullableFirstEntry,
43
+ guaranteeNonNullable,
44
+ returnUndefOnError,
42
45
  } from '@finos/legend-shared';
43
46
  import { action, flow, makeObservable, observable } from 'mobx';
44
47
  import type { EditorStore } from '../../../../EditorStore.js';
45
48
  import {
49
+ service_addConnectionTestData,
46
50
  service_addTest,
47
51
  service_addTestSuite,
48
52
  service_deleteTestSuite,
49
53
  } from '../../../../../graph-modifier/DSL_Service_GraphModifierHelper.js';
50
- import { createEmptyEqualToJsonAssertion } from '../../../../utils/TestableUtils.js';
51
- import type { ServiceEditorState } from '../ServiceEditorState.js';
52
- import { ServiceTestDataState } from './ServiceTestDataState.js';
54
+ import {
55
+ EmbeddedDataConnectionTypeVisitor,
56
+ createEmptyEqualToJsonAssertion,
57
+ } from '../../../../utils/TestableUtils.js';
58
+ import {
59
+ isServiceQueryTDS,
60
+ type ServiceEditorState,
61
+ } from '../ServiceEditorState.js';
62
+ import {
63
+ ServiceTestDataState,
64
+ createConnectionTestData,
65
+ } from './ServiceTestDataState.js';
53
66
  import {
54
67
  SERIALIZATION_FORMAT,
55
68
  ServiceTestState,
56
69
  } from './ServiceTestEditorState.js';
57
70
 
58
- const createEmptyServiceTestSuite = (service: Service): ServiceTestSuite => {
71
+ const createEmptyServiceTestSuite = (
72
+ serviceTestableState: ServiceTestableState,
73
+ ): ServiceTestSuite => {
74
+ // setup
75
+ const serviceEditorState = serviceTestableState.serviceEditorState;
76
+ const service = serviceEditorState.service;
59
77
  const suite = new ServiceTestSuite();
60
78
  suite.id = generateEnumerableNameFromToken(
61
79
  service.tests.map((s) => s.id),
62
80
  DEFAULT_TEST_SUITE_PREFIX,
63
81
  );
82
+ // data
64
83
  suite.testData = new TestData();
84
+ const connections = getAllIdentifiedServiceConnections(service);
85
+ if (connections.length === 1) {
86
+ const iVal = guaranteeNonNullable(connections[0]);
87
+ const connectionValue = iVal.connection;
88
+ const type = returnUndefOnError(() =>
89
+ connectionValue.accept_ConnectionVisitor(
90
+ new EmbeddedDataConnectionTypeVisitor(serviceEditorState.editorStore),
91
+ ),
92
+ );
93
+ if (type) {
94
+ const testData = createConnectionTestData(
95
+ iVal,
96
+ type,
97
+ serviceEditorState.editorStore,
98
+ );
99
+ service_addConnectionTestData(
100
+ suite,
101
+ testData,
102
+ serviceEditorState.editorStore.changeDetectionState.observerContext,
103
+ );
104
+ }
105
+ }
106
+ //
65
107
  const test = new ServiceTest();
66
- test.serializationFormat = SERIALIZATION_FORMAT.PURE;
108
+ test.serializationFormat = isServiceQueryTDS(
109
+ serviceEditorState.service,
110
+ serviceEditorState.editorStore,
111
+ )
112
+ ? SERIALIZATION_FORMAT.PURE_TDSOBJECT
113
+ : SERIALIZATION_FORMAT.PURE;
67
114
  test.id = generateEnumerableNameFromToken([], DEFAULT_TEST_PREFIX);
68
115
  test.__parent = suite;
69
116
  suite.tests = [test];
@@ -258,6 +305,10 @@ export class ServiceTestableState {
258
305
  this.initSuites();
259
306
  }
260
307
 
308
+ get service(): Service {
309
+ return this.serviceEditorState.service;
310
+ }
311
+
261
312
  setSuiteToRename(testSuite: ServiceTestSuite | undefined): void {
262
313
  this.suiteToRename = testSuite;
263
314
  }
@@ -290,7 +341,7 @@ export class ServiceTestableState {
290
341
  }
291
342
 
292
343
  addTestSuite(): void {
293
- const suite = createEmptyServiceTestSuite(this.serviceEditorState.service);
344
+ const suite = createEmptyServiceTestSuite(this);
294
345
  service_addTestSuite(
295
346
  this.serviceEditorState.service,
296
347
  suite,
@@ -45,8 +45,8 @@ import {
45
45
  import type { TestableTestEditorState } from './TestableEditorState.js';
46
46
 
47
47
  export enum TEST_ASSERTION_TAB {
48
- ASSERTION_SETUP = 'ASSERTION_SETUP',
49
- ASSERTION_RESULT = 'ASSERTION_RESULT',
48
+ SETUP = 'SETUP',
49
+ RESULT = 'RESULT',
50
50
  }
51
51
 
52
52
  export abstract class TestAssertionStatusState {
@@ -273,7 +273,7 @@ export class TestAssertionEditorState {
273
273
  assertionState: TestAssertionState;
274
274
  assertionResultState: TestAssertionResultState;
275
275
  assertion: TestAssertion;
276
- selectedTab = TEST_ASSERTION_TAB.ASSERTION_SETUP;
276
+ selectedTab = TEST_ASSERTION_TAB.SETUP;
277
277
  generatingExpectedAction = ActionState.create();
278
278
  constructor(
279
279
  editorStore: EditorStore,
@@ -302,7 +302,7 @@ export class TestAssertionEditorState {
302
302
  this.generatingExpectedAction.inProgress();
303
303
  const bare = this.assertionState.generateBare();
304
304
  bare.parentTest = this.assertion.parentTest;
305
- const status =
305
+ const assertFail =
306
306
  (yield this.editorStore.graphManagerState.graphManager.generateExpectedResult(
307
307
  this.testState.testable,
308
308
  this.testState.test,
@@ -310,13 +310,17 @@ export class TestAssertionEditorState {
310
310
  bare,
311
311
  this.editorStore.graphManagerState.graph,
312
312
  )) as AssertFail;
313
- this.assertionState.generateExpected(status);
313
+ this.assertionState.generateExpected(assertFail);
314
314
  this.generatingExpectedAction.complete();
315
+ this.editorStore.applicationStore.notificationService.notifySuccess(
316
+ `Expected results generated!`,
317
+ );
315
318
  } catch (error) {
316
319
  assertErrorThrown(error);
317
320
  this.editorStore.applicationStore.notificationService.notifyError(
318
- `Error generating expected result: ${error.message}`,
321
+ `Error generating expected result, please check data input: ${error.message}.`,
319
322
  );
323
+ this.setSelectedTab(TEST_ASSERTION_TAB.SETUP);
320
324
  this.generatingExpectedAction.fail();
321
325
  }
322
326
  }
@@ -24,6 +24,7 @@ import {
24
24
  RunTestsTestableInput,
25
25
  TestSuite,
26
26
  TestExecutionStatus,
27
+ TestError,
27
28
  } from '@finos/legend-graph';
28
29
  import {
29
30
  type GeneratorFn,
@@ -33,6 +34,7 @@ import {
33
34
  ActionState,
34
35
  addUniqueEntry,
35
36
  deleteEntry,
37
+ isNonNullable,
36
38
  } from '@finos/legend-shared';
37
39
  import { action, makeObservable, observable } from 'mobx';
38
40
  import type { EditorStore } from '../../../EditorStore.js';
@@ -66,7 +68,7 @@ export class TestableTestResultState {
66
68
 
67
69
  export enum TESTABLE_TEST_TAB {
68
70
  SETUP = 'SETUP',
69
- ASSERTIONS = 'ASSERTIONS',
71
+ ASSERTION = 'ASSERTION',
70
72
  }
71
73
 
72
74
  export class TestableTestEditorState {
@@ -75,7 +77,7 @@ export class TestableTestEditorState {
75
77
  test: AtomicTest;
76
78
  selectedAsertionState: TestAssertionEditorState | undefined;
77
79
  assertionEditorStates: TestAssertionEditorState[] = [];
78
- selectedTab = TESTABLE_TEST_TAB.ASSERTIONS;
80
+ selectedTab = TESTABLE_TEST_TAB.ASSERTION;
79
81
  assertionToRename: TestAssertion | undefined;
80
82
  runningTestAction = ActionState.create();
81
83
  testResultState: TestableTestResultState;
@@ -177,7 +179,7 @@ export class TestableTestEditorState {
177
179
  this.testResultState.setResult(testResult);
178
180
  this.assertionEditorStates.forEach((assertionState) => {
179
181
  assertionState.assertionResultState.setTestResult(testResult);
180
- assertionState.setSelectedTab(TEST_ASSERTION_TAB.ASSERTION_RESULT);
182
+ assertionState.setSelectedTab(TEST_ASSERTION_TAB.RESULT);
181
183
  });
182
184
  }
183
185
 
@@ -211,3 +213,90 @@ export class TestableTestEditorState {
211
213
  ).length;
212
214
  }
213
215
  }
216
+
217
+ export class TestableTestSuiteEditorState {
218
+ readonly editorStore: EditorStore;
219
+ testable: Testable;
220
+ suite: TestSuite;
221
+ isReadOnly: boolean;
222
+ testStates: TestableTestEditorState[] = [];
223
+ isRunningTest = ActionState.create();
224
+ selectTestState: TestableTestEditorState | undefined;
225
+
226
+ constructor(
227
+ testable: Testable,
228
+ suite: TestSuite,
229
+ isReadOnly: boolean,
230
+ editorStore: EditorStore,
231
+ ) {
232
+ this.testable = testable;
233
+ this.suite = suite;
234
+ this.isReadOnly = isReadOnly;
235
+ this.editorStore = editorStore;
236
+ }
237
+
238
+ *runSuite(): GeneratorFn<void> {
239
+ try {
240
+ this.isRunningTest.inProgress();
241
+ this.testStates.forEach((t) => t.resetResult());
242
+ this.testStates.forEach((t) => t.runningTestAction.inProgress());
243
+ const input = new RunTestsTestableInput(this.testable);
244
+ input.unitTestIds = this.suite.tests.map(
245
+ (t) => new UniqueTestId(this.suite, t),
246
+ );
247
+ const testResults =
248
+ (yield this.editorStore.graphManagerState.graphManager.runTests(
249
+ [input],
250
+ this.editorStore.graphManagerState.graph,
251
+ )) as TestResult[];
252
+ testResults.forEach((result) => {
253
+ const state = this.testStates.find((t) => t.test === result.atomicTest);
254
+ state?.handleTestResult(result);
255
+ });
256
+ this.isRunningTest.complete();
257
+ } catch (error) {
258
+ assertErrorThrown(error);
259
+ this.editorStore.applicationStore.notificationService.notifyError(error);
260
+ this.isRunningTest.fail();
261
+ } finally {
262
+ this.testStates.forEach((t) => t.runningTestAction.complete());
263
+ }
264
+ }
265
+
266
+ *runFailingTests(): GeneratorFn<void> {
267
+ try {
268
+ this.isRunningTest.inProgress();
269
+ const input = new RunTestsTestableInput(this.testable);
270
+ input.unitTestIds = this.testStates
271
+ .map((testState) => {
272
+ const result = testState.testResultState.result;
273
+ if (
274
+ (result instanceof TestExecuted &&
275
+ result.testExecutionStatus === TestExecutionStatus.FAIL) ||
276
+ result instanceof TestError
277
+ ) {
278
+ testState.runningTestAction.inProgress();
279
+ return new UniqueTestId(this.suite, testState.test);
280
+ }
281
+ return undefined;
282
+ })
283
+ .filter(isNonNullable);
284
+ const testResults =
285
+ (yield this.editorStore.graphManagerState.graphManager.runTests(
286
+ [input],
287
+ this.editorStore.graphManagerState.graph,
288
+ )) as TestResult[];
289
+ testResults.forEach((result) => {
290
+ const state = this.testStates.find((t) => t.test === result.atomicTest);
291
+ state?.handleTestResult(result);
292
+ });
293
+ this.isRunningTest.complete();
294
+ } catch (error) {
295
+ assertErrorThrown(error);
296
+ this.editorStore.applicationStore.notificationService.notifyError(error);
297
+ this.isRunningTest.fail();
298
+ } finally {
299
+ this.testStates.forEach((t) => t.runningTestAction.complete());
300
+ }
301
+ }
302
+ }
@@ -14,7 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import {
18
+ ContentType,
19
+ downloadFileUsingDataURI,
20
+ formatDate,
21
+ returnUndefOnError,
22
+ } from '@finos/legend-shared';
17
23
  import type { EditorStore } from '../EditorStore.js';
24
+ import { DEFAULT_DATE_TIME_FORMAT } from '@finos/legend-application';
18
25
 
19
26
  // TODO: We might potentially make this persisting data to local storage
20
27
  // as such the logic in this state might get a little more complicated, so we just leave it like this for now
@@ -25,3 +32,21 @@ export class DevToolPanelState {
25
32
  this.editorStore = editorStore;
26
33
  }
27
34
  }
35
+
36
+ export const payloadDebugger = (payload: unknown, identifier: string): void => {
37
+ let isJSON = false;
38
+ let content = returnUndefOnError(() => JSON.stringify(payload, undefined, 2));
39
+ if (content) {
40
+ isJSON = true;
41
+ }
42
+ content = content ?? returnUndefOnError(() => `${payload}`) ?? '';
43
+ // TODO: we can also copy the debug content to clipboard
44
+ downloadFileUsingDataURI(
45
+ `PAYLOAD_DEBUG__${identifier}__${formatDate(
46
+ new Date(Date.now()),
47
+ DEFAULT_DATE_TIME_FORMAT,
48
+ )}${isJSON ? '.json' : '.txt'}`,
49
+ content,
50
+ isJSON ? ContentType.APPLICATION_JSON : ContentType.TEXT_PLAIN,
51
+ );
52
+ };