Skip to content

Commit ed085c0

Browse files
make integration tests use our typed env helpers
1 parent d669571 commit ed085c0

2 files changed

Lines changed: 72 additions & 23 deletions

File tree

tests/integration/test_minification.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import pytest
1010
from selenium.webdriver.common.by import By
1111

12+
from reflex.environment import MinifyMode, environment
1213
from reflex.minify import MINIFY_JSON, clear_config_cache, int_to_minified_name
1314
from reflex.testing import AppHarness
1415

@@ -119,16 +120,22 @@ def minify_disabled_app(
119120
def minify_enabled_app(
120121
app_harness_env: type[AppHarness],
121122
tmp_path_factory: pytest.TempPathFactory,
123+
monkeypatch: pytest.MonkeyPatch,
122124
) -> Generator[AppHarness, None, None]:
123-
"""Start app WITH minify.json (minified names).
125+
"""Start app WITH minify.json and env vars enabled (minified names).
124126
125127
Args:
126128
app_harness_env: AppHarness or AppHarnessProd
127129
tmp_path_factory: pytest tmp_path_factory fixture
130+
monkeypatch: pytest monkeypatch fixture
128131
129132
Yields:
130133
Running AppHarness instance
131134
"""
135+
# Enable minification via env vars (required in addition to minify.json)
136+
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value)
137+
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value)
138+
132139
# Clear minify config cache to ensure clean state
133140
clear_config_cache()
134141

tests/units/test_minification.py

Lines changed: 64 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import pytest
88

9-
from reflex.environment import environment
9+
from reflex.environment import MinifyMode, environment
1010
from reflex.minify import (
1111
MINIFY_JSON,
1212
SCHEMA_VERSION,
@@ -140,8 +140,12 @@ def test_no_config_returns_none(self, temp_minify_json):
140140

141141
def test_save_and_load_config(self, temp_minify_json, monkeypatch):
142142
"""Test saving and loading a config."""
143-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
144-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
143+
monkeypatch.setenv(
144+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
145+
)
146+
monkeypatch.setenv(
147+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
148+
)
145149
config: MinifyConfig = {
146150
"version": SCHEMA_VERSION,
147151
"states": {"test.module.MyState": "a"},
@@ -158,7 +162,9 @@ def test_save_and_load_config(self, temp_minify_json, monkeypatch):
158162

159163
def test_invalid_version_raises(self, temp_minify_json, monkeypatch):
160164
"""Test that invalid version raises ValueError."""
161-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
165+
monkeypatch.setenv(
166+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
167+
)
162168
config = {"version": 999, "states": {}, "events": {}}
163169
path = temp_minify_json / MINIFY_JSON
164170
with path.open("w") as f:
@@ -171,7 +177,9 @@ def test_invalid_version_raises(self, temp_minify_json, monkeypatch):
171177

172178
def test_missing_states_raises(self, temp_minify_json, monkeypatch):
173179
"""Test that missing 'states' key raises ValueError."""
174-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
180+
monkeypatch.setenv(
181+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
182+
)
175183
config = {"version": SCHEMA_VERSION, "events": {}}
176184
path = temp_minify_json / MINIFY_JSON
177185
with path.open("w") as f:
@@ -328,7 +336,9 @@ class TestState(BaseState):
328336

329337
def test_state_uses_minified_name_with_config(self, temp_minify_json, monkeypatch):
330338
"""Test that states use minified names when minify.json exists and env var is enabled."""
331-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
339+
monkeypatch.setenv(
340+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
341+
)
332342

333343
class TestState(BaseState):
334344
pass
@@ -352,7 +362,9 @@ def test_state_uses_full_name_when_env_disabled(
352362
self, temp_minify_json, monkeypatch
353363
):
354364
"""Test that states use full names when env var is disabled even with minify.json."""
355-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "disabled")
365+
monkeypatch.setenv(
366+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.DISABLED.value
367+
)
356368

357369
class TestState(BaseState):
358370
pass
@@ -399,7 +411,9 @@ def test_event_uses_minified_name_with_config(self, temp_minify_json, monkeypatc
399411
import reflex as rx
400412
from reflex.utils.format import get_event_handler_parts
401413

402-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
414+
monkeypatch.setenv(
415+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
416+
)
403417

404418
# First, set up the config BEFORE creating the state class
405419
# The event_id_to_name registry is built during __init_subclass__
@@ -462,7 +476,9 @@ def test_event_uses_full_name_when_env_disabled(
462476
import reflex as rx
463477
from reflex.utils.format import get_event_handler_parts
464478

465-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "disabled")
479+
monkeypatch.setenv(
480+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.DISABLED.value
481+
)
466482

467483
expected_module = "tests.units.test_minification"
468484
expected_state_path = (
@@ -505,7 +521,9 @@ class TestDynamicHandlerMinification:
505521

506522
def test_setvar_registered_with_config(self, temp_minify_json, monkeypatch):
507523
"""Test that setvar is registered in _event_id_to_name when config exists."""
508-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
524+
monkeypatch.setenv(
525+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
526+
)
509527
expected_module = "tests.units.test_minification"
510528
expected_state_path = f"{expected_module}.State.TestStateWithSetvar"
511529

@@ -534,7 +552,9 @@ class TestStateWithSetvar(State):
534552

535553
def test_auto_setter_registered_with_config(self, temp_minify_json, monkeypatch):
536554
"""Test that auto-setters (set_*) are registered in _event_id_to_name when config exists."""
537-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
555+
monkeypatch.setenv(
556+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
557+
)
538558
expected_module = "tests.units.test_minification"
539559
expected_state_path = f"{expected_module}.State.TestStateWithAutoSetter"
540560

@@ -577,7 +597,9 @@ def test_add_event_handler_registered_with_config(
577597
"""Test that dynamically added event handlers via _add_event_handler are registered."""
578598
import reflex as rx
579599

580-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
600+
monkeypatch.setenv(
601+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
602+
)
581603
expected_module = "tests.units.test_minification"
582604
expected_state_path = f"{expected_module}.State.TestStateWithDynamicHandler"
583605

@@ -649,7 +671,9 @@ def test_state_minify_enabled_with_env_and_config(
649671
self, temp_minify_json, monkeypatch
650672
):
651673
"""Test that state minification is enabled when env var is enabled and config exists."""
652-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
674+
monkeypatch.setenv(
675+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
676+
)
653677
config: MinifyConfig = {
654678
"version": SCHEMA_VERSION,
655679
"states": {"test.module.MyState": "a"},
@@ -664,7 +688,9 @@ def test_event_minify_enabled_with_env_and_config(
664688
self, temp_minify_json, monkeypatch
665689
):
666690
"""Test that event minification is enabled when env var is enabled and config exists."""
667-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
691+
monkeypatch.setenv(
692+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
693+
)
668694
config: MinifyConfig = {
669695
"version": SCHEMA_VERSION,
670696
"states": {},
@@ -677,22 +703,30 @@ def test_event_minify_enabled_with_env_and_config(
677703

678704
def test_state_minify_disabled_without_config(self, temp_minify_json, monkeypatch):
679705
"""Test that state minification is disabled when env var is enabled but no config exists."""
680-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
706+
monkeypatch.setenv(
707+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
708+
)
681709
clear_config_cache()
682710

683711
assert is_state_minify_enabled() is False
684712

685713
def test_event_minify_disabled_without_config(self, temp_minify_json, monkeypatch):
686714
"""Test that event minification is disabled when env var is enabled but no config exists."""
687-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
715+
monkeypatch.setenv(
716+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
717+
)
688718
clear_config_cache()
689719

690720
assert is_event_minify_enabled() is False
691721

692722
def test_independent_state_and_event_toggles(self, temp_minify_json, monkeypatch):
693723
"""Test that state and event minification can be toggled independently."""
694-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
695-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "disabled")
724+
monkeypatch.setenv(
725+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
726+
)
727+
monkeypatch.setenv(
728+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.DISABLED.value
729+
)
696730
config: MinifyConfig = {
697731
"version": SCHEMA_VERSION,
698732
"states": {"test.module.MyState": "a"},
@@ -709,8 +743,12 @@ def test_is_minify_enabled_true_when_either_enabled(
709743
self, temp_minify_json, monkeypatch
710744
):
711745
"""Test that is_minify_enabled returns True when either state or event is enabled."""
712-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "disabled")
713-
monkeypatch.setenv(environment.REFLEX_MINIFY_EVENTS.name, "enabled")
746+
monkeypatch.setenv(
747+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.DISABLED.value
748+
)
749+
monkeypatch.setenv(
750+
environment.REFLEX_MINIFY_EVENTS.name, MinifyMode.ENABLED.value
751+
)
714752
config: MinifyConfig = {
715753
"version": SCHEMA_VERSION,
716754
"states": {},
@@ -743,7 +781,9 @@ def test_get_class_substate_with_parent_child_name_collision(
743781
"""Test that get_class_substate resolves correctly when parent and child
744782
share the same minified name (IDs are only sibling-unique).
745783
"""
746-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
784+
monkeypatch.setenv(
785+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
786+
)
747787

748788
# Build a hierarchy: State -> ParentState -> ChildState
749789
# where ParentState and ChildState both get minified name "b"
@@ -795,7 +835,9 @@ def test_get_substate_with_parent_child_name_collision(
795835
"""
796836
import reflex as rx
797837

798-
monkeypatch.setenv(environment.REFLEX_MINIFY_STATES.name, "enabled")
838+
monkeypatch.setenv(
839+
environment.REFLEX_MINIFY_STATES.name, MinifyMode.ENABLED.value
840+
)
799841

800842
class ParentState2(State):
801843
pass

0 commit comments

Comments
 (0)