"""Tests for method profile API — AP2.0 capture slice.""" from __future__ import annotations from tests.factories import provision_user_in_tenant from tests.test_initiatives_actions import _auth, _create_initiative, _login def test_method_profiles_list_for_product_archetype(client): user = provision_user_in_tenant(tenant_role="member") token = _login(client, user) res = client.get( "/api/steering/method-profiles?initiative_archetype_key=initiative.product", headers=_auth(token), ) assert res.status_code == 200 keys = {item["key"] for item in res.json()} assert "product.kairo_dev" in keys def test_create_initiative_with_method_profile(client): user = provision_user_in_tenant(tenant_role="member") token = _login(client, user) created = client.post( "/api/initiatives", json={ "title": "Kairo Dev", "archetype_key": "initiative.product", "method_profile_key": "product.kairo_dev", }, headers=_auth(token), ) assert created.status_code == 201 initiative_id = created.json()["id"] snap = client.get( f"/api/initiatives/{initiative_id}/steering-snapshot", headers=_auth(token), ) assert snap.status_code == 200 body = snap.json() assert body["method_profile_key"] == "product.kairo_dev" assert body.get("method_profile_label") == "Kairo Entwicklung" assert body["method_key"] == "continuous_product" def test_patch_method_profile_on_initiative(client): user = provision_user_in_tenant(tenant_role="member") token = _login(client, user) created = _create_initiative( client, token, title="Product X", archetype_key="initiative.product", ) initiative_id = created.json()["id"] patched = client.patch( f"/api/steering/initiatives/{initiative_id}/context", json={"method_profile_key": "product.kairo_dev"}, headers=_auth(token), ) assert patched.status_code == 200 assert patched.json()["method_key"] == "continuous_product" snap = client.get( f"/api/initiatives/{initiative_id}/steering-snapshot", headers=_auth(token), ) assert snap.json()["method_profile_label"] == "Kairo Entwicklung"