reflex/tests/test_app.py
2022-11-18 12:44:06 -08:00

82 lines
1.6 KiB
Python

import pytest
from pynecone.base import Base
from pynecone.app import App, DefaultState
from pynecone.middleware import HydrateMiddleware
from pynecone.components import Box
@pytest.fixture
def app() -> App:
"""A base app.
Returns:
The app.
"""
return App()
@pytest.fixture
def index_page():
"""An index page."""
def index():
return Box.create("Index")
return index
@pytest.fixture
def about_page():
"""An index page."""
def about():
return Box.create("About")
return about
def test_default_state(app: App) -> None:
"""Test creating an app with no state.
Args:
app: The app to test.
"""
assert app.state() == DefaultState()
def test_default_middleware(app: App) -> None:
"""Test creating an app with no middleware.
Args:
app: The app to test.
"""
assert app.middleware == [HydrateMiddleware()]
def test_add_page_default_route(app: App, index_page, about_page) -> None:
"""Test adding a page to an app.
Args:
app: The app to test.
index_page: The index page.
about_page: The about page.
"""
assert app.pages == {}
app.add_page(index_page)
assert set(app.pages.keys()) == {"index"}
app.add_page(about_page)
assert set(app.pages.keys()) == {"index", "about"}
def test_add_page_set_route(app: App, index_page) -> None:
"""Test adding a page to an app.
Args:
app: The app to test.
index_page: The index page.
"""
assert app.pages == {}
app.add_page(index_page, path="/test")
assert set(app.pages.keys()) == {"test"}