diff --git a/src/test/java/it/cnr/isti/workflow/manager/controllers/ContainersControllerTest.java b/src/test/java/it/cnr/isti/workflow/manager/controllers/ContainersControllerTest.java index fa6849d..7c39a52 100644 --- a/src/test/java/it/cnr/isti/workflow/manager/controllers/ContainersControllerTest.java +++ b/src/test/java/it/cnr/isti/workflow/manager/controllers/ContainersControllerTest.java @@ -146,6 +146,38 @@ public class ContainersControllerTest { .anyMatch(node -> "subFlow".equals(node.asText()))); } + @Test + public void loopContainerSchemaContainsConditionalLlmPromptMetadata() { + ContainersController.ContainerConfigurationDescriptor descriptor = containersController.getTypes().stream() + .filter(type -> LoopContainerType.TYPE.equals(type.type())) + .findFirst() + .orElseThrow(); + + assertNotNull(descriptor.schema()); + assertTrue(descriptor.schema() instanceof JsonNode); + + JsonNode schema = (JsonNode) descriptor.schema(); + JsonNode useLlm = schema.path("properties").path("useLlm"); + JsonNode llmDescriptor = schema.path("properties").path("llmDescriptor"); + JsonNode prompt = schema.path("properties").path("prompt"); + + assertTrue(useLlm.path("x-ui-structural").asBoolean()); + + assertEquals("useLlm", llmDescriptor.path("x-ui-enabled-when").path("field").asText()); + assertEquals("true", llmDescriptor.path("x-ui-enabled-when").path("equals").asText()); + assertEquals("useLlm", llmDescriptor.path("x-ui-required-when").path("field").asText()); + assertEquals("true", llmDescriptor.path("x-ui-required-when").path("equals").asText()); + assertEquals("llm", llmDescriptor.path("x-ui-group").asText()); + + assertTrue(prompt.path("x-ui-structural").asBoolean()); + assertEquals("textarea", prompt.path("x-ui-widget").asText()); + assertEquals("useLlm", prompt.path("x-ui-enabled-when").path("field").asText()); + assertEquals("true", prompt.path("x-ui-enabled-when").path("equals").asText()); + assertEquals("useLlm", prompt.path("x-ui-required-when").path("field").asText()); + assertEquals("true", prompt.path("x-ui-required-when").path("equals").asText()); + assertEquals("llm", prompt.path("x-ui-group").asText()); + } + @Test public void createGenericContainerExposesOpenHandles() { Block internalBlock = blocksController.create(LLMBlockConfiguration.builder()