Files
ewoooc/tests/test_edm_dashboard_template.py
OoO 5695ead4dc
All checks were successful
CD Pipeline / deploy (push) Successful in 1m42s
fix(edm): 修正活動看板排序 endpoint
2026-04-30 14:29:40 +08:00

80 lines
2.4 KiB
Python

from flask import Blueprint, Flask, render_template, url_for
def _build_test_app():
app = Flask(
__name__,
template_folder="../templates",
)
app.jinja_env.globals["csrf_token"] = lambda: ""
app.jinja_env.filters["number_format"] = lambda value: f"{value:,}"
edm = Blueprint("edm", __name__)
for endpoint, path in {
"edm_dashboard": "/edm",
"festival_dashboard": "/festival",
"mothers_day_dashboard": "/mothers_day",
"valentine_520_dashboard": "/valentine_520",
"labor_day_dashboard": "/labor_day",
}.items():
edm.add_url_rule(path, endpoint, lambda: "")
app.register_blueprint(edm)
return app
def test_edm_dashboard_sort_links_use_blueprint_endpoint():
app = _build_test_app()
page_paths = {
"edm": "/edm",
"festival": "/festival",
"mothers_day": "/mothers_day",
"valentine_520": "/valentine_520",
"labor_day": "/labor_day",
}
with app.test_request_context("/edm"):
promo_pages = [
{
"url": url_for(f"edm.{page}_dashboard"),
"name": page,
"id": page,
}
for page in page_paths
]
for page, path in page_paths.items():
html = render_template(
"edm_dashboard.html",
promo_pages=promo_pages,
current_promo_page=page,
page_title=page,
activity_time="",
last_update="",
total_edm_products=0,
scheduler_stats={},
slot_stats={
"10:00": {
"on_shelf": 0,
"new": 0,
"up": 0,
"down": 0,
}
},
grouped_items={"10:00": []},
active_tab="10:00",
current_sort="default",
current_order="desc",
slugify=lambda value: value.replace(":", ""),
datetime_now="",
metabase_url="",
grist_url="",
)
assert f'{path}?sort_by=name&order=desc' in html
assert f'{path}?sort_by=price&order=desc' in html
if page == "edm":
assert f'{path}?sort_by=remain_qty&order=desc' in html