From d0839dc93c36661db28a2d64f1cbc92c258e9ccf Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 4 Jun 2024 11:02:40 -0500 Subject: [PATCH] CE-938 - Fix to enrich optional steps too --- .../core/instances/QInstanceEnricher.java | 4 +-- .../core/instances/QInstanceEnricherTest.java | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricher.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricher.java index 4bcac23f..a87713e5 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricher.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricher.java @@ -384,9 +384,9 @@ public class QInstanceEnricher process.setLabel(nameToLabel(process.getName())); } - if(process.getStepList() != null) + for(QStepMetaData step : CollectionUtils.nonNullMap(process.getAllSteps()).values()) { - process.getStepList().forEach(this::enrichStep); + enrichStep(step); } for(QSupplementalProcessMetaData supplementalProcessMetaData : CollectionUtils.nonNullMap(process.getSupplementalMetaData()).values()) diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricherTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricherTest.java index a4ab55c9..20f87686 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricherTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/instances/QInstanceEnricherTest.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Optional; import com.kingsrook.qqq.backend.core.BaseTest; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference; import com.kingsrook.qqq.backend.core.model.metadata.fields.AdornmentType; import com.kingsrook.qqq.backend.core.model.metadata.fields.DynamicDefaultValueBehavior; import com.kingsrook.qqq.backend.core.model.metadata.fields.FieldAdornment; @@ -38,6 +39,8 @@ import com.kingsrook.qqq.backend.core.model.metadata.joins.JoinType; import com.kingsrook.qqq.backend.core.model.metadata.joins.QJoinMetaData; import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppMetaData; import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppSection; +import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData; +import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData; import com.kingsrook.qqq.backend.core.model.metadata.tables.ExposedJoin; import com.kingsrook.qqq.backend.core.model.metadata.tables.QFieldSection; @@ -232,6 +235,7 @@ class QInstanceEnricherTest extends BaseTest } + /******************************************************************************* ** *******************************************************************************/ @@ -546,4 +550,26 @@ class QInstanceEnricherTest extends BaseTest assertEquals(DynamicDefaultValueBehavior.MODIFY_DATE, table.getField("modifyDate").getBehaviorOnlyIfSet(DynamicDefaultValueBehavior.class)); } + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void testOptionalProcessSteps() + { + QInstance qInstance = TestUtils.defineInstance(); + QProcessMetaData process = new QProcessMetaData(); + process.setName("test"); + process.withStepList(List.of(new QBackendStepMetaData().withName("execute").withCode(new QCodeReference(TestUtils.IncreaseBirthdateStep.class)))); + process.addOptionalStep(new QFrontendStepMetaData() + .withName("screen") + .withViewField(new QFieldMetaData("myField", QFieldType.STRING))); + qInstance.addProcess(process); + + new QInstanceEnricher(qInstance).enrich(); + + assertEquals("My Field", qInstance.getProcess("test").getFrontendStep("screen").getViewFields().get(0).getLabel()); + } + }