generated from kgod/ai-review-template
70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
"""进度卡规则:total 固定为队列长度;skip 只切卡不推进度;进度卡无 skip 动作。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
from app.enrichment_modules import module_by_name
|
|
from app.fsm_enrichment import (
|
|
ensure_enrichment_state,
|
|
enrichment_progress,
|
|
mark_completed,
|
|
skip_module,
|
|
)
|
|
from test_api import BASE, active_component
|
|
from test_enrichment_flow import (
|
|
continue_enriching,
|
|
created_session,
|
|
find_component,
|
|
skip_current,
|
|
)
|
|
|
|
|
|
def _campus_profile() -> dict:
|
|
return {"job_type": "campus", "anchor_type": "education", "anchor": {}, "experiences": []}
|
|
|
|
|
|
def test_progress_fixed_total_and_skip_does_not_advance():
|
|
profile = _campus_profile()
|
|
ensure_enrichment_state(profile)
|
|
mark_completed(profile, "internship")
|
|
progress = enrichment_progress(profile)
|
|
assert progress["total"] == 5
|
|
assert progress["ratio"] == 1 / 5
|
|
|
|
skip_module(profile, module_by_name("competition"))
|
|
progress = enrichment_progress(profile)
|
|
assert progress["total"] == 5
|
|
assert progress["completed"] == 1
|
|
assert progress["skipped"] == 1
|
|
assert progress["ratio"] == 1 / 5
|
|
|
|
|
|
def test_skip_keeps_total_fixed_and_progress_card_has_no_skip(client: TestClient):
|
|
session_id, body = created_session(client)
|
|
body = continue_enriching(client, session_id, body)
|
|
stale_block = active_component(body)
|
|
|
|
body = skip_current(client, session_id, body)
|
|
progress = find_component(body, "progress_card")
|
|
assert progress["data"]["total"] == 5
|
|
assert progress["data"]["skipped"] == 1
|
|
assert progress["data"]["completed"] == 0
|
|
assert progress["data"]["percent"] == 0
|
|
assert progress["data"]["actions"] == ["defer"]
|
|
|
|
replay = client.post(
|
|
f"{BASE}/sessions/{session_id}/component-events",
|
|
json={
|
|
"component_id": stale_block["id"],
|
|
"event": "submit",
|
|
"payload": {
|
|
"company": "星河科技",
|
|
"position": "后端实习生",
|
|
"start_date": "2024-03",
|
|
"end_date_or_present": "2024-09",
|
|
},
|
|
},
|
|
)
|
|
assert replay.status_code == 409
|