Files
Taremin f9c128baf0 fix(comfyui): PresetとLanguage Featuresの同期と無限ループの修正
- Language Presetの選択肢に"custom"を明示的に追加し、リロード時にデフォルトへ上書きされる問題を解消
- Feature変更時にPresetを"custom"へ自動同期する処理を追加
- 同期処理中の再帰的な設定更新を防ぐためのフラグ(isSyncing)を導入し、無限ループを防止
- getSettings内でComfyUIの設定オブジェクト(preferApp=true)を優先して読み取るよう修正し、整合性を向上
- Preset同期と無限ループを検証するためのE2Eテストを追加
2026-03-18 19:22:50 +09:00

42 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import pytest
from playwright.sync_api import Page, expect
def test_feature_to_custom_preset_sync_and_no_loop(page: Page, comfyui_server, wait_for_comfyui, wmp_helpers):
"""
Language Feature を変更した際に Preset が custom になること、
かつ無限ループによるフリーズが起きないこと(タイムアウトしないこと)を検証。
"""
wmp_helpers.load_comfyui(page, comfyui_server, wait_for_comfyui)
# 0. 少なくとも一つのインスタンスが存在するようにノードを作成
wmp_helpers.create_node(page, "CLIPTextEncode")
wmp_helpers.wait_for_editor(page)
# 1. デフォルトのプリセットを設定しておく(例: comfy-dynamic-prompt)
wmp_helpers.set_comfy_setting(page, "WebuiMonacoPrompt.LanguagePreset", "comfy-dynamic-prompt")
wmp_helpers.wait_for_ui_stabilize(page, 2000)
initial_preset = wmp_helpers.get_comfy_setting(page, "WebuiMonacoPrompt.LanguagePreset")
assert initial_preset == "comfy-dynamic-prompt", f"Failed to set initial preset. Got {initial_preset}"
# 2. 一つのFeature (例: comment-hash) の状態を反転させる
wmp_helpers.set_comfy_setting(page, "WebuiMonacoPrompt.LanguageFeature.comment-hash", False)
wmp_helpers.wait_for_ui_stabilize(page, 2000)
# 3. プリセットが custom に変わったことを検証
# 無限ループがある場合、ここでタイムアウトするかフリーズする。
preset_val = wmp_helpers.get_comfy_setting(page, "WebuiMonacoPrompt.LanguagePreset")
assert preset_val == "custom", f"Expected 'custom', but got '{preset_val}'"
# 4. リロード後も custom が維持されているか検証
page.reload()
wait_for_comfyui(page)
wmp_helpers.wait_for_ui_stabilize(page, 2000)
reloaded_preset_val = wmp_helpers.get_comfy_setting(page, "WebuiMonacoPrompt.LanguagePreset")
assert reloaded_preset_val == "custom", f"Expected 'custom' after reload, but got '{reloaded_preset_val}'"
# 5. 後始末: 元に戻す
wmp_helpers.set_comfy_setting(page, "WebuiMonacoPrompt.LanguagePreset", "comfy-dynamic-prompt")
wmp_helpers.wait_for_ui_stabilize(page, 1000)