commit 41b1611d30638f45dc70ccb446210ea2a183be5b
parent a136e1b77303368a5e4abfbc9c4cd5470e0b6848
Author: Silas Brack <silasbrack@gmail.com>
Date: Sat, 4 Oct 2025 12:45:45 +0200
test: improve tests
Diffstat:
1 file changed, 30 insertions(+), 4 deletions(-)
diff --git a/tests/test_simple_web_app/test_app.py b/tests/test_simple_web_app/test_app.py
@@ -83,7 +83,7 @@ async def test_home_htmx(async_test_client, test_data):
conn = client.app_state["conn"]
for d in test_data:
await insert_dummy_data(conn, d)
- response = await client.get("/", headers={"HX-Request": "asdf"})
+ response = await client.get("/", headers={"HX-Request": "true"})
assert response.status_code == 200
assert response.template.name == "oob_swap.html"
@@ -105,7 +105,8 @@ async def test_select_chain(async_test_client, test_data):
assert "page=1" in load_more_button.attrs["hx-get"]
assert "category-id" not in load_more_button.attrs["hx-get"]
- response = await client.get("/?category-id=2")
+ response = await client.get("/?category-id=2", headers={"HX-Request": "true"})
+ assert response.template.name == "oob_swap.html"
assert len(response.context["news"]) == 0
assert response.context["category_id"] == 2
soup = BeautifulSoup(response.text, features="html.parser")
@@ -113,7 +114,8 @@ async def test_select_chain(async_test_client, test_data):
assert "page=1" in load_more_button.attrs["hx-get"]
assert "category-id=2" in load_more_button.attrs["hx-get"]
- response = await client.get("/?category-id=1")
+ response = await client.get("/?category-id=1", headers={"HX-Request": "true"})
+ assert response.template.name == "oob_swap.html"
assert len(response.context["news"]) > 0
assert response.context["category_id"] == 1
soup = BeautifulSoup(response.text, features="html.parser")
@@ -123,7 +125,8 @@ async def test_select_chain(async_test_client, test_data):
assert "category-id=1" in load_more_button.attrs["hx-get"]
path = load_more_button["hx-get"]
- response = await client.get(path)
+ response = await client.get(path, headers={"HX-Request": "true"})
+ assert response.template.name == "oob_swap.html"
assert len(response.context["news"]) > 0
assert response.context["category_id"] == 1
soup = BeautifulSoup(response.text, features="html.parser")
@@ -133,6 +136,29 @@ async def test_select_chain(async_test_client, test_data):
assert "category-id=1" in load_more_button.attrs["hx-get"]
+async def test_settings(async_test_client, test_data):
+ async with async_test_client as client:
+ response = await client.get("/")
+ soup = BeautifulSoup(response.text, features="html.parser")
+ modal_placeholder = soup.find("div", {"id": "modal-placeholder"})
+ assert len(list(modal_placeholder.children)) == 0
+
+ settings_button = soup.find("a", {"id": "settings-btn"})
+ path = settings_button["hx-get"]
+ response = await client.get(path, headers={"HX-Request": "true"})
+ assert response.template.name == "settings.html"
+ soup = BeautifulSoup(response.text, features="html.parser")
+ assert soup.find("h4").text == "Appearance"
+ # TODO: check that the modal_placeholder has an element
+
+ sync_tab = soup.find("div", {"id": "syncing-tab"})
+ path = sync_tab["hx-get"]
+ response = await client.get(path, headers={"HX-Request": "true"})
+ assert response.template.name == "settings_tab.html"
+ soup = BeautifulSoup(response.text, features="html.parser")
+ assert soup.find("h4").text == "Sync Preferences"
+
+
async def test_preload():
pass