checkmate-cli 0.4.1

Checkmate - API Testing Framework CLI
name: "Field Presence Tests"
description: "Verify response structure contains expected fields and types"

env:
  base_url: "http://localhost:80"
  timeout_ms: 10000

requests:
  structure_test:
    body:
      name: "Structure Test User"
      email: "structure-test@example.com"
      ip: "10.88.88.1"
      user_agent: "StructureTestAgent/1.0"

tests:
  decision_blocked_exists:
    description: "Verify doc.cm.decision.blocked exists and is boolean"
    endpoint: /api/v1/check-order
    requests: [structure_test]
    assertions:
      - query: "$[doc][cm][decision][blocked]?"
        expect: true
        message: "blocked field must exist"
      - query: "$[doc][cm][decision][blocked]"
        expect_type: boolean
        message: "blocked field must be boolean"

  securely_metrics_exists:
    description: "Verify doc.securely.metrics structure exists"
    endpoint: /api/v1/check-order
    requests: [structure_test]
    assertions:
      - query: "$[doc][securely]?"
        expect: true
        message: "securely field must exist"
      - query: "$[doc][securely][metrics]?"
        expect: true
        message: "metrics field must exist"
      - query: "$[doc][securely][metrics]"
        expect_type: object
        message: "metrics must be an object"

  purchase_volume_structure:
    description: "Verify purchase volume metrics structure"
    endpoint: /api/v1/check-order
    requests: [structure_test]
    assertions:
      - query: "$[doc][securely][metrics][purchase_volume]?"
        expect: true
        message: "purchase_volume field must exist"
      - query: "$[doc][securely][metrics][purchase_volume][by_ip]?"
        expect: true
        message: "by_ip counter must exist"
      - query: "$[doc][securely][metrics][purchase_volume][by_email]?"
        expect: true
        message: "by_email counter must exist"
      - query: "$[doc][securely][metrics][purchase_volume][by_name]?"
        expect: true
        message: "by_name counter must exist"

  anomaly_detection_normal_array:
    description: "Verify doc.securely.anomaly_detection.normal is an array"
    endpoint: /api/v1/check-order
    requests: [structure_test]
    assertions:
      - query: "$[doc][securely][anomaly_detection][normal]?"
        expect: true
        message: "normal field must exist"
      - query: "$[doc][securely][anomaly_detection][normal]"
        expect_type: array
        message: "normal must be an array"

  anomaly_detection_abnormal_array:
    description: "Verify doc.securely.anomaly_detection.abnormal is an array"
    endpoint: /api/v1/check-order
    requests: [structure_test]
    assertions:
      - query: "$[doc][securely][anomaly_detection][abnormal]?"
        expect: true
        message: "abnormal field must exist"
      - query: "$[doc][securely][anomaly_detection][abnormal]"
        expect_type: array
        message: "abnormal must be an array"

  cm_reservation_structure:
    description: "Verify cm.reservation structure contains request data"
    endpoint: /api/v1/check-order
    requests: [structure_test]
    assertions:
      - query: "$[doc][cm][reservation]?"
        expect: true
        message: "reservation field must exist"
      - query: "$[doc][cm][reservation][name]"
        expect: "Structure Test User"
        message: "reservation.name must match request"
      - query: "$[doc][cm][reservation][email]"
        expect: "structure-test@example.com"
        message: "reservation.email must match request"
      - query: "$[doc][cm][reservation][ip]"
        expect: "10.88.88.1"
        message: "reservation.ip must match request"