3.1. App harness — with_node_editor_app + with_node_editor_recording_app, thin node-editor delegates over imgui_playwright’s with_imgui_app / with_recording_app

The integration-test entry point. with_node_editor_app(feature_path) <| $(app) { ... } spawns daslang-live against a node-editor feature with both the dasImgui and dasImguiNodeEditor modules loaded, runs the block against the live app, then shuts down — panicking on ready-timeout, test-timeout, or non-zero exit so the surrounding [test] fails.

It is a thin delegate over dasImgui’s imgui_playwright::with_imgui_app: the only node-editor-specific knowledge is loading the node-editor module alongside dasImgui (a daspkg dependency, so it loads after it) and resolving modules/dasImguiNodeEditor/... feature paths under the node-editor module root. All the spawn / port / headless / worker-index / ready / shutdown machinery lives once in with_imgui_app.

3.1.1. App harness

with_node_editor_app(feature_path: string; body: block<(app:ImguiApp):void> )

def with_node_editor_app (feature_path: string; body: block<(app:ImguiApp):void>)

Arguments:
  • feature_path : string

  • body : block<(app: ImguiApp):void>

3.1.1.1. with_node_editor_recording_app

with_node_editor_recording_app(feature_path: string; output_apng_basename: string; max_seconds: int; body: block<(app:ImguiApp):void> )

def with_node_editor_recording_app (feature_path: string; output_apng_basename: string; max_seconds: int; body: block<(app:ImguiApp):void>)

Arguments:
  • feature_path : string

  • output_apng_basename : string

  • max_seconds : int

  • body : block<(app: ImguiApp):void>

with_node_editor_recording_app(feature_path: string; output_apng_basename: string; max_seconds: int; fps: int; body: block<(app:ImguiApp):void> )