[
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/invoicing"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"invoices-open-email-centre-button\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"invoices-open-email-centre-button\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"email-centre-on-close-button\"]",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "text": "Email Centre",
        "type": "assert_text"
      },
      {
        "text": "Financials",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "From /invoicing the Email Centre modal opens \u2014 proving the trigger surface that POSTs to the fixed /api/invoices/send-invoices endpoint (PR #1098: money_float coerces string totals so :,.2f no longer crashes on legacy invoices like SI26-10795). The modal close button is data-independent so the check stays stable when shared dev has no agreed invoices ready to send.",
    "human_journey": true,
    "name": "invoices-email-centre-send-surface",
    "path": "/invoicing",
    "selectors": [],
    "source": "proof_contract",
    "start_path": "/",
    "texts": [
      "Financials"
    ]
  }
]