import { expect } from '@playwright/test' import { comfyPageFixture as test } from '../fixtures/ComfyPage' test.describe( 'Image paste priority over stale node metadata', { tag: ['@node'] }, () => { test('Should not paste copied node when a LoadImage node is selected and clipboard has stale node metadata', async ({ comfyPage }) => { await comfyPage.workflow.loadWorkflow('nodes/load_image_with_ksampler') const initialCount = await comfyPage.nodeOps.getGraphNodesCount() expect(initialCount).toBe(2) // Copy the KSampler node (puts data-metadata in clipboard) const ksamplerNodes = await comfyPage.nodeOps.getNodeRefsByType('KSampler') await ksamplerNodes[0].copy() // Select the LoadImage node const loadImageNodes = await comfyPage.nodeOps.getNodeRefsByType('LoadImage') await loadImageNodes[0].click('title') // Simulate pasting when clipboard has stale node metadata (text/html // with data-metadata) but no image file items. This replicates the bug // scenario: user copied a node, then copied a web image (which replaces // clipboard files but may leave stale text/html with node metadata). await comfyPage.page.evaluate(() => { const nodeData = { nodes: [{ type: 'KSampler', id: 99 }] } const base64 = btoa(JSON.stringify(nodeData)) const html = '