Kairo-Jinkendo/backend/tests/test_ap1_1_methods.py

63 lines
2.0 KiB
Python
Raw Normal View History

"""AP1.1 — Method Registry tests."""
from __future__ import annotations
from tests.factories import provision_user_in_tenant
from tests.test_initiatives_actions import (
_auth,
_create_initiative,
_login,
)
def test_list_steering_methods(client):
user = provision_user_in_tenant(tenant_role="member")
token = _login(client, user)
res = client.get("/api/steering/methods", headers=_auth(token))
assert res.status_code == 200
methods = res.json()
keys = {m["key"] for m in methods}
assert "generic_operating" in keys
assert "product_milestone_driven" in keys
def test_change_initiative_method(client):
user = provision_user_in_tenant(tenant_role="member")
token = _login(client, user)
initiative_id = _create_initiative(client, token).json()["id"]
res = client.patch(
f"/api/steering/initiatives/{initiative_id}/context",
json={"method_key": "product_milestone_driven"},
headers=_auth(token),
)
assert res.status_code == 200
assert res.json()["method_key"] == "product_milestone_driven"
assert res.json()["method_label"] == "Produkt / Meilenstein"
def test_product_milestone_next_action_prioritizes_milestone(client):
user = provision_user_in_tenant(tenant_role="member")
token = _login(client, user)
initiative_id = _create_initiative(client, token).json()["id"]
client.patch(
f"/api/steering/initiatives/{initiative_id}/context",
json={"method_key": "product_milestone_driven"},
headers=_auth(token),
)
client.post(
f"/api/initiatives/{initiative_id}/milestones",
json={"title": "Release MVP", "status": "at_risk"},
headers=_auth(token),
)
snap = client.get(
f"/api/initiatives/{initiative_id}/steering-snapshot",
headers=_auth(token),
)
assert snap.status_code == 200
next_actions = snap.json()["next_actions"]
assert len(next_actions) >= 1
assert next_actions[0]["kind"] == "review_milestone"