""" V1.1 活动互选二阶段同意 E2E —— 空壳已移除(Phase 23 KEEP-VERIFY,2026-09-18) 历史问题 -------- 原文件 8 个测试函数**全部**为 `pass` 空壳(注释「TODO: P16 实现后完善」), 依赖不存在的 `activity_factory` / `user_a` / `user_b` 等 fixture(全局无 `conftest.py`), 从未执行过,却在 `docs/STATUS.md` 中被计为 P23-T11「活动互选 E2E ✅」。 计划 Phase 23 Gate:「**不允许 skip/pass 空壳**」。 当前状态 -------- 本文件现**不含任何测试函数**,pytest 收集 0 个用例。 仍待真实实现的场景(需求不因移除空壳而丢失) ------------------------------------------ 1. Activity Mutual Interest 不直接创建 Match(INV-014) 2. 一方确认不创建 Match(INV-015) 3. 双方确认后创建新 Match Episode 4. 已有 active Match 时不重复创建(AGENTS.md #19) 5. 曾 Unmatch 后重新确认创建新 Episode(AGENTS.md #20) 6. 一方拒绝则不创建 Match 7. 超时(expires_at)处理 8. 单向意向不泄露给对方(INV-006) 现状补充(Phase 23 实测) ------------------------ INV-014 / INV-015 在后端已有**真实行为测试**覆盖: `backend/.../activity_mutual/ActivityMutualConsentServiceTest` (双确认 Gate、decline 不建 Match、复用已有 active Match、幂等、超时、软删过滤)。 即:E2E 层待补,但不变量本身并非无覆盖。 真实可执行的 V1.1 E2E 见:`tests/e2e/run_v11_tests.py` """