V10.547 強化單位價覆核洞察
This commit is contained in:
@@ -239,6 +239,43 @@ def test_rescore_accepted_review_item_has_actionable_decision_envelope():
|
||||
assert any(evidence["metric"] == "candidate_gap_pct" for evidence in envelope["evidence"])
|
||||
|
||||
|
||||
def test_manual_unit_price_review_item_keeps_business_insight():
|
||||
from services.competitor_intel_repository import (
|
||||
_format_competitor_review_item,
|
||||
summarize_review_decision_envelopes,
|
||||
)
|
||||
|
||||
item = _format_competitor_review_item({
|
||||
"sku": "11223344",
|
||||
"name": "理膚寶水 B5 全面修復霜 40ml x2 超值組",
|
||||
"momo_price": 1199,
|
||||
"attempt_status": "manual_unit_price_required",
|
||||
"candidate_count": 1,
|
||||
"best_competitor_product_id": "DABC01-B5",
|
||||
"best_competitor_product_name": "理膚寶水 全面修復霜 B5 40ml",
|
||||
"best_competitor_price": 679,
|
||||
"best_match_score": 0.742,
|
||||
"match_diagnostic_json": {
|
||||
"match_type": "same_product_different_pack",
|
||||
"price_basis": "unit_price",
|
||||
"alert_tier": "unit_price_review",
|
||||
"reasons": ["unit_comparable"],
|
||||
},
|
||||
})
|
||||
|
||||
assert item["unit_comparison"]["comparable"] is True
|
||||
assert item["unit_price_insight"]["direction"] == "momo_cheaper"
|
||||
assert "MOMO 單位價低" in item["unit_price_insight"]["summary"]
|
||||
envelope = item["decision_envelope"]
|
||||
assert envelope["recommended_action"]["action"] == "unit_price_required"
|
||||
assert envelope["expected_impact"]["unit_price_insight"]["unit_gap_pct"] == -11.71
|
||||
assert any(evidence["metric"] == "unit_price_gap_pct" for evidence in envelope["evidence"])
|
||||
|
||||
brief = summarize_review_decision_envelopes([item], limit=5)
|
||||
assert "單位價差 -11.7%" in brief["text"]
|
||||
assert brief["items"][0]["unit_price_gap_pct"] == -11.71
|
||||
|
||||
|
||||
def test_protected_existing_match_envelope_explains_candidate_conflict():
|
||||
from services.competitor_intel_repository import _format_competitor_review_item
|
||||
|
||||
|
||||
Reference in New Issue
Block a user