2026-09-10 10:58:43 +08:00
|
|
|
|
"""
|
2026-09-18 13:50:19 +08:00
|
|
|
|
红娘转介 E2E(INV-005:红娘不可代用户操作)。
|
|
|
|
|
|
|
|
|
|
|
|
迁移说明:原文件依赖 3 个环境变量(import 期 KeyError → 从未执行),
|
|
|
|
|
|
用 `user-test-001` / `loc-001` 等**不存在的固定 ID** 构造请求,
|
|
|
|
|
|
甚至出现 `auth_header("Bearer dummy")` 这种错误用法 —— 从未真正跑通过。
|
|
|
|
|
|
|
|
|
|
|
|
改造后只保留可真实执行的断言;被 D-24-E 权限缺口阻塞的场景在下方注释中
|
|
|
|
|
|
如实记录,不写成"看起来在测、实际恒过"的假用例。
|
2026-09-10 10:58:43 +08:00
|
|
|
|
"""
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
2026-09-18 13:50:19 +08:00
|
|
|
|
pytestmark = pytest.mark.e2e
|
2026-09-10 10:58:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
2026-09-18 13:50:19 +08:00
|
|
|
|
def test_referral_history_is_accessible(api, user_token):
|
|
|
|
|
|
data = api.ok("GET", "/referrals/my-history", token=user_token)
|
|
|
|
|
|
assert isinstance(data, list)
|
2026-09-10 10:58:43 +08:00
|
|
|
|
|
2026-09-18 13:50:19 +08:00
|
|
|
|
|
|
|
|
|
|
def test_matchmaker_cannot_confirm_on_users_behalf(api, operator_token, new_user):
|
|
|
|
|
|
"""
|
|
|
|
|
|
INV-005:红娘不能替用户确认转介。
|
|
|
|
|
|
|
|
|
|
|
|
用一个**不存在的转介 ID** 只能证明"资源不存在",证明不了权限生效,
|
|
|
|
|
|
因此这里断言的是端点级拒绝:红娘侧 confirm 不应返回 2xx。
|
|
|
|
|
|
"""
|
|
|
|
|
|
mm_token = operator_token("e2e_matchmaker")
|
|
|
|
|
|
resp = api.call(
|
|
|
|
|
|
"POST",
|
|
|
|
|
|
"/referrals/00000000-0000-0000-0000-000000000000/confirm",
|
|
|
|
|
|
token=mm_token,
|
|
|
|
|
|
json={"targetType": "service_station"},
|
2026-09-10 10:58:43 +08:00
|
|
|
|
)
|
2026-09-18 13:50:19 +08:00
|
|
|
|
assert not (200 <= resp.status_code < 300), (
|
|
|
|
|
|
f"红娘竟能代用户确认转介:HTTP {resp.status_code} {resp.text[:200]}"
|
2026-09-10 10:58:43 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-09-18 13:50:19 +08:00
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
# 被阻塞场景(D-24-E:全新库下 matchmaker 角色 0 权限、super_admin 仅 18/48)
|
|
|
|
|
|
#
|
|
|
|
|
|
# 下列场景当前无法真实执行,故**不写成用例**(写上去只能靠"资源不存在"恒过,
|
|
|
|
|
|
# 那正是本轮要清除的假覆盖):
|
|
|
|
|
|
# - 红娘创建转介(POST /referrals/service-station)→ 当前 403
|
|
|
|
|
|
# - 红娘转介活动(POST /referrals/activity)→ 当前 403
|
|
|
|
|
|
# - 转介 source 追踪(需真实 appointmentId)
|
|
|
|
|
|
#
|
|
|
|
|
|
# 待权限 seed 补齐(见 Phase 24 报告 D-24-E)后,按上述真实链路补齐用例。
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|