feat(sveta): Add tests verifying username remains clickable with decorative title badge on leaderboard
DevPlace CI / test (pull_request) Failing after 1h6m27s

This commit is contained in:
typosaurus
2026-08-04 20:24:15 +00:00
parent 5fc1aa9791
commit 768a128700
3 changed files with 94 additions and 1 deletions
+45
View File
@@ -111,6 +111,50 @@ def test_leaderboard_entries_carry_score_and_prestige(app_server, seeded_db):
assert mine["score"] >= 50 * economy.SCORE_PRESTIGE
def test_leaderboard_every_entry_has_username_and_title(app_server, seeded_db):
session, name = _signup()
_reset_farm(name)
_set_farm(name, prestige=1)
deadline = time.time() + 20
while True:
response = requests.get(f"{BASE_URL}/game/leaderboard", headers=JSON)
assert response.status_code == 200
entries = response.json()["entries"]
if any(e["username"] == name for e in entries) or time.time() >= deadline:
break
time.sleep(0.5)
assert entries
for entry in entries:
assert isinstance(entry["username"], str) and len(entry["username"]) > 0
assert isinstance(entry["title"], str)
def test_leaderboard_username_differs_from_title(app_server, seeded_db):
session, name = _signup()
_reset_farm(name)
_set_farm(name, prestige=1)
from devplacepy.services.game.store.cosmetics import equip_title
from devplacepy.database import get_table
user = get_table("users").find_one(username=name)
equip_title(user, "title_refactorer")
from devplacepy.services.game.store.farm import _leaderboard_cache, _board_cache
_leaderboard_cache.clear()
_board_cache.clear()
deadline = time.time() + 20
while True:
response = requests.get(f"{BASE_URL}/game/leaderboard", headers=JSON)
assert response.status_code == 200
entries = response.json()["entries"]
mine = next((e for e in entries if e["username"] == name), None)
if mine is not None or time.time() >= deadline:
break
time.sleep(0.5)
assert mine is not None
assert mine["title"] == "Serial Refactorer"
assert mine["username"] == name
assert mine["username"] != mine["title"]
def test_plant_returns_updated_farm(app_server, seeded_db):
session, name = _signup()
_reset_farm(name)
@@ -186,3 +230,4 @@ def test_prestige_below_level_returns_400(app_server, seeded_db):
_reset_farm(name)
response = session.post(f"{BASE_URL}/game/prestige", headers=JSON)
assert response.status_code == 400