description: "Test commands: deprecation errors"

schemaVersion: "1.1"

runOnRequirements:
  - minServerVersion: "4.9"
    serverParameters:
      enableTestCommands: true
      acceptApiVersion2: true
      requireApiVersion: false

createEntities:
  - client:
      id: &client client
      observeEvents:
        - commandStartedEvent
      # This client is configured without a declared API version, as we cannot
      # declare an unknown API version.
  - database:
      id: &database database
      client: *client
      databaseName: &databaseName versioned-api-tests

tests:
  - description: "Running a command that is deprecated raises a deprecation error"
    operations:
      - name: runCommand
        object: *database
        arguments:
          commandName: testDeprecationInVersion2
          command:
            testDeprecationInVersion2: 1
            apiVersion: "2"
            apiDeprecationErrors: true
        expectError:
          isError: true
          errorContains: "command testDeprecationInVersion2 is deprecated in API Version 2"
          errorCodeName: "APIDeprecationError"
    expectEvents:
      - client: *client
        events:
          - commandStartedEvent:
              command:
                testDeprecationInVersion2: 1
                apiVersion: "2"
                apiStrict: { $$exists: false }
                apiDeprecationErrors: true
