From 0cd53b67793e74e8be0201b90711cb51b7186d6e Mon Sep 17 00:00:00 2001 From: historia Date: Sat, 12 Sep 2026 20:06:45 -0400 Subject: feat: single column web gui layout --- lib/project/tests/test_gui_browser.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'lib/project/tests') diff --git a/lib/project/tests/test_gui_browser.py b/lib/project/tests/test_gui_browser.py index efc6e55..5edc114 100644 --- a/lib/project/tests/test_gui_browser.py +++ b/lib/project/tests/test_gui_browser.py @@ -82,16 +82,14 @@ def test_gui_browser_real_workflow(studio): assert "token" not in page.locator("body").inner_text() assert page.locator("[data-setting]").count() == 47 expect(page.locator("#setting-denoiser")).to_have_value("none") - # Dependent controls of a disabled effect are visibly inactive. - expect(page.locator("#setting-denoise_strength")).to_be_disabled() - expect(page.locator("#setting-fft_reduction_db")).to_be_disabled() - expect(page.locator("#setting-highpass_hz")).to_be_disabled() + # Dependent controls of an inactive module are hidden entirely. + expect(page.locator("#setting-denoise_strength")).to_be_hidden() + expect(page.locator("#setting-fft_reduction_db")).to_be_hidden() + expect(page.locator("#setting-highpass_hz")).to_be_hidden() expect(page.locator("#setting-highpass_hz")).to_have_value("70") - # Unsupported input errors are human-readable, not raw HTML. + # Stereo input is downmixed safely to mono and both recordings load. page.locator("#pick-files").set_input_files([studio["root"] / "Stereo.wav", studio["source"]]) - expect(page.locator("#error")).to_be_visible() - expect(page.locator("#error-text")).to_contain_text("Stereo") - page.locator("#dismiss-error").click() + expect(page.locator("#error")).not_to_be_visible() expect(page.locator("#wave-status")).to_contain_text("2,048", timeout=15000) expect(page.locator("#input-info")).to_contain_text("00:00:08") # Both drag selection and keyboard-accessible exact inputs. @@ -109,7 +107,7 @@ def test_gui_browser_real_workflow(studio): # Explicit render, requested pacing+MP3 preserved in snapshot but bypassed internally. page.locator("#setting-trim_silence").check() page.locator("#setting-mp3").check() - expect(page.locator("#setting-mp3_bitrate")).not_to_be_disabled() + expect(page.locator("#setting-mp3_bitrate")).not_to_be_hidden() page.locator("#render-preview").click() expect(page.locator("#comparison-status")).to_contain_text("Ready", timeout=30000) assert len(media_requests) == 2 @@ -166,7 +164,7 @@ def test_gui_browser_real_workflow(studio): expect(page.locator("#comparison-status")).to_contain_text("Ready", timeout=30000) # Cross-field errors do not silently enable the limiter. page.locator("#setting-normalize").check() - expect(page.locator("#setting-target_lufs")).not_to_be_disabled() + expect(page.locator("#setting-target_lufs")).not_to_be_hidden() page.locator("#render-preview").click() expect(page.locator("#error-text")).to_contain_text("limiter") assert not page.locator("#setting-limiter").is_checked() -- cgit v1.2.3