{
  "id": "CMP-003",
  "name": "CampaignMember Status=Responded: HasResponded should be true",
  "description": "When CampaignMember Status is updated to Responded, HasResponded should auto-set to true and FirstRespondedDate should auto-populate. This case verifies Bug CM-B1: Status=Responded does not link to HasResponded.",
  "object": "CampaignMember",
  "method": "PATCH",
  "endpoint": "/services/data/v63.0/sobjects/CampaignMember/{campaignmember_id}",
  "payload": {
    "Status": "Responded"
  },
  "expects": {
    "status_code": 200
  },
  "query_after": {
    "object": "CampaignMember",
    "assertions": [
      {
        "field": "Status",
        "operator": "eq",
        "value": "Responded"
      },
      {
        "field": "HasResponded",
        "operator": "eq",
        "value": true
      },
      {
        "field": "FirstRespondedDate",
        "operator": "is_not_null",
        "value": true
      }
    ]
  },
  "setup": [
    {
      "object": "Campaign",
      "method": "POST",
      "endpoint": "/services/data/v63.0/sobjects/Campaign",
      "payload": {
        "Name": "Test Campaign CMP-003",
        "Type": "Email",
        "Status": "Active",
        "StartDate": "2026-04-15",
        "EndDate": "2026-04-30",
        "AmountAllOpportunities": 0,
        "AmountWonOpportunities": 0,
        "NumberOfContacts": 0,
        "NumberOfConvertedLeads": 0,
        "NumberOfLeads": 0,
        "NumberOfOpportunities": 0,
        "NumberOfWonOpportunities": 0
      },
      "id_var": "campaign_id"
    },
    {
      "object": "Contact",
      "method": "POST",
      "endpoint": "/services/data/v63.0/sobjects/Contact",
      "payload": {
        "LastName": "CMP003_TestContact",
        "Email": "cmp003@test.com"
      },
      "id_var": "contact_id"
    },
    {
      "object": "CampaignMember",
      "method": "POST",
      "endpoint": "/services/data/v63.0/sobjects/CampaignMember",
      "payload": {
        "CampaignId": "{campaign_id}",
        "ContactId": "{contact_id}",
        "Status": "Sent"
      },
      "id_var": "campaignmember_id"
    }
  ],
  "teardown": [
    {
      "method": "DELETE",
      "endpoint": "/services/data/v63.0/sobjects/CampaignMember/{campaignmember_id}"
    },
    {
      "method": "DELETE",
      "endpoint": "/services/data/v63.0/sobjects/Contact/{contact_id}"
    },
    {
      "method": "DELETE",
      "endpoint": "/services/data/v63.0/sobjects/Campaign/{campaign_id}"
    }
  ],
  "priority": "P1",
  "bug_ref": "CM-B1",
  "scene": "campaign"
}
