"""Tests for the unified target-position write path.""" from app.optimization_models import TargetPositionRequest def test_target_position_request_validation(): request = TargetPositionRequest(target_position=" 数据分析师 ") assert request.target_position == " 数据分析师 " def test_set_target_position_updates_profile(): from app.optimization_flow import OptimizationFlowMixin class FakeDatabase: def __init__(self): self.session = { "id": "s1", "stage": "RESUME_ENRICHING", "revision": 3, "profile": {"job_type": "校招"}, "draft_id": None, "resume_id": "r1", } def transaction(self, immediate=False): class Context: def __enter__(self_inner): return object() def __exit__(self_inner, *args): return False return Context() def update_session(self, connection, session_id, *, stage, profile, **kwargs): self.session["profile"] = profile return self.session class Service(OptimizationFlowMixin): pass service = Service() service.database = FakeDatabase() service._session_or_404 = lambda connection, session_id: service.database.session result = service.set_target_position("s1", " 数据分析师 ") assert result == { "target_position": "数据分析师", "target_position_confirmed": True, } assert service.database.session["profile"]["target_position"] == "数据分析师" assert service.database.session["profile"]["target_position_confirmed"] is True assert service.database.session["profile"]["job_type"] == "校招"