Quiiz system

This commit is contained in:
2026-07-26 16:46:41 +02:00
parent 7f17d69f5c
commit 4780016980
192 changed files with 15031 additions and 566 deletions
+27 -15
View File
@@ -75,8 +75,18 @@ def open_game(page):
page.wait_for_timeout(800)
def hud_number(value):
from devplacepy.templating import format_number
return format_number(value)
def coins(page):
return int(page.locator("[data-hud-coins]").inner_text())
node = page.locator("[data-hud-coins]")
exact = node.get_attribute("title")
if exact:
return int(exact.replace(",", ""))
return int(node.inner_text().replace(",", ""))
def test_game_page_loads(alice):
@@ -84,7 +94,7 @@ def test_game_page_loads(alice):
reset_farm("alice_test")
open_game(page)
assert page.locator(".game-header h1").is_visible()
expect(page.locator("[data-hud-coins]")).to_have_text("100000")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(100000))
expect(page.locator("[data-game-grid] [data-slot]")).to_have_count(4)
expect(page.locator("[data-perk-host] .perk-card")).to_have_count(4)
expect(page.locator(".quest-item")).to_have_count(3)
@@ -104,7 +114,7 @@ def test_plant_crop(alice):
form.locator("select[name='crop']").select_option("shell")
form.locator("button").click()
expect(page.locator(".game-plot-growing")).to_have_count(1)
expect(page.locator("[data-hud-coins]")).to_have_text("99995")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(99995))
def test_harvest_crop(alice):
@@ -118,7 +128,7 @@ def test_harvest_crop(alice):
warp_ready("alice_test")
open_game(page)
page.locator("form[data-game-action='harvest'] button").first.click()
expect(page.locator("[data-hud-coins]")).not_to_have_text("99995")
expect(page.locator("[data-hud-coins]")).not_to_have_text(hud_number(99995))
assert coins(page) > 99995
expect(page.locator(".game-plot-growing")).to_have_count(0)
@@ -130,11 +140,11 @@ def test_fertilize_spends_coins(alice):
form = page.locator("form[data-game-action='plant']").first
form.locator("select[name='crop']").select_option("python")
form.locator("button").click()
expect(page.locator("[data-hud-coins]")).to_have_text("99985")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(99985))
fert = page.locator("form[data-game-action='fertilize'] button").first
fert.wait_for(state="visible")
fert.click()
expect(page.locator("[data-hud-coins]")).not_to_have_text("99985")
expect(page.locator("[data-hud-coins]")).not_to_have_text(hud_number(99985))
assert coins(page) < 99985
@@ -144,7 +154,7 @@ def test_buy_plot(alice):
open_game(page)
page.locator("form[data-game-action='buy-plot'] button").click()
expect(page.locator("[data-game-grid] [data-slot]")).to_have_count(5)
expect(page.locator("[data-hud-coins]")).to_have_text("99900")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(99900))
def test_upgrade_ci(alice):
@@ -153,7 +163,7 @@ def test_upgrade_ci(alice):
open_game(page)
page.locator("form[data-game-action='upgrade'] button").click()
expect(page.locator("[data-hud-ci]")).to_have_text("2")
expect(page.locator("[data-hud-coins]")).to_have_text("99850")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(99850))
def test_claim_daily(alice):
@@ -161,7 +171,7 @@ def test_claim_daily(alice):
reset_farm("alice_test")
open_game(page)
page.locator("form[data-game-action='daily'] button").click()
expect(page.locator("[data-hud-coins]")).to_have_text("100020")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(100020))
expect(page.locator("[data-daily-host] .daily-claimed")).to_be_visible()
@@ -173,7 +183,7 @@ def test_upgrade_perk(alice):
"form[data-game-action='perk']:has(input[value='growth']) button"
)
growth.click()
expect(page.locator("[data-hud-coins]")).to_have_text("99850")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(99850))
expect(
page.locator(".perk-card:has-text('Build Cache') .perk-level")
).to_have_text("Lv 1/10")
@@ -217,7 +227,7 @@ def test_claim_quest(alice):
)
open_game(page)
page.locator("form[data-game-action='claim-quest'] button").first.click()
expect(page.locator("[data-hud-coins]")).not_to_have_text("100000")
expect(page.locator("[data-hud-coins]")).not_to_have_text(hud_number(100000))
assert coins(page) > 100000
@@ -246,7 +256,7 @@ def test_prestige_resets_farm(alice):
confirm_btn.click()
expect(page.locator("[data-hud-prestige]")).to_have_text("1")
expect(page.locator("[data-hud-coins]")).to_have_text(
str(economy.STARTING_COINS + carried)
hud_number(economy.STARTING_COINS + carried)
)
assert page.locator("form[data-game-action='prestige']").count() == 0
@@ -283,7 +293,7 @@ def test_grant_section_claim(alice):
claim.wait_for(state="visible")
claim.click()
expect(page.locator("[data-hud-coins]")).to_have_text(
str(100 + economy.GRANT_CAP)
hud_number(100 + economy.GRANT_CAP)
)
assert page.locator("form[data-game-action='grant']").count() == 0
@@ -324,7 +334,9 @@ def test_infrastructure_buy_succeeds_when_eligible(alice):
confirm_btn.wait_for(state="visible")
confirm_btn.click()
expect(page.locator("form[data-game-action='infrastructure']")).to_have_count(0)
assert coins(page) == 100_000_000 - 25_000_000
from devplacepy.services.game import economy
assert coins(page) == 100_000_000 - economy.infra_for("registry").cost
def test_defense_upgrade_spends_coins(alice):
@@ -334,7 +346,7 @@ def test_defense_upgrade_spends_coins(alice):
upgrade = page.locator("form[data-game-action='defense'] button").first
upgrade.wait_for(state="visible")
upgrade.click()
expect(page.locator("[data-hud-coins]")).to_have_text("95000")
expect(page.locator("[data-hud-coins]")).to_have_text(hud_number(95000))
def test_cosmetics_buy_and_equip_flow(alice):