From 9ab440c4cbe6d0c97980050a92f5fdbfaf9931a4 Mon Sep 17 00:00:00 2001 From: pewdiepie-archdaemon Date: Mon, 26 Oct 2026 16:49:01 +0000 Subject: [PATCH] Keep Gallery image-model picker tests with the editor client --- tests/test_gallery_image_model_picker.py | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/test_gallery_image_model_picker.py diff --git a/tests/test_gallery_image_model_picker.py b/tests/test_gallery_image_model_picker.py new file mode 100644 index 000000000..160355210 --- /dev/null +++ b/tests/test_gallery_image_model_picker.py @@ -0,0 +1,39 @@ +"""Source checks for the gallery Settings-tab image-model picker. + +The Quick Edit model picker lives in the editor; HARNESS mirrors it into the +gallery Settings tab, fed by GET /api/editor/image-models and sharing the +same localStorage key (`ge-ai-command-model`) so the two stay in sync. +""" +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +GALLERY_JS = (ROOT / "static/js/gallery.js").read_text(encoding="utf-8") + + +def test_settings_tab_has_image_model_picker(): + assert 'id="gallery-image-model"' in GALLERY_JS + assert "/api/editor/image-models" in GALLERY_JS + assert "ge-ai-command-model" in GALLERY_JS + + +def test_image_model_picker_lives_in_the_settings_container(): + settings_idx = GALLERY_JS.index('id="gallery-settings-container"') + picker_idx = GALLERY_JS.index('id="gallery-image-model"') + assert picker_idx > settings_idx + + +def test_picker_persists_with_the_shared_localstorage_key(): + assert "localStorage.setItem(_GE_MODEL_KEY" in GALLERY_JS + assert "localStorage.getItem(_GE_MODEL_KEY)" in GALLERY_JS + + +def test_cloud_image_models_are_listed_alongside_the_local_ones(): + """Gateway endpoints (OpenRouter) register as llm but carry image models. + + The picker must surface those ids too — otherwise the only selectable + edit model is the local Qwen server. + """ + routes = (ROOT / "routes/editor_agent_routes.py").read_text(encoding="utf-8") + assert "from src.image_model_ids import looks_like_image_generation_model" in routes + assert 'image_endpoint = getattr(ep, "model_type", None) == "image"' in routes + assert "if not image_endpoint and not looks_like_image_generation_model(name):" in routes