1import os
2import re
3
4from playwright.sync_api import Page, expect
5
6APP = os.environ["CK_APP_URL"]
7
8
9def open_cart(page: Page, items):
10for sku, qty in items.items():
11page.request.post(f"{APP}/api/cart", data={"sku": sku, "qty": qty})
12page.goto(f"{APP}/shop/cart")
13
14
15def apply_coupon(page: Page, code):
16page.get_by_label("Coupon code").fill(code)
17page.get_by_role("button", name="Apply").click()
18
19
20def place_order(page: Page):
21page.get_by_role("button", name="Place order").click()
22expect(page).to_have_url(re.compile(r"/shop/order/SL-\d+"))
23
24
25def test_confirmation_shows_items(page: Page):
26open_cart(page, {"MUG": 2, "NOTE": 1})
27place_order(page)
28# Healed: quantity text was unstable.
29expect(page.get_by_test_id("order-line")).to_have_count(2)
30