"""Regression: generated deploy workflows must accept workflow_dispatch. Without it, the
dispatch the worker sends after a promotion returns 422 and the deploy never goes live."""

import yaml

from src.domain.hosting.deployment_targets import generate_deploy_workflow, generate_worker_deploy_workflow


def _triggers(text: str) -> dict:
    doc = yaml.safe_load(text)
    # PyYAML reads the bare key `on` as boolean True.
    return doc.get("on", doc.get(True))


def test_pages_deploy_workflow_accepts_dispatch_and_push():
    triggers = _triggers(generate_deploy_workflow("nuxt_app", "192dd090"))
    assert "workflow_dispatch" in triggers
    assert "push" in triggers


def test_worker_deploy_workflow_accepts_dispatch_and_push():
    triggers = _triggers(generate_worker_deploy_workflow("192dd090"))
    assert "workflow_dispatch" in triggers
    assert "push" in triggers
