feat(canvas): add video-prompt node and enhance video generation support
- Introduced a new node type "video-prompt" for AI video generation, including its integration into the canvas command palette and node template picker. - Updated connection validation to allow connections from text nodes to video-prompt and from video-prompt to ai-video nodes. - Enhanced error handling and messaging for video generation failures, including specific cases for provider issues. - Added tests to validate new video-prompt functionality and connection policies. - Updated localization files to include new labels and prompts for video-prompt and ai-video nodes.
This commit is contained in:
@@ -740,4 +740,33 @@ describe("useCanvasEdgeInsertions", () => {
|
||||
expect(templateTypes).not.toContain("text");
|
||||
expect(templateTypes).not.toContain("ai-image");
|
||||
});
|
||||
|
||||
it("offers video-prompt as valid split for text to ai-video", async () => {
|
||||
container = document.createElement("div");
|
||||
document.body.appendChild(container);
|
||||
root = createRoot(container);
|
||||
|
||||
await act(async () => {
|
||||
root?.render(
|
||||
<HookHarness
|
||||
nodes={[
|
||||
createNode({ id: "source", type: "text", position: { x: 0, y: 0 } }),
|
||||
createNode({ id: "target", type: "ai-video", position: { x: 360, y: 0 } }),
|
||||
]}
|
||||
edges={[createEdge({ id: "edge-1", source: "source", target: "target" })]}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
|
||||
await act(async () => {
|
||||
latestHandlersRef.current?.openEdgeInsertMenu({ edgeId: "edge-1", screenX: 20, screenY: 20 });
|
||||
});
|
||||
|
||||
const templateTypes = (latestHandlersRef.current?.edgeInsertTemplates ?? []).map(
|
||||
(template) => template.type,
|
||||
);
|
||||
|
||||
expect(templateTypes).toContain("video-prompt");
|
||||
expect(templateTypes).not.toContain("prompt");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user