feat: add workflow node registry phase 2

This commit is contained in:
2026-04-07 08:59:27 +02:00
parent 63e35ce807
commit 56ee5fc5bf
8 changed files with 843 additions and 309 deletions
@@ -0,0 +1,47 @@
import pytest
from app.core.process_steps import StepName
from app.domains.rendering.workflow_node_registry import (
get_node_definition,
list_node_definitions,
)
def test_node_registry_covers_all_step_names():
registered_steps = {definition.step for definition in list_node_definitions()}
expected_steps = {step.value for step in StepName}
assert registered_steps == expected_steps
def test_turntable_node_definition_exposes_expected_schema():
definition = get_node_definition(StepName.BLENDER_TURNTABLE)
assert definition is not None
assert definition.node_type == "renderFramesNode"
assert definition.defaults["fps"] == 24
assert definition.defaults["duration_s"] == 5
assert {field.key for field in definition.fields} >= {
"render_engine",
"samples",
"width",
"height",
"fps",
"duration_s",
"rotation_z",
}
@pytest.mark.asyncio
async def test_node_definitions_endpoint_returns_registry(client, auth_headers):
response = await client.get("/api/workflows/node-definitions", headers=auth_headers)
assert response.status_code == 200
body = response.json()
assert len(body["definitions"]) == len(StepName)
blender_still = next(
definition for definition in body["definitions"] if definition["step"] == StepName.BLENDER_STILL.value
)
assert blender_still["node_type"] == "renderNode"
assert blender_still["defaults"]["render_engine"] == "cycles"