Files
Taremin f84fea75b6 refactor: テストディレクトリの構成整理とプリセット機能のモジュール化
- テストファイルを e2e, unit, debug などのカテゴリ別ディレクトリに移動し、構成を整理
- 不要な一時デバッグ用スクリプトを削除し、テスト環境をクリーンアップ
- 言語機能やプリセット定義を src/languages/ ディレクトリに分離・モジュール化
- 言語プリセット管理ダイアログ (preset_dialog.ts) の追加と関連スタイルの更新
- __init__.py での MultiText ノード入力値パース処理を堅牢化 (リスト入力や不正JSONへの対応)
- .gitignore に .agents および debug_dumps の除外設定を追加
2026-03-18 19:37:00 +09:00

68 lines
3.0 KiB
Python

import pytest
import uuid
from playwright.sync_api import Page
def test_multitext_tree_operations(page: Page, comfyui_server, wait_for_comfyui, wmp_helpers):
"""(非破壊方式) ツリー操作のE2Eテスト"""
page.set_viewport_size({"width": 1920, "height": 1080})
wmp_helpers.load_comfyui(page, comfyui_server, wait_for_comfyui)
wmp_helpers.wait_for_graph_clear(page)
node_title = f"MT-TREE-{uuid.uuid4().hex[:6]}"
node_id = wmp_helpers.create_node(page, "WebuiMonacoPromptMultiText", [300, 300])
page.evaluate(f"""(args) => {{
const node = app.graph.getNodeById(args.id);
node.title = args.title;
node.setSize([800, 600]);
}}""", {"id": node_id, "title": node_title})
wmp_helpers.wait_for_editor(page)
print("Step 1: Adding folder...")
page.evaluate(f"""(title) => {{
const node = (window.app || window.ComfyApp).graph._nodes.find(n => n.title === title);
node.multitext_widget.addItemWithName('folder', 'new_folder');
}}""", node_title)
# ウィジェット内部のデータをチェック
wmp_helpers.wait_for_ui_stabilize(page)
has_folder = page.evaluate(f"""(title) => {{
const node = (window.app || window.ComfyApp).graph._nodes.find(n => n.title === title);
return node.multitext_widget.data.tree.some(i => i.name === 'new_folder');
}}""", node_title)
assert has_folder, "Folder was not created internally"
print("Step 2: Adding file inside folder...")
page.evaluate(f"""(title) => {{
const node = (window.app || window.ComfyApp).graph._nodes.find(n => n.title === title);
const folder = node.multitext_widget.data.tree.find(i => i.name === 'new_folder');
node.multitext_widget.addItemWithName('file', 'child.txt', folder.id);
}}""", node_title)
wmp_helpers.wait_for_ui_stabilize(page, 500)
is_nested = page.evaluate(f"""(title) => {{
const node = (window.app || window.ComfyApp).graph._nodes.find(n => n.title === title);
const folder = node.multitext_widget.data.tree.find(i => i.name === 'new_folder');
return folder.children && folder.children.some(c => c.name === 'child.txt');
}}""", node_title)
assert is_nested, "File was not nested in folder"
print("Step 3: Moving file to root...")
page.evaluate(f"""(title) => {{
const node = (window.app || window.ComfyApp).graph._nodes.find(n => n.title === title);
const folder = node.multitext_widget.data.tree.find(i => i.name === 'new_folder');
const file = folder.children.find(c => c.name === 'child.txt');
node.multitext_widget.moveItems([file.id], undefined);
}}""", node_title)
wmp_helpers.wait_for_ui_stabilize(page, 500)
is_root = page.evaluate(f"""(title) => {{
const node = (window.app || window.ComfyApp).graph._nodes.find(n => n.title === title);
return node.multitext_widget.data.tree.some(i => i.name === 'child.txt');
}}""", node_title)
assert is_root, "File was not moved to root"
print("--- NON-DESTRUCTIVE TREE TEST PASSED ---")