from reflex import text from reflex.config import get_config from reflex.page import DECORATED_PAGES, get_decorated_pages, page def test_page_decorator(): def foo_(): return text("foo") assert len(DECORATED_PAGES) == 0 decorated_foo_ = page()(foo_) assert decorated_foo_ == foo_ assert len(DECORATED_PAGES) == 1 page_data = DECORATED_PAGES.get(get_config().app_name, [])[0][1] assert page_data == {} DECORATED_PAGES.clear() def test_page_decorator_with_kwargs(): def foo_(): return text("foo") def load_foo(): return [] DECORATED_PAGES.clear() assert len(DECORATED_PAGES) == 0 decorated_foo_ = page( route="foo", title="Foo", image="foo.png", description="Foo description", meta=["foo-meta"], script_tags=["foo-script"], on_load=load_foo, )(foo_) assert decorated_foo_ == foo_ assert len(DECORATED_PAGES) == 1 page_data = DECORATED_PAGES.get(get_config().app_name, [])[0][1] assert page_data == { "description": "Foo description", "image": "foo.png", "meta": ["foo-meta"], "on_load": load_foo, "route": "foo", "script_tags": ["foo-script"], "title": "Foo", } DECORATED_PAGES.clear() def test_get_decorated_pages(): assert get_decorated_pages() == [] def foo_(): return text("foo") page()(foo_) assert get_decorated_pages() == [] assert get_decorated_pages(omit_implicit_routes=False) == [{}] page(route="foo2")(foo_) assert get_decorated_pages() == [{"route": "foo2"}] assert get_decorated_pages(omit_implicit_routes=False) == [{}, {"route": "foo2"}] page(route="foo3", title="Foo3")(foo_) assert get_decorated_pages() == [ {"route": "foo2"}, {"route": "foo3", "title": "Foo3"}, ] assert get_decorated_pages(omit_implicit_routes=False) == [ {}, {"route": "foo2"}, {"route": "foo3", "title": "Foo3"}, ]