This commit is contained in:
2026-07-23 01:14:10 +02:00
parent 64c3983c9f
commit 582e37d176
24 changed files with 549 additions and 36 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ def test_admin_sees_revoke_button(alice, bob):
admin_page, _ = alice
member_page, _ = bob
admin_page.goto(f"{BASE_URL}/profile/bob_test?tab=awards", wait_until="domcontentloaded")
expect(admin_page.locator(AWARD_REVOKE)).to_be_visible()
expect(admin_page.locator(AWARD_REVOKE).first).to_be_visible()
member_page.goto(f"{BASE_URL}/profile/bob_test?tab=awards", wait_until="domcontentloaded")
expect(member_page.locator(AWARD_REVOKE)).to_have_count(0)
+1 -1
View File
@@ -97,7 +97,7 @@ def test_member_sees_only_quota_percentage(bob):
assert (
page.locator(".ai-quota-only .ai-usage-title", has_text="AI quota").count() == 1
)
assert "%" in page.locator(".ai-quota-only .ai-quota-pct").inner_text()
assert "%" in page.locator(".ai-quota-only .ai-quota-pct").first.inner_text()
assert page.locator("[data-ai-usage]").count() == 0
+1 -1
View File
@@ -324,7 +324,7 @@ def test_landing_authenticated_shows_dashboard(page, app_server):
assert page.url.rstrip("/") == BASE_URL.rstrip("/")
assert page.is_visible("text=Welcome back")
assert page.is_visible("text=home_user")
feed_cta = page.locator("a.landing-cta:has-text('Go to your feed')")
feed_cta = page.locator("a.dashboard-btn-primary:has-text('New Post')")
assert feed_cta.is_visible()
assert feed_cta.get_attribute("href") == "/feed"
assert not page.is_visible("text=Join DevPlace Free")
+42 -1
View File
@@ -232,6 +232,8 @@ def test_prestige_resets_farm(alice):
reset_farm("alice_test")
set_farm_xp("alice_test", economy.xp_threshold(economy.PRESTIGE_MIN_LEVEL))
fee = economy.refactor_cost(0, 100000)
carried = economy.refactor_carryover(100000, fee, 0)
open_game(page)
prestige = page.locator("form[data-game-action='prestige'] button")
prestige.wait_for(state="visible")
@@ -240,10 +242,49 @@ def test_prestige_resets_farm(alice):
confirm_btn.wait_for(state="visible")
confirm_btn.click()
expect(page.locator("[data-hud-prestige]")).to_have_text("1")
expect(page.locator("[data-hud-coins]")).to_have_text("50")
expect(page.locator("[data-hud-coins]")).to_have_text(
str(economy.STARTING_COINS + carried)
)
assert page.locator("form[data-game-action='prestige']").count() == 0
def test_prestige_unaffordable_shows_cost_without_button(alice):
page, _ = alice
from devplacepy.services.game import economy
reset_farm("alice_test", coins=100)
set_farm_xp("alice_test", economy.xp_threshold(economy.PRESTIGE_MIN_LEVEL))
open_game(page)
assert page.locator("form[data-game-action='prestige']").count() == 0
assert page.is_visible("text=keep farming to afford it")
def test_grant_section_claim(alice):
page, _ = alice
from devplacepy.database import get_table
from devplacepy.services.game import economy, store
from devplacepy.services.game.store import _iso_week, _now
reset_farm("alice_test", coins=100)
store.ensure_treasury()
get_table("game_treasury").update(
{"uid": "treasury-main", "balance": 100000}, ["uid"]
)
set_farm(
"alice_test",
harvests_week=economy.GRANT_MIN_WEEK_HARVESTS,
harvests_week_start=_iso_week(_now()),
)
open_game(page)
claim = page.locator("form[data-game-action='grant'] button")
claim.wait_for(state="visible")
claim.click()
expect(page.locator("[data-hud-coins]")).to_have_text(
str(100 + economy.GRANT_CAP)
)
assert page.locator("form[data-game-action='grant']").count() == 0
def test_leaderboard_panel_populates(alice):
page, _ = alice
reset_farm("alice_test")