Skip to content

Commit 03e234d

Browse files
committed
[cleanup] Move requirement table tools declaration to the backend
Signed-off-by: Florian ROUËNÉ <florian.rouene@obeosoft.com>
1 parent a2b3e62 commit 03e234d

25 files changed

+310
-921
lines changed

CHANGELOG.adoc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
= Changelog
22

3+
== v2026.5.0 (work in progress)
4+
5+
=== Shapes
6+
7+
=== Breaking changes
8+
9+
- [cleanup] The definition of the tools specific to the requirements table has been moved to the backend.
10+
As a result, the following GraphQL mutations have been removed `exposeRequirements` and `createRequirement`.
11+
12+
=== Dependency update
13+
14+
15+
=== Bug fixes
16+
17+
18+
=== Improvements
19+
20+
21+
=== New features
22+
23+
324
== v2026.3.0 (work in progress)
425

526
=== Shapes

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/graphql/CreateRequirementMutationRunner.java

Lines changed: 0 additions & 61 deletions
This file was deleted.

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/graphql/ExposeRequirementsMutationRunner.java

Lines changed: 0 additions & 61 deletions
This file was deleted.

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/tables/RequirementsTableControllerIntegrationTests.java

Lines changed: 49 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,21 @@
2727
import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput;
2828
import org.eclipse.sirius.components.collaborative.tables.TableEventInput;
2929
import org.eclipse.sirius.components.collaborative.tables.dto.InvokeRowContextMenuEntryInput;
30+
import org.eclipse.sirius.components.collaborative.tables.dto.InvokeToolMenuEntryInput;
3031
import org.eclipse.sirius.components.core.api.SuccessPayload;
3132
import org.eclipse.sirius.components.tables.TextareaCell;
3233
import org.eclipse.sirius.components.tables.TextfieldCell;
3334
import org.eclipse.sirius.components.tables.tests.graphql.InvokeRowContextMenuEntryMutationRunner;
35+
import org.eclipse.sirius.components.tables.tests.graphql.InvokeToolMenuEntryMutationRunner;
3436
import org.eclipse.sirius.components.tables.tests.graphql.RowContextMenuQueryRunner;
3537
import org.eclipse.sirius.components.tables.tests.graphql.TableEventSubscriptionRunner;
38+
import org.eclipse.sirius.components.tables.tests.graphql.ToolMenuEntriesQueryRunner;
3639
import org.eclipse.sirius.web.tests.services.api.IGivenCreatedTableSubscription;
3740
import org.eclipse.sirius.web.tests.services.api.IGivenInitialServerState;
3841
import org.eclipse.syson.AbstractIntegrationTests;
39-
import org.eclipse.syson.application.controllers.diagrams.graphql.CreateRequirementMutationRunner;
40-
import org.eclipse.syson.application.controllers.diagrams.graphql.ExposeRequirementsMutationRunner;
42+
import org.eclipse.syson.GivenSysONServer;
4143
import org.eclipse.syson.application.data.RequirementsTableTestProjectData;
42-
import org.eclipse.syson.table.requirements.view.dto.CreateRequirementInput;
43-
import org.eclipse.syson.table.requirements.view.dto.ExposeRequirementsInput;
44+
import org.eclipse.syson.table.requirements.view.RTVTableToolMenuEntriesProvider;
4445
import org.eclipse.syson.util.SysONRepresentationDescriptionIdentifiers;
4546
import org.junit.jupiter.api.BeforeEach;
4647
import org.junit.jupiter.api.DisplayName;
@@ -71,10 +72,7 @@ public class RequirementsTableControllerIntegrationTests extends AbstractIntegra
7172
private IGivenCreatedTableSubscription givenCreatedTableSubscription;
7273

7374
@Autowired
74-
private CreateRequirementMutationRunner createRequirementMutationRunner;
75-
76-
@Autowired
77-
private ExposeRequirementsMutationRunner exposeRequirementsMutationRunner;
75+
private InvokeToolMenuEntryMutationRunner invokeToolMenuEntryMutationRunner;
7876

7977
@Autowired
8078
private RowContextMenuQueryRunner rowContextMenuQueryRunner;
@@ -85,6 +83,9 @@ public class RequirementsTableControllerIntegrationTests extends AbstractIntegra
8583
@Autowired
8684
private TableEventSubscriptionRunner tableEventSubscriptionRunner;
8785

86+
@Autowired
87+
private ToolMenuEntriesQueryRunner toolMenuEntriesQueryRunner;
88+
8889
@BeforeEach
8990
public void beforeEach() {
9091
this.givenInitialServerState.initialize();
@@ -182,13 +183,15 @@ public void testCreateRequirementTableAction() {
182183
});
183184

