Add LoopContainer schema coverage for LLM prompt

This commit is contained in:
Lucio Lelii 2026-04-17 17:42:53 +02:00
parent 9e107352ce
commit 41c2f844be
1 changed files with 32 additions and 0 deletions

View File

@ -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<LLMBlockType> internalBlock = blocksController.create(LLMBlockConfiguration.builder()