{
  "id": "OLI-006",
  "name": "Update Opportunity StageName and verify CloseDate",
  "description": "Updating a temporary Opportunity should persist StageName, Probability, and CloseDate without depending on shared seed data.",
  "object": "Opportunity",
  "method": "PATCH",
  "endpoint": "/services/data/v63.0/sobjects/Opportunity/{run_uuid}",
  "payload": {
    "StageName": "Value Proposition",
    "Probability": 60,
    "CloseDate": "2026-05-31"
  },
  "expects": {
    "status_code": 204
  },
  "query_after": {
    "object": "Opportunity",
    "record_id": "{run_uuid}",
    "assertions": [
      {
        "field": "StageName",
        "operator": "eq",
        "value": "Value Proposition"
      },
      {
        "field": "Probability",
        "operator": "equals",
        "value": 60
      }
    ]
  },
  "setup": [
    {
      "type": "sql",
      "name": "Insert temporary Opportunity for OLI-006",
      "sql": "INSERT INTO Opportunity (Id, Name, CloseDate, ForecastCategory, StageName, Probability, IsDeleted, CreatedDate, LastModifiedDate, SystemModstamp) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
      "params": [
        "{run_uuid}",
        "OLI-006 Opportunity {run_uuid}",
        "2026-04-30",
        "Pipeline",
        "Prospecting",
        10,
        0,
        "{db_timestamp}",
        "{db_timestamp}",
        "{db_timestamp}"
      ]
    }
  ],
  "teardown": [
    {
      "type": "sql",
      "sql": "DELETE FROM Opportunity WHERE Id = %s",
      "params": [
        "{run_uuid}"
      ]
    }
  ],
  "priority": "P1",
  "scene": "opportunity_line"
}
