Skip to content

Commit a06c83f

Browse files
committed
test: add preview to persistence template flow coverage
1 parent 97f20c9 commit a06c83f

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

‎server/tests/test_control_templates.py‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,34 @@ def test_template_update_preserves_enabled_value(client: TestClient) -> None:
781781
assert data["scope"]["step_names"] == ["updated-step"]
782782

783783

784+
def test_template_update_preview_matches_persisted_rendered_control(client: TestClient) -> None:
785+
# Given: an existing template-backed control and updated template values
786+
control_id = _create_template_control(client)
787+
updated_payload = _template_payload()
788+
updated_payload["template_values"] = {
789+
"pattern": "updated",
790+
"step_name": "updated-step",
791+
}
792+
793+
# When: previewing the updated template render and then persisting the update
794+
preview_response = client.post("/api/v1/control-templates/render", json=updated_payload)
795+
assert preview_response.status_code == 200, preview_response.text
796+
preview_control = preview_response.json()["control"]
797+
798+
put_response = client.put(
799+
f"/api/v1/controls/{control_id}/data",
800+
json={"data": updated_payload},
801+
)
802+
assert put_response.status_code == 200, put_response.text
803+
804+
get_response = client.get(f"/api/v1/controls/{control_id}/data")
805+
806+
# Then: the persisted rendered control matches the preview output
807+
assert get_response.status_code == 200, get_response.text
808+
persisted_control = get_response.json()["data"]
809+
assert persisted_control == preview_control
810+
811+
784812
def test_template_update_accepts_different_template_structure(client: TestClient) -> None:
785813
# Given: an attached template-backed control using the regex template shape
786814
control_id, _ = _create_template_control_with_name(client)

0 commit comments

Comments
 (0)