Kairo-Jinkendo/backend/tests/test_ap18_portfolio_priority.py
Lars a19c6abd26
All checks were successful
Deploy Development / deploy (push) Successful in 50s
Test Suite / pytest-backend (push) Successful in 2m21s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 21s
AP1.8a: Portfolio-Rang im Cockpit mit Reorder und Next-Action-Sortierung.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 09:39:49 +02:00

48 lines
1.6 KiB
Python

"""Unit tests for portfolio priority sorting — AP1.8a."""
from steering.portfolio.priority import sort_candidates_by_portfolio_rank
def test_sort_candidates_by_portfolio_rank():
candidates = [
{"kind": "a", "initiative_id": "low"},
{"kind": "b", "initiative_id": "high"},
{"kind": "c", "initiative_id": "mid"},
]
rank_map = {"high": 0, "mid": 1, "low": 2}
sorted_items = sort_candidates_by_portfolio_rank(candidates, rank_map)
assert [c["initiative_id"] for c in sorted_items] == ["high", "mid", "low"]
assert sorted_items[0]["portfolio_rank"] == 0
def test_null_rank_sorts_last():
candidates = [
{"initiative_id": "unknown"},
{"initiative_id": "ranked"},
]
rank_map = {"ranked": 0}
sorted_items = sort_candidates_by_portfolio_rank(candidates, rank_map)
assert sorted_items[0]["initiative_id"] == "ranked"
def test_portfolio_reorder_api(client):
from tests.test_initiatives_actions import _auth, _create_initiative, _login
from tests.factories import provision_user_in_tenant
user = provision_user_in_tenant(tenant_role="member")
token = _login(client, user)
first = _create_initiative(client, token, title="Alpha").json()
second = _create_initiative(client, token, title="Beta").json()
reorder = client.post(
"/api/workspace/portfolio/reorder",
json={"initiative_ids": [second["id"], first["id"]]},
headers=_auth(token),
)
assert reorder.status_code == 200
ordered = reorder.json()
assert ordered[0]["id"] == second["id"]
assert ordered[0]["portfolio_rank"] == 0
assert ordered[1]["portfolio_rank"] == 1