diff --git a/browser_tests/documentationSidebar.spec.ts b/browser_tests/documentationSidebar.spec.ts index 4ff36d89e..7937329a7 100644 --- a/browser_tests/documentationSidebar.spec.ts +++ b/browser_tests/documentationSidebar.spec.ts @@ -1,5 +1,8 @@ import { expect } from '@playwright/test' import { comfyPageFixture as test } from './ComfyPage' +const nodeDef = { + title: 'TestNodeAdvancedDoc' +} test.describe('Documentation Sidebar', () => { test.beforeEach(async ({ comfyPage }) => { @@ -60,3 +63,68 @@ test.describe('Documentation Sidebar', () => { ) }) }) +test.describe('Advanced Description tests', () => { + test.beforeEach(async ({ comfyPage }) => { + //register test node and add to graph + await comfyPage.page.evaluate(async (node) => { + const app = window['app'] + await app.registerNodeDef(node.name, node) + app.addNodeOnGraph(node) + }, advDocNode) + await comfyPage.setSetting('Comfy.UseNewMenu', 'Floating') + }) + test.afterEach(async ({ comfyPage }) => { + await comfyPage.setSetting('Comfy.UseNewMenu', 'Disabled') + }) + test('Description displays as raw html', async ({ comfyPage }) => { + await comfyPage.page.locator('.documentation-tab-button').click() + const docPane = comfyPage.page.locator('.sidebar-content-container>div') + await expect(docPane).toHaveJSProperty( + 'innerHTML', + advDocNode.description[1] + ) + }) + test('selected function', async ({ comfyPage }) => { + await comfyPage.page.evaluate(() => { + const app = window['app'] + const desc = + LiteGraph.registered_node_types['Test_AdvancedDescription'].nodeData + .description + desc[2].select = (element, name, value) => { + element.children[0].innerText = name + ' ' + value + } + }) + await comfyPage.page.locator('.documentation-tab-button').click() + const docPane = comfyPage.page.locator('.sidebar-content-container') + await comfyPage.page.mouse.move(307, 80) + const tooltipTimeout = 500 + await comfyPage.page.waitForTimeout(tooltipTimeout + 16) + await expect(docPane).toContainText('int_input 0') + }) +}) + +const advDocNode = { + display_name: 'Node With Advanced Description', + name: 'Test_AdvancedDescription', + input: { + required: { + int_input: [ + 'INT', + { tooltip: "an input tooltip that won't be displayed in sidebar" } + ] + } + }, + output: ['INT'], + output_name: ['int_output'], + output_tooltips: ["An output tooltip that won't be displayed in the sidebar"], + output_is_list: false, + description: [ + 'A node with description in the advanced format', + ` +A long form description that will be displayed in the sidebar. +