checkmate-cli 0.4.1

Checkmate - API Testing Framework CLI
name: "Decision Tests"
description: "Test decision values and nested response structures"

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

requests:
  first_time_user:
    body:
      name: "First Time User"
      email: "first-time-decision@example.com"
      ip: "10.77.77.1"
      user_agent: "DecisionTestAgent/1.0"

  regular_order:
    body:
      name: "Regular Customer"
      email: "regular-decision@example.com"
      ip: "10.77.77.2"
      user_agent: "RegularAgent/1.0"
      ticket_count: 2
      channel: "Regular"

  group_order:
    body:
      name: "Group Coordinator"
      email: "group-decision@example.com"
      ip: "10.77.77.3"
      user_agent: "GroupAgent/1.0"
      channel: "Group"
      group_name: "TestGroup"
      ticket_count: 5

tests:
  first_request_not_blocked:
    description: "Verify first request from new user is not blocked"
    endpoint: /api/v1/check-order
    requests: [first_time_user]
    assertions:
      - query: "$[doc][cm][decision][blocked]"
        expect: false
        message: "First request should not be blocked"

  decision_structure:
    description: "Verify decision structure contains expected fields"
    endpoint: /api/v1/check-order
    requests: [regular_order]
    assertions:
      - query: "$[doc][cm][decision]?"
        expect: true
        message: "decision object must exist"
      - query: "$[doc][cm][decision][blocked]?"
        expect: true
        message: "blocked field must exist in decision"
      - query: "$[doc]['event.blocked']"
        expect_type: boolean
        message: "event.blocked must be boolean"

  event_metadata:
    description: "Verify event metadata is populated correctly"
    endpoint: /api/v1/check-order
    requests: [regular_order]
    assertions:
      - query: "$[doc]['service.name']"
        expect: "order_reservation"
        message: "service.name should be order_reservation"
      - query: "$[doc]['event.type']"
        expect: "test"
        message: "event.type should be test"

  ticket_count_preserved:
    description: "Verify ticket count from request is preserved in reservation"
    endpoint: /api/v1/check-order
    requests: [regular_order]
    assertions:
      - query: "$[doc][cm][reservation][ticket_count]"
        expect: 2
        message: "ticket_count should be preserved"

  channel_preserved:
    description: "Verify channel is preserved in reservation"
    endpoint: /api/v1/check-order
    requests: [regular_order]
    assertions:
      - query: "$[doc][cm][reservation][channel]"
        expect: "Regular"
        message: "channel should be Regular"

  group_order_fields:
    description: "Verify group order fields are preserved"
    endpoint: /api/v1/check-order
    requests: [group_order]
    assertions:
      - query: "$[doc][cm][reservation][channel]"
        expect: "Group"
        message: "channel should be Group"
      - query: "$[doc][cm][reservation][group_name]"
        expect: "TestGroup"
        message: "group_name should be preserved"
      - query: "$[doc][cm][reservation][ticket_count]"
        expect: 5
        message: "ticket_count should be 5 for group order"

  anomaly_detection_populated:
    description: "Verify anomaly detection arrays are populated"
    endpoint: /api/v1/check-order
    requests: [first_time_user]
    assertions:
      - query: "$[doc][securely][anomaly_detection][normal].length()"
        expect_gte: 0
        message: "normal anomalies array should exist"
      - query: "$[doc][securely][anomaly_detection][abnormal].length()"
        expect_gte: 0
        message: "abnormal anomalies array should exist"