* feat(ui): add Focused Prompt Manager node (#186) * feat(ui): autocomplete saved Focused metadata with shared controls (#186) * feat(ui): autocomplete Focused library filters (#186)
44 lines
2.7 KiB
JavaScript
44 lines
2.7 KiB
JavaScript
import { expect } from '../../tools/vendor/node_modules/@playwright/test/index.mjs';
|
|
import runtime from '../../tools/vendor/comfyui-runtime.json' with { type: 'json' };
|
|
|
|
export function installHostHooks(test, expectedTypes = ['PromptManager', 'PromptManagerText', 'PromptSearchList']) {
|
|
test.beforeEach(async ({ page, context, request }, testInfo) => {
|
|
const response = await request.get('/system_stats');
|
|
expect(response.ok()).toBe(true);
|
|
const info = (await response.json()).system;
|
|
expect(info.comfyui_version).toBe(runtime.serverVersion);
|
|
expect(info.pytorch_version).toBe(`${runtime.torchVersion}+cpu`);
|
|
expect(info.required_frontend_version).toBe(runtime.frontendVersion);
|
|
expect(info.comfy_package_versions.find(item => item.name === 'comfyui-frontend-package')?.installed).toBe(runtime.frontendVersion);
|
|
await testInfo.attach('host-versions.json', { body: JSON.stringify(info, null, 2), contentType: 'application/json' });
|
|
page.hostErrors = [];
|
|
page.on('pageerror', error => page.hostErrors.push(error.message));
|
|
await context.route('**/*', async route => {
|
|
const request = route.request();
|
|
const path = new URL(request.url()).pathname.replace(/^\/api\//, '/');
|
|
if (path === '/settings' && request.method() === 'GET') {
|
|
const response = await route.fetch();
|
|
return route.fulfill({ json: { ...await response.json(),
|
|
'Comfy.VueNodes.Enabled': testInfo.project.metadata.initialRenderer,
|
|
'Comfy.TutorialCompleted': true, 'Comfy.Workflow.Persist': false,
|
|
'Comfy.Notification.ShowVersionUpdates': false } });
|
|
}
|
|
if (!['GET', 'HEAD', 'OPTIONS'].includes(request.method()) && !path.startsWith('/prompt_manager/')) return route.fulfill({ json: {} });
|
|
return route.continue();
|
|
});
|
|
await page.goto('/', { waitUntil: 'domcontentloaded' });
|
|
await expect(page.getByRole('status', { name: 'Loading ComfyUI' })).toBeHidden({ timeout: 30000 });
|
|
await page.waitForFunction(async expectedTypes => {
|
|
const { app } = await import('/scripts/app.js');
|
|
return !!app.graph && expectedTypes.every(name => globalThis.LiteGraph?.registered_node_types?.[name]);
|
|
}, expectedTypes);
|
|
await expect.poll(() => page.evaluate(() => LiteGraph.vueNodesMode)).toBe(testInfo.project.metadata.initialRenderer);
|
|
await page.evaluate(async () => { const { app } = await import('/scripts/app.js'); app.graph.clear(); });
|
|
});
|
|
|
|
test.afterEach(async ({ page }) => {
|
|
expect(page.hostErrors).toEqual([]);
|
|
});
|
|
|
|
}
|