Files
PBandDev-comfyui-node-organ…/tests/e2e/visual-regression.test.ts
T
PBandDev 7afb5b351b feat: ship v2 organizer rewrite (#5)
* Add comfy skill

* feat: squash v2 branch
2026-03-23 16:57:00 -05:00

66 lines
2.3 KiB
TypeScript

import { test } from "@playwright/test";
import type { Page } from "@playwright/test";
import {
waitForComfyUI,
loadWorkflow,
triggerOrganize,
expectGraphCanvasScreenshot,
setBooleanSetting,
} from "./helpers";
import { loadFixture } from "./fixtures";
import { SETTING_IDS } from "../../src/settings";
async function openFirstSubgraph(page: Page) {
await page.evaluate(() => {
const w = window as unknown as Record<string, unknown>;
const appObj = w.app as Record<string, unknown>;
const canvas = appObj.canvas as {
graph?: { _nodes?: Array<Record<string, unknown>> };
openSubgraph: (
subgraph: Record<string, unknown>,
fromNode: Record<string, unknown>,
) => void;
};
const rootGraph = (canvas.graph ??
appObj.graph) as { _nodes?: Array<Record<string, unknown>> };
const subgraphNode = (rootGraph._nodes ?? []).find((node) => !!node.subgraph);
if (!subgraphNode?.subgraph) {
throw new Error("No subgraph node found in fixture");
}
canvas.openSubgraph(subgraphNode.subgraph as Record<string, unknown>, subgraphNode);
});
}
test.describe("Visual Regression", () => {
test.beforeEach(async ({ page }) => {
await page.goto("/");
await waitForComfyUI(page);
await setBooleanSetting(page, SETTING_IDS.FIT_TO_VIEW, false);
});
test("simple-dag graph canvas after organize", async ({ page }) => {
await loadWorkflow(page, loadFixture("simple-dag"));
await triggerOrganize(page);
await expectGraphCanvasScreenshot(page, "simple-dag-organized.png");
});
test("nested-groups graph canvas after organize", async ({ page }) => {
await loadWorkflow(page, loadFixture("nested-groups"));
await triggerOrganize(page);
await expectGraphCanvasScreenshot(page, "nested-groups-organized.png");
});
test("token-testing graph canvas after organize", async ({ page }) => {
await loadWorkflow(page, loadFixture("token-testing"));
await triggerOrganize(page);
await expectGraphCanvasScreenshot(page, "token-testing-organized.png");
});
test("subgraph graph canvas after organize", async ({ page }) => {
await loadWorkflow(page, loadFixture("subgraph-io"));
await openFirstSubgraph(page);
await triggerOrganize(page);
await expectGraphCanvasScreenshot(page, "subgraph-io-organized.png");
});
});