reflex/tests/units/test_page.py
2025-02-07 00:04:10 +01:00

81 lines
2.0 KiB
Python

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")
DECORATED_PAGES.clear()
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"},
]