82 lines
1.6 KiB
Python
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"}
|