|
|
|
@ -37,6 +37,7 @@ function makeCtx(node: WorkflowNode, images: string[] = ["source.png"]): NodeExe |
|
|
|
easeCurve: null, |
|
|
|
}), |
|
|
|
updateNodeData: vi.fn(), |
|
|
|
updateMediaNodeData: vi.fn(), |
|
|
|
getFreshNode: vi.fn().mockReturnValue(node), |
|
|
|
getEdges: vi.fn().mockReturnValue([]), |
|
|
|
getNodes: vi.fn().mockReturnValue([]), |
|
|
|
@ -86,13 +87,13 @@ describe("derivedImageExecutor", () => { |
|
|
|
|
|
|
|
expect(createCroppedImageBlob).toHaveBeenCalledWith("source.png", expect.objectContaining({ outputWidth: 100 })); |
|
|
|
expect(uploadBlobToGatewayMedia).toHaveBeenCalledWith(blob, "crop.png", "image/png", "image"); |
|
|
|
expect(ctx.updateNodeData).toHaveBeenCalledWith("derived-1", expect.objectContaining({ |
|
|
|
expect(ctx.updateMediaNodeData).toHaveBeenCalledWith("derived-1", expect.objectContaining({ |
|
|
|
image: "https://media.example/crop.png", |
|
|
|
previewImage: "https://media.example/crop-thumb.png", |
|
|
|
dimensions: { width: 100, height: 80 }, |
|
|
|
status: "complete", |
|
|
|
error: null, |
|
|
|
})); |
|
|
|
}), { width: 100, height: 80 }); |
|
|
|
}); |
|
|
|
|
|
|
|
it("sets an error when the source image is missing", async () => { |
|
|
|
@ -151,10 +152,10 @@ describe("derivedImageExecutor", () => { |
|
|
|
|
|
|
|
expect(loadCropImage).toHaveBeenCalledWith("source.png"); |
|
|
|
expect(drawImage).toHaveBeenCalledWith(expect.anything(), 0, 20, 20, 20, 0, 0, 20, 20); |
|
|
|
expect(ctx.updateNodeData).toHaveBeenCalledWith("derived-1", expect.objectContaining({ |
|
|
|
expect(ctx.updateMediaNodeData).toHaveBeenCalledWith("derived-1", expect.objectContaining({ |
|
|
|
image: "https://media.example/grid.png", |
|
|
|
dimensions: { width: 20, height: 20 }, |
|
|
|
status: "complete", |
|
|
|
})); |
|
|
|
}), { width: 20, height: 20 }); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|