184185
Runnable createRequirementTask = () -> {
185-
var createRequirementInput = new CreateRequirementInput(
186+
var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput(
186187
UUID.randomUUID(),
187188
RequirementsTableTestProjectData.EDITING_CONTEXT_ID,
188-
tableId.get());
189+
tableId.get(),
190+
tableId.get(),
191+
RTVTableToolMenuEntriesProvider.ADD_REQUIREMENT_TABLE_TOOL_ENTRY);
189192

190-
var result = this.createRequirementMutationRunner.run(createRequirementInput);
191-
String typename = JsonPath.read(result.data(), "$.data.createRequirement.__typename");
193+
var result = this.invokeToolMenuEntryMutationRunner.run(invokeToolMenuEntryInput);
194+
String typename = JsonPath.read(result.data(), "$.data.invokeToolMenuEntry.__typename");
192195
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
193196
};
194197

@@ -222,13 +225,15 @@ public void testExposeRequirementsTableAction() {
222225
});
223226

224227
Runnable exposeRequirementsTask = () -> {
225-
var createRequirementInput = new ExposeRequirementsInput(
228+
var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput(
226229
UUID.randomUUID(),
227230
RequirementsTableTestProjectData.EDITING_CONTEXT_ID,
228-
tableId.get());
231+
tableId.get(),
232+
tableId.get(),
233+
RTVTableToolMenuEntriesProvider.IMPORT_EXISTING_REQUIREMENTS_TABLE_TOOL_ENTRY);
229234

230-
var result = this.exposeRequirementsMutationRunner.run(createRequirementInput);
231-
String typename = JsonPath.read(result.data(), "$.data.exposeRequirements.__typename");
235+
var result = this.invokeToolMenuEntryMutationRunner.run(invokeToolMenuEntryInput);
236+
String typename = JsonPath.read(result.data(), "$.data.invokeToolMenuEntry.__typename");
232237
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
233238
};
234239

@@ -269,13 +274,15 @@ public void testDeleteFromTable() {
269274
});
270275

271276
Runnable exposeRequirementsTask = () -> {
272-
var createRequirementInput = new ExposeRequirementsInput(
277+
var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput(
273278
UUID.randomUUID(),
274279
RequirementsTableTestProjectData.EDITING_CONTEXT_ID,
275-
tableId.get());
280+
tableId.get(),
281+
tableId.get(),
282+
RTVTableToolMenuEntriesProvider.IMPORT_EXISTING_REQUIREMENTS_TABLE_TOOL_ENTRY);
276283

277-
var result = this.exposeRequirementsMutationRunner.run(createRequirementInput);
278-
String typename = JsonPath.read(result.data(), "$.data.exposeRequirements.__typename");
284+
var result = this.invokeToolMenuEntryMutationRunner.run(invokeToolMenuEntryInput);
285+
String typename = JsonPath.read(result.data(), "$.data.invokeToolMenuEntry.__typename");
279286
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
280287
};
281288

@@ -354,13 +361,15 @@ public void testDeleteFromModel() {
354361
});
355362

356363
Runnable exposeRequirementsTask = () -> {
357-
var createRequirementInput = new ExposeRequirementsInput(
364+
var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput(
358365
UUID.randomUUID(),
359366
RequirementsTableTestProjectData.EDITING_CONTEXT_ID,
360-
tableId.get());
367+
tableId.get(),
368+
tableId.get(),
369+
RTVTableToolMenuEntriesProvider.IMPORT_EXISTING_REQUIREMENTS_TABLE_TOOL_ENTRY);
361370

362-
var result = this.exposeRequirementsMutationRunner.run(createRequirementInput);
363-
String typename = JsonPath.read(result.data(), "$.data.exposeRequirements.__typename");
371+
var result = this.invokeToolMenuEntryMutationRunner.run(invokeToolMenuEntryInput);
372+
String typename = JsonPath.read(result.data(), "$.data.invokeToolMenuEntry.__typename");
364373
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
365374
};
366375

@@ -419,4 +428,20 @@ public void testDeleteFromModel() {
419428
.thenCancel()
420429
.verify(Duration.ofSeconds(10));
421430
}
431+
432+
@Test
433+
@GivenSysONServer({ RequirementsTableTestProjectData.SCRIPT_PATH })
434+
@DisplayName("Given a requirements view table, when tool menu entries query is triggered, then all related tools are returned")
435+
public void testToolMenuEntriesQuery() {
436+
437+
Map<String, Object> variables = Map.of(
438+
"editingContextId", RequirementsTableTestProjectData.EDITING_CONTEXT_ID,
439+
"representationId", RequirementsTableTestProjectData.GraphicalIds.TABLE_ID,
440+
"tableId", RequirementsTableTestProjectData.GraphicalIds.TABLE_ID
441+
);
442+
var result = this.toolMenuEntriesQueryRunner.run(variables);
443+
444+
List<String> toolMenuEntriesId = JsonPath.read(result.data(), "$.data.viewer.editingContext.representation.description.toolMenuEntries[*].id");
445+
assertThat(toolMenuEntriesId).containsExactlyInAnyOrder("add-requirement-table-tool-entry", "import-existing-requirements-table-tool-entry");
446+
}
422447
}

0 commit comments

Comments
 (0